View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3160 [NoesisGUI] Studio minor always 2024-03-11 14:12 2024-03-28 16:21
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Dynamic Type Extends property not saving when changing for an existing type
Description: If you try to change the Extends property on an existing type, one you created previously, the value is not actually updated (not in Studio, and not in the XAML).
Tags:
Steps To Reproduce: Create a project
Go to Data panel
Create a class "BaseType"
Create a class "DerivedType"
Save the project
Close and reopen project
Set DerivedType Extends property to BaseType
Save the project
Close and reopen project
DerivedType will still be set to the default DynamicObject
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3201 [NoesisGUI] Studio minor sometimes 2024-03-26 11:44 2024-03-27 20:04
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Components within Components Fail to Maintain Navigator Layer Hierarchy
Description: See the attached video; the scenario is as follows:

The 'Level' Instrument Component contains:
A LevelBubbleHolder Component, which contains:
A LevelBubble Component.

When the layer ordering of the LevelBubble within the LevelBubbleHolder is changed, it succesfully changes within this component.
However, when visiting the highest Level 'Instrument' Component, the LevelBubble appears behind elements it was set to appear in front of at the LevelBubbleHolder Component level.
When revisiting the LevelBubbleHolder, the layer order changes despite no action being taken on my part.
Tags:
Steps To Reproduce: Change layer hierarchy of a Component within a Component, and observe how the layer changes position when visiting the grandparent Component.

I captured a back-up of the file at the time when this was occurring. Please reach out if you'd like a copy.
Additional Information:
Attached Files: LayerOrderingBug.mp4 (2,242,271 bytes) 2024-03-26 11:44
https://www.noesisengine.com/bugs/file_download.php?file_id=2269&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3202 [NoesisGUI] Studio minor always 2024-03-26 15:30 2024-03-27 19:37
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: ImageBrush editor's Viewport and Viewbox are broken
Description: ImageBrush editor's Viewport and Viewbox are not showing any image
Tags:
Steps To Reproduce: 1. Select an element with an ImageBrush, or create one
2. In the Brush editor, expand either Viewport or Viewbox properties
Additional Information:
Attached Files:
Notes
(0009346)
dfranjic   
2024-03-26 15:39   
This should be fixed with r13635.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3203 [NoesisGUI] Studio major always 2024-03-26 15:57 2024-03-27 19:37
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Non-Destructive Assets Folder/File Renaming is Not Possible
Description: Currently, it's prohibitively difficult to rename any folders created in the Assets panel without breaking the UI.

The only way to rename a Folder currently, is to perform the Folder rename, watch everything break, and then to dig through every single layer across every Page/Component, to find where something was used, and to update the Path or Delete the Old, and drag in the New.

Renaming a Folder, or Renaming an Asset should be accompanied by references to it being updated in all cases.

Tags:
Steps To Reproduce: Repro Steps:

1) Create a Page
2) Create a new folder in the Assets panel, and name it "MyStuff".
3) Create a couple Components within this "MyStuff" folder. (ensuring that the Components have changes made that makes them visually visible)
4) Place the components on the canvas of the Page created in Step 1.
5) Return to the Navigator, and rename the "MyStuff" folder to "Components".

Observe how all components on the Page, break, and disappear from view.

Expected Result: Renaming Assets, or their Folders, should not break previously-constructed UI.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3204 [NoesisGUI] Studio minor sometimes 2024-03-26 17:13 2024-03-27 19:37
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging Storyboard Playhead Creates Keyframes
Description: I can't repro this reliably, but I managed to capture a bug where the act of clicking and dragging the playhead back and forth across the timeline, created keyframes without action on my part.
I'm not sure if this is important, but this occured in a Storyboard within a Component.

Video attached!
Tags:
Steps To Reproduce: No clear repro steps, but this occured to me within a Component, and in particular within an animation that dealt with Visibility Property changes along the timeline. See attached video
Additional Information:
Attached Files: GhostKeyframes.mp4 (4,158,924 bytes) 2024-03-26 17:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2270&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3206 [NoesisGUI] Studio minor always 2024-03-26 18:44 2024-03-27 19:34
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when adding DataTrigger to a DataTemplate root
Description: as seen here: https://youtu.be/kv2sJhouz7Y?feature=shared&t=50
Tags:
Steps To Reproduce: 1. Create a dataTemplate
2. Edit it and select the root in the navigator panel
3. Go to interactivity and try to add a DataTrigger
Additional Information:
Attached Files: 20240326_184311.dmp (277,991 bytes) 2024-03-26 18:44
https://www.noesisengine.com/bugs/file_download.php?file_id=2271&type=bug
Notes
(0009349)
dfranjic   
2024-03-26 20:22   
Interactivity triggers can't be added to the template as far as I know so the solution here would maybe be to disable the addition if a template is selected.
(0009350)
fllorens   
2024-03-27 11:01   
Thanks Dario, you're totally correct. I've mistaken 'normal' DataTriggers for Interactivity DataTriggers. Thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3205 [NoesisGUI] Studio major always 2024-03-26 18:39 2024-03-27 15:40
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Components Are Not Able To Serve as Trigger Targets for Storyboard Animations
Description: See Repro Steps below!
Tags:
Steps To Reproduce: Repro Steps:

1) Create a Page
2) Create a Component containing any element, and create a Storyboard for this Component, which features any visible animation in it. Set it to infinitely loop.
3) Within the Component, set a Trigger on the ComponentRoot, which on 'Loaded', Begins playing the Storyboard animation.
Observe how the animation plays infinitely.

4) Drag the Component onto the Page.
Observe how no animations are visible.

Expected Result: Component Animations are Triggered as any other Element.

----------

How a Temporary "Fix" was applied:
Remove the non-functioning trigger, and instead of setting the Trigger to the Component Root, set it the next highest Element in the Navigator hierarchy (ie a parent Grid).
Observe how the animation now plays in the page.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3209 [NoesisGUI] Studio crash have not tried 2024-03-27 12:05 2024-03-27 14:23
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Creating Binding Directly on Brushes Crashes Studio
Description: Dumps and Images Attached of two separate instances of this occurring:

The first, occurred selecting "Create Binding" on an ImageBrush of a Grid Element.
The second, occurred selecting "Create Binding" on a TextBlock's Foreground SolidColourBrush.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a Page
2) Create a Component, rename the Root to "TestComponent"
3) Within the component, place a TextBlock with some text in it.
4) On the root Component titled "TestComponent", create an Attached Property of name "Foreground" and Type "Brush".
4) Select the "Foreground" Property of the TextBlock, and within the Foreground Popout Panel, under the SolidColorBrush tab, select the 3-Dot menu to the right of the "Color" Property, and select "Create Binding".

Observe how the application crashes.

Expected Result: Bindings can be created without crashing the application.
Additional Information:
Attached Files: 20240327_060843.dmp (130,481 bytes) 2024-03-27 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2274&type=bug
CreateBindingOnTextBlock.jpg (488,285 bytes) 2024-03-27 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2275&type=bug
20240327_061546.dmp (78,828 bytes) 2024-03-27 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2276&type=bug
CreateBindingOnImageFill.jpg (1,116,624 bytes) 2024-03-27 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2277&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3208 [NoesisGUI] Studio major always 2024-03-27 11:59 2024-03-27 13:23
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Image Bindings Unassign Themselves from the Currently-Edited Item
Description: See attached video.
This issue pertains to an issue where when assigning an Image Binding to an Element within an ItemsControl/Item, the image appears to unassign itself as soon as the Background selection popup is closed.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a Page
2) Create an ItemsControl composed of a couple Items.
3) Create an ItemsControl/Item Template, and enter it to edit it.
4) Create a Data Structure which contains an Image Data item.
5) Create a ViewModel for the Page, and assign to to the page.
6) Within the Page's ViewModel, create a ViewModel for the ItemsControl/Item to use for the population of the images.
7) Re-Enter the ItemsControl/Item Template, and attempt to assign the ItemsControl/Item Image Data Item to the Background of a Grid.

Observe how the correct ViewModel is accessible from the Binding list.
Observe how it correctly populates the ItemsControl/Items

8) Close the Background Property Popout Panel.
Observe how the image unassigns itself from the Background Property.

9) Play the Page.
Observe how the image displays properly at runtime.

Expected result: Bound Images display in all instances.
Additional Information:
Attached Files: DissapearingImageBinding.mp4 (4,365,334 bytes) 2024-03-27 11:59
https://www.noesisengine.com/bugs/file_download.php?file_id=2273&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3183 [NoesisGUI] Studio feature always 2024-03-15 16:45 2024-03-27 13:06
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Rotating a grid with the transform tool affects also the adorner's menu
Description: Unlike a control's adorner, the row/col menu will get rotated with the grid.
Tags:
Steps To Reproduce: 1. Create a grid with some columns or rows
2. Using the transform tool rotate the grid
3. click on a column or row adorner
Additional Information:
Attached Files: Adorner.jpg (21,318 bytes) 2024-03-15 16:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2257&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3192 [NoesisGUI] Studio minor always 2024-03-20 11:16 2024-03-27 13:06
Reporter: dstewart Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Grid Definition Adorners Dissapear Below a Certain Grid Pixel Size
Description: Under a certain pixel dimension, Grid Row/Column definitions disappear and are not visible, nor editable.

I haven't been able to find the exact value that seems to trigger this as it seems to change from element to element, but I have reliably been able to reproduce this going from 33x32 (Adorners Visible) to 32x32 (Adorners Invisible)
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new Page
2) Create a large Grid element (512x512 should work here), and assign it 2 Rows of value 1* each.
3) Whilst keeping the Grid in your view, place the mouse over the Width Property of the Grid containing the Rows.
4) Click-and-Drag the mouse leftwards to reduce the Width value.

Observe how at a certain pixel size, the Grid's Row adorners disappear altogether.

Expected Result: Grid and Row Definitions are always accessible no matter the pixel size of the component.
Additional Information:
Attached Files: GridAdorners.jpg (167,899 bytes) 2024-03-20 11:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2261&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3207 [NoesisGUI] Studio major always 2024-03-27 11:51 2024-03-27 12:33
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Attached Properties Not Accessible Within Component Until Component's Tab Closed and ReOpened
Description: Video attached. This is a new issue where created Attached Properties are not visible in the list of Bindings until the Component file/tab is closed, and re-opened.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a Page
2) Create a Component, rename the Root to "TestComponent"
3) Within the component, place a TextBlock with some text in it.
4) On the root Component titled "TestComponent", create an Attached Property of name "Foreground" and Type "Brush".
5) Select the TextBlock, and for the Foreground Property, Create a Binding.
6) Under the "Binding, select the "Name" tab, then find and select the "TestComponent" under the "ElementName" input.
7) Expand the list of available bindings, and search for for "Foreground_Brush" binding that was created in Step 4.

Observe how the "Foreground_Brush" attached property is not present.

8) Close the Component's tab in Studio, and re-open it from the Assets Panel.
9) Repeat steps 5-7.

Observe how the "Foreground_Brush" is now present.

Expected result: Attached Properties are immediately accessible within the component as soon as created.
Additional Information:
Attached Files: AttachedPropertiesNotUpdating.mp4 (4,920,625 bytes) 2024-03-27 11:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2272&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2915 [NoesisGUI] C++ SDK major always 2023-12-04 13:01 2024-03-27 12:33
Reporter: anton.sodergren_pdx Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.4  
    Target Version: 3.2.4  
Platform: Any
Summary: Unloaded event not invoked for inlines added through code
Description: When a view is closed/destroyed, it is expected that the Unloaded event is called for all child elements of the view. However, this event is not called for Inline elements inside of a TextBlock, which can result in some cleanup code not being executed. Specifically, the event is not called on the inlines if they were added through code, but the event seems to be called as expected if the inlines were added in XAML.

The inlines were added to the TextBlock in this manner:

Noesis::InlineCollection& Inlines = *GetInlines();
const auto Run = Noesis::MakePtr<Noesis::Run>();
Run->SetText( Text );
Inlines.Add( Run );
Tags: C++
Steps To Reproduce: These are not the exact steps for reproduction that we used, but this should reproduce the issue:

1. Create a view containing a TextBlock
2. Add some code behind that creates and adds some inline elements to the TextBlock
3. Add an event listener that listens for the Unloaded event on the inline elements and that does something that can be observed
4. Invoke some code that closes the view containing the TextBlock and verify whether the Unloaded event was called or not
Additional Information:
Attached Files:
Notes
(0009001)
sfernandez   
2023-12-05 11:26   
(Last edited: 2023-12-05 11:26)
When you say "invoke some code that closes the view" you mean destroying the IView, or just taking the TextBlock out of the UI tree?
Anyway, I'm not able to reproduce the issue in any of those cases. I am using the following xaml:
<UserControl x:Class="Testing.TestInlines"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>
    <TextBlock x:Name="txt" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="50"/>
    <Button x:Name="btn" Content="Button" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="20"/>
  </Grid>
</UserControl>

And this code-behind:
struct TestInlines: public UserControl
{
    TestInlines()
    {
        InitializeComponent();

        Button* btn = FindName<Button>("btn");
        btn->Click() += [this](BaseComponent*, const RoutedEventArgs&)
        {
            TextBlock* txt = FindName<TextBlock>("txt");
            InlineCollection& inlines = *txt->GetInlines();
            Ptr<Run> run = Noesis::MakePtr<Noesis::Run>();
            run->SetText("Hello World!");
            run->Unloaded() += [](BaseComponent*, const RoutedEventArgs&) { NS_LOG_INFO("Run Unloaded"); };
            inlines.Add(run);
        };
    }

    void InitializeComponent() { GUI::LoadComponent(this, "InlinesUnloaded.xaml"); }

    NS_IMPLEMENT_INLINE_REFLECTION_(TestInlines, UserControl, "Testing.TestInlines")
};

Could you reproduce it for example in the Hello World sample included in our SDK?
(0009004)
anton.sodergren_pdx   
2023-12-08 13:49   
Just destroying the UI element and thus taking it out of the UI tree, not destroying the top-level IView. I'll see if I can do a repro you can easily test.
(0009005)
anton.sodergren_pdx   
2023-12-08 13:51   
I do agree that your provided code should repro the issue based on my conclusions and what I wrote in the ticket, so I'll have to take a closer look at this.
(0009098)
sfernandez   
2024-01-22 12:07   
Did you find a way to reproduce this behavior?
(0009224)
anton.sodergren_pdx   
2024-02-20 17:27   
(Last edited: 2024-02-20 17:28)
Hi, sorry that it took so long for me to get back to you. I have now managed to reproduce the issue in a more isolated manner. Try this code and see if it reproduces it for you:


// .h
struct TestInlines: public UserControl
{
    TestInlines();
    static void OnRegisterUnloadedEventsChanged( Noesis::DependencyObject* pSender, const Noesis::DependencyPropertyChangedEventArgs& EventArgs );
    static const Noesis::DependencyProperty* _pRegisterUnloadedEventsProperty;
    NS_DECLARE_REFLECTION( TestInlines, UserControl )
};

// .cpp
TestInlines::TestInlines()
{
    Noesis::GUI::LoadComponent( this, "InlinesUnloaded.xaml" );
}

void TestInlines::OnRegisterUnloadedEventsChanged( Noesis::DependencyObject* pSender, const Noesis::DependencyPropertyChangedEventArgs& EventArgs )
{
    Noesis::TextBlock* txt = Noesis::DynamicCast<Noesis::TextBlock*>( pSender );
    if ( !txt )
    {
        return;
    }

    InlineCollection& inlines = *txt->GetInlines();
    Ptr<Run> run = Noesis::MakePtr<Noesis::Run>();
    run->SetText("Hello World!");
    run->Unloaded() += [](BaseComponent*, const RoutedEventArgs&) { NS_LOG_INFO("Run Unloaded"); };
    inlines.Add(run);
}

NS_IMPLEMENT_REFLECTION( CFleetOrderControl, "Testing.TestInlines" )
{
    Noesis::UIElementData* pData = NsMeta<Noesis::UIElementData>( Noesis::TypeOf<SelfClass>() );
    pData->RegisterProperty<bool>( MessageBoxTextProperty, "RegisterUnloadedEvents", Noesis::PropertyMetadata::Create( false, &OnRegisterUnloadedEventsChanged ) );
}


The dependency property is not the main issue here, I just added it for testing purposes.

This XAML works fine:

<UserControl x:Class="Testing.TestInlines"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:test="clr-namespace:Testing">
  <Grid>
    <TextBlock x:Name="txt" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="50" test:TestInlines.RegisterUnloadedEvents="True" />
  </Grid>
</UserControl>


While this does not.
<UserControl x:Class="Testing.TestInlines"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:test="clr-namespace:Testing">
  <Grid>
    <Control>
      <Control.Template>
        <ControlTemplate>
          <TextBlock x:Name="txt" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="50" test:TestInlines.RegisterUnloadedEvents="True" />
        </ControlTemplate>
      </Control.Template>
    </Control>
  </Grid>
</UserControl>

So something seems to go wrong when the text block is inside of a control template. It doesn't have to be the direct child of the control template, but it seems like it needs to be directly in the control template's scope, and not eg. be wrapper in a user control that is inside of the control template.
(0009292)
anton.sodergren_pdx   
2024-03-07 16:23   
Hello, just wanted to check, has there been another attempt at reproducing this issue?
(0009305)
sfernandez   
2024-03-08 17:28   
Here is a patch that fixes the issue with inlines not being Loaded/Unloaded when created inside a template (the changes are on TextBlock::OnPostInit() method).

Index: TextBlock.cpp
===================================================================
--- TextBlock.cpp	(revision 13486)
+++ TextBlock.cpp	(working copy)
@@ -498,6 +498,18 @@
     if (mInlines != 0)
     {
         ConnectInlines();
+
+        if (IsConnectedToView())
+        {
+            IView* view = GetView();
+            int numInlines = mInlines->Count();
+            for (int i = 0; i < numInlines; ++i)
+            {
+                Inline* inline_ = mInlines->Get(i);
+                inline_->OnConnectToView(view);
+                inline_->OnConnectToViewChildren();
+            }
+        }
     }
 
     mTextFlags |= TextFlags_InitializeFinished;


If you are not building Noesis from code, I can generate a patched Noesis library for you to try, which version would you need?
(0009311)
anton.sodergren_pdx   
2024-03-11 12:53   
Thank you, I will try this out today! We are not building Noesis from source in our usual build setup, but I think I can apply the patch and build Noesis locally.
(0009313)
anton.sodergren_pdx   
2024-03-11 14:18   
Nice, it does appear to fix this issue indeed, thanks! :) I'm supposing this will also get into Noesis 3.2.4?

We also have some different issues related to inlines, I was hoping that this fix would fix that too, but it seems that's not the case unfortunately. We're getting a heap corruption when calling Clear() on a Noesis::InlineCollection in some cases (it's related to bindings that we are doing in those inlines). But we'll continue investigating that a bit separately and see if that is also a Noesis bug or if we're doing something wrong with it.
(0009351)
sfernandez   
2024-03-27 12:33   
Yes, this will be included in the next 3.2.4 version.

Please open a new ticket regarding the heap corruption deleting inlines if you find it is a Noesis issue, thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3161 [NoesisGUI] C# SDK major always 2024-03-11 14:16 2024-03-27 11:03
Reporter: Demond Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.4  
    Target Version: 3.2.4  
Platform: Any
Summary: Low performance when using BackgroundEffectBehavior.BlurEffect on many elements
Description: I noticed in RenderDoc how the background is rendered several times in the offscreen. Each background is rendered into its own separate offscreen texture. The number of textures corresponds to the number of elements with this effect. Is this behavior advisable and am I using this effect correctly? Why is the background re-rendered into a separate offscreen texture? Why can't I use the background texture directly?

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=NoesisGUI.GUI.Extensions">
  <Grid.Resources>
    <ResourceDictionary>
      <Style TargetType="Rectangle">
        <Setter Property="Width" Value="100" />
        <Setter Property="Height" Value="32" />
        <Setter Property="Margin" Value="0 4 0 0" />
        <Setter Property="Fill" Value="#40FFFFFF" />
        <Setter Property="noesis:StyleInteraction.Behaviors">
          <Setter.Value>
            <noesis:StyleBehaviorCollection>
              <noesis:BackgroundEffectBehavior Source="{Binding ElementName=BGImage}">
                <BlurEffect Radius="10"/>
              </noesis:BackgroundEffectBehavior>
            </noesis:StyleBehaviorCollection>
          </Setter.Value>
        </Setter>
      </Style>
    </ResourceDictionary>
  </Grid.Resources>
  <Border>
    <Image x:Name="BGImage" Source="Background.jpg" Stretch="Fill"/>
  </Border>

  <StackPanel Orientation="Horizontal">
    <StackPanel>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
    </StackPanel>
    <Span Width="40" />
    <StackPanel>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
    </StackPanel>
    <Span Width="40" />
    <StackPanel>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
    </StackPanel>
    <Span Width="40" />
    <StackPanel>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
    </StackPanel>
    <Span Width="40" />
    <StackPanel>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
      <Rectangle/>
    </StackPanel>
  </StackPanel>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2000 [NoesisGUI] C# SDK minor have not tried 2021-05-04 18:30 2024-03-26 18:04
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Convert Noesis.GUI.Extension package to .NET 5
Description: As discussed here: https://www.noesisengine.com/forums/posting.php?mode=reply&f=3&t=2088#pr12651
We should move the extension nuget to .NET 5 because framework versions are no longer on development.

Also update the interactivity dependency to use the new behaviors: https://www.nuget.org/packages/Microsoft.Xaml.Behaviors.Wpf
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009347)
sfernandez   
2024-03-26 18:04   
Fixed in 3.0.9 version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2429 [NoesisGUI] C++ SDK minor always 2022-09-23 11:18 2024-03-26 17:17
Reporter: Luke Yen Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: OpenMoji font does not render colored glyphs
Description: The colored version of OpenMoji font (https://openmoji.org/ -> Get OpenMoji-Color.ttf), renders as outlines only (it should render outlines + colored fills) when used in our TextEmojis.xaml sample.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: OpenMoji-outlinesonly-wrong.png (16,773 bytes) 2022-09-23 11:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1687&type=bug
OpenMoji-colored-good.png (7,699 bytes) 2022-09-23 11:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1688&type=bug
OpenMoji.png (14,639 bytes) 2024-03-26 02:27
https://www.noesisengine.com/bugs/file_download.php?file_id=2268&type=bug
Notes
(0008082)
sfernandez   
2022-09-23 11:28   
(0009344)
jsantos   
2024-03-26 02:22   
(Last edited: 2024-03-26 17:17)
Just a clarification here:

- COLRv0 is supported
- COLRV1 is not supported
- SVG is not supported
- SBIX is not supported (Apple format)

Downloading OpenMoji COLRv0 version works (https://github.com/hfg-gmuend/openmoji/blob/master/font/OpenMoji-color-glyf_colr_0)

<TextBlock FontSize="20" FontFamily="./#OpenMoji Color">��</TextBlock>

(0009345)
jsantos   
2024-03-26 02:27   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3178 [NoesisGUI] VSCode feature always 2024-03-14 19:05 2024-03-26 00:17
Reporter: nate.deselms@iracing.com Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Auto Completion in VSCode Extension for Resources and Data Context
Description: The Noesis VSCode extension has auto completion for custom Noesis classes but not for static/dynamic resources or a data context. Having auto completion for resources and data contexts would allow for our team to migrate from Blend but have references to what we need.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3187 [NoesisGUI] Studio minor always 2024-03-19 14:33 2024-03-25 23:40
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Gauge Elements Cannot be Copy-Pasted
Description: There appears to not be any support for the copy-pasting of Gauges within Studio.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new page
2) Create two new Components (Component_A and Component_B)
3) Inside of Component A, create a Gauge of your choice (I used RadialTicks).
4) Copy the Gauge layer from the Navigator.
5) Open Component_B, and attempt to paste Component_A's Gauge into Component_B.
Observe how no pasting takes place.

Expected Result: Gauges can be copy-pasted like any other component type.
Additional Information:
Attached Files:
Notes
(0009338)
dfranjic   
2024-03-25 14:39   
Fixed but hardcoded for "noesis:" namespace...
For future: The clipboard contains something like `<noesis:RadialTicks/>` with no information as to what namespace "noesis" prefix actually points. Maybe iterating over all classes and finding the one which contains "RadialTicks" in it's name (but then what if there are two RadialTicks objects but from different namespaces...?).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3188 [NoesisGUI] Studio minor always 2024-03-19 15:17 2024-03-25 23:39
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Component Attached Properties Break when a Component is Renamed
Description: Renaming the Root of the Component breaks any previously-associated bindings in the Attached Properties.

IMO, users should be able to perform renames freely without having to re-link every Attached Property binding.
(ie: Renaming a Component should automatically update all paths where it's employed)
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new Page
2) Create a new Component, and place it within the Page.
3) Within the Component, place a TextBlock of a visible colour and visible size.
4) Rename the Root of the Component to "Component_NameA".
5) Create an Attached Property in the Component of type 'String' and of name 'Label'.
6) In the Page, set whichever you text you like in the field for the 'Label' Attached Property of the Component. At this point, the text on the Page should render the text that was typed in the field.
7) Return inside the Component and rename the Root of the Component to "Component_NameB".
8) Return to the Page view.
Observe how the text no longer is rendered.

Expected Results: Renames within a Component should not break bindings: any name changes automatically update the binding path. Users should "Clear Bindings" if they wish to decouple (or couple to another layer).
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3189 [NoesisGUI] Studio minor always 2024-03-19 15:40 2024-03-25 23:39
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: All Transforms should come with a Default Origin of 0.5,0.5
Description: 99% of all Transforms I ever perform across any application are from the centre of the object.

I find myself constantly forgetting to change Studio's default transform from Upper Left (0,0) to Centre (0.5,0.5).

I would really appreciate if all Origins had a default of Centre (0.5, 0.5)
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3191 [NoesisGUI] Studio minor always 2024-03-19 16:37 2024-03-25 23:39
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Standalone Lines are not Geometrically Centred
Description: See attached screenshot.

Lines placed on the Canvas are not geometrically centred, and are instead shifted left by 1/4 of the width (thickness) of the line.

This makes it incredibly difficult to use lines as a visual element since the moment the thickness changes, so must an artificial offset (counter-margin)

This can be resolved in a couple ways:
1) Standalone Lines (not part of a connecting shape) are Centred.
2) There exists an option to set Line Stroke Alignment to "Centre", "Inside", or "Outside.
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files: LineCentreBug.jpg (360,245 bytes) 2024-03-19 16:37
https://www.noesisengine.com/bugs/file_download.php?file_id=2260&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3193 [NoesisGUI] Studio minor always 2024-03-20 11:26 2024-03-25 23:34
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Ctrl+Z Does not work on Active Input Field
Description: Undoing (Ctrl+Z) does not function if the user is inside of an active input field (ie Text/Number input).

The only way to currently 'undo' a property change, is to click outside of the input field, and then press Ctrl+Z, requiring 2 steps compared to what most applications accomplish in 1.
Tags:
Steps To Reproduce: Repro Steps:

1) Click on the Height property input field.
2) Input a value of 32 into the Height Property input field.
3) Click outside of the input field. The 32 value will now set.
4) Click back into the Height.
5) Input a new value of 16 into the Height Property Field. Do not click away or perform any other keystrokes than typing '16'.
6) Press Ctrl+Z on the keyboard.

Observe how the value does not 'undo' back to 32.

Expected Result:
'Undoing' works inside active input fields.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3194 [NoesisGUI] Studio crash N/A 2024-03-20 15:13 2024-03-25 23:31
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes Switching Between Components
Description: I'm not completely certain, but I believe this crash is a result of switching tabs between [Component_B] and [Component_A], where [Component_A] contains an instance of [Component_B].

For example, [Component_A], a watch, contains [Component_B], which is the hands of the clock.

Dump Attached.
Tags:
Steps To Reproduce: No clear repro steps other than changing tabs between two open Components; one which contains the other.
Additional Information:
Attached Files: 20240320_100625.dmp (96,401 bytes) 2024-03-20 15:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2262&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3195 [NoesisGUI] Studio minor always 2024-03-25 10:51 2024-03-25 22:56
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Renamed Gradients Do Not Update Where Used
Description: Renaming a Gradient in the Global Resources panel breaks it and does not display properly wherever it's used.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new Gradient Background Fill on any Element (A Grid Element works well)
2) From the 3-Dot menu for the 'Background', select 'Convert to Resource'
3) Navigate to the Resources tab, find the newly-created Resource, and rename it to any name of your choice.

Observe how the Gradient on the original Element it was created on, ceases to display.

Upon further observation, notice how the Background Fill is still assigned to the Original/Old Gradient name from when it was first created as a Global Resource.

Expected Result: Renamed Global Resources are automatically renamed in every instance they are used. If a user wishes to break them apart, they can do so manually by Clearing Binding.
Additional Information:
Attached Files:
Notes
(0009340)
dfranjic   
2024-03-25 15:02   
Currently when renaming resources the usages of it will be renamed only in the document that it's defined in.. I can't do as simple solution as project global search and replace since an element can use a resource with the exact name defined in some completely different merged resource dictionary. So a solution be to do project-wide search for the resource name, check if the referenced resource is actually the one that's being renamed, and if so rename it in the code.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3196 [NoesisGUI] Studio crash have not tried 2024-03-25 11:17 2024-03-25 22:56
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Ctrl+D to Duplicate a Component Crashes Studio
Description: Using the [Ctrl+D] Shortcut on a Component results in crashing Studio.

Dump attached.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a Component.
2) Drag it to the current Page.
3) In the Navigator, select the Component.
4) Press Ctrl+D on the keyboard to duplicate it.

Observe Studio crashing.

Expected Result: Components can be duplicated like any other element.
Additional Information:
Attached Files: 20240325_061441.dmp (232,962 bytes) 2024-03-25 11:17
https://www.noesisengine.com/bugs/file_download.php?file_id=2263&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3190 [NoesisGUI] Studio crash always 2024-03-19 16:02 2024-03-25 22:48
Reporter: dstewart Platform:  
Assigned To: jsantos OS:  
Priority: high OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Setting a Gauge Spacing Value of '0' Crashes Studio.
Description: Setting the 'Spacing' value of a Gauge crashes Studio.

Dump attached.

EDIT: This bug is quite serious in that it has the ability to corrupt AutoSaves/Backups, resulting in not being able to open up the project at all without purging the NoesisStudio backups found in \AppData\Roaming\NoesisStudio\Backups
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new Page
2) Add a RadialTicks Gauge to the Page.
3) In the 'Spacing' value of the Gauge Element, set it to '0'

Observe Studio crashing.

Expected Results: Values of 0 are gracefully accepted (with no visual result, similar to not setting a no-value Background).
Additional Information:
Attached Files: 20240319_105924.dmp (136,702 bytes) 2024-03-19 16:02
https://www.noesisengine.com/bugs/file_download.php?file_id=2259&type=bug
Notes
(0009339)
dfranjic   
2024-03-25 14:44   
The issue is in the implementation of the Radial Ticks control. Setting the spacing to 0 creates an infinite loop in the code.

RadialTicks.cpp @ L164: for (float i = minimum; i <= maximum; i += spacing)
Variable "i" never gets increased thus the loop is never exited.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3198 [NoesisGUI] Studio minor have not tried 2024-03-25 15:14 2024-03-25 22:47
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash after creating a style inside a DataTemplate
Description: As seen here: https://youtu.be/fiL-KMqsvao?feature=shared&t=788
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: StyleInsideDataTemplate.dmp (222,985 bytes) 2024-03-25 15:14
https://www.noesisengine.com/bugs/file_download.php?file_id=2264&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3199 [NoesisGUI] Studio minor have not tried 2024-03-25 15:16 2024-03-25 22:46
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash deleting a resource
Description: As seen here: https://youtu.be/fiL-KMqsvao?feature=shared&t=962
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CrashDeletingResource.dmp (195,385 bytes) 2024-03-25 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2265&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3200 [NoesisGUI] Studio crash sometimes 2024-03-25 15:35 2024-03-25 22:46
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash Editing EllipseGeometry Clip Transform Properties
Description: I don't have a reliable way to reproduce this one, but this crash occurs in my case, in a scenario where there are 3 Elements:

A Grid with an EllipseGeometryClip, containing:
A Grid with an EllipseGeometryClip, containing:
A Border element.

The crash occurs when adjust the Transform values of the two EllipseGeometry Clips.

EDIT: I have this narrowed donwn to manipulating the TranslateY Property across both EllipseGeometry clips.

Dump Attached
Tags:
Steps To Reproduce: Playing around with all EllipseGeometryClip properties - with a particular emphasis on the Transform controls.
Additional Information:
Attached Files: 20240325_102656.dmp (85,681 bytes) 2024-03-25 15:35
https://www.noesisengine.com/bugs/file_download.php?file_id=2266&type=bug
ClipTransformCrash.mp4 (2,047,481 bytes) 2024-03-25 15:35
https://www.noesisengine.com/bugs/file_download.php?file_id=2267&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3179 [NoesisGUI] Studio trivial always 2024-03-15 16:32 2024-03-25 15:17
Reporter: fllorens Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when creating page in a special chacter-named folder
Description: A folder with a special character in its name, for example an accent ('ó') , will create a crash when trying to create something inside.
Tags:
Steps To Reproduce: 1. Create a folder and rename it with a special character (ó, à, ç, ñ..)
2. Try to create a page inside
Additional Information:
Attached Files: NewPage_fromSpecialCharcterFolder.dmp (302,570 bytes) 2024-03-15 16:32
https://www.noesisengine.com/bugs/file_download.php?file_id=2256&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3184 [NoesisGUI] Studio minor always 2024-03-15 16:49 2024-03-25 15:14
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when adding a Tooltip to the viewport
Description: Dragging and dropping a tooltip from Add Element panel will crash the Studio
Tags:
Steps To Reproduce: 1. Create page
2. Add Element Panel > Click and drag ToolTip to viewport
Additional Information:
Attached Files:
Notes
(0009342)
dfranjic   
2024-03-25 15:14   
ToolTip can't be directly added to the view. It must be set through the FrameworkElement.ToolTip property... I'm not sure as to how to handle tooltips... This is maybe a topic for a meeting


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3185 [NoesisGUI] Studio minor always 2024-03-15 16:55 2024-03-25 15:11
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when trying to create a ComboBox's SelectionBoxItem template
Description: when trying to create a ComboBox's SelectionBoxItem template, the Studio crashes
Tags:
Steps To Reproduce: 1. Create a ComboBox
2. Context Menu > Templates > SelectionBoxItem > Create new
Additional Information:
Attached Files: SelectionBoxItemTemplate.zip (24,860 bytes) 2024-03-15 16:55
https://www.noesisengine.com/bugs/file_download.php?file_id=2258&type=bug
Notes
(0009341)
dfranjic   
2024-03-25 15:11   
SelectionBoxItemTemplate is a read-only property and thus it can't be modified. It's not shown anymore in the context menu.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3197 [NoesisGUI] C++ SDK minor always 2024-03-25 14:11 2024-03-25 14:12
Reporter: dfranjic Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: RadialTicks has two Width properties
Description: One is FrameworkElement::WidthProperty (width of the element) and the other is RadialTicks::WidthProperty (width of the ticks)

Having <RadialTicks Width="300"/> in the XAML code will set the tick width to 300 but element's width (desired behavior) won't be set.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3171 [NoesisGUI] Studio major always 2024-03-13 13:54 2024-03-15 18:53
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: MediaElements do not render inside of their destination until the page is closed and reopened.
Description: MediaElements do not render on the stage where they are supposed to appear until the document in question is closed, and then re-opened.

Video attached.
Tags:
Steps To Reproduce: Repro Steps:

1) Open a new project, and create a 'Master' page.
2) Create a Component, and place a Video file within it.
Observe how the video is not visible on the stage.

3) Close the Component file, then re-open it from the Resources panel
Observe how the video now plays within the page.

4) Within the 'Master' page, drag the Component containing the video, onto the stage.
Observe how the video is not visible on the stage.

5) Close the Master page, and re-open it via the Resources panel.
Observe how the video within the component now displays.

Expected Result: All videos are visible and play when they are placed within a stage.
Additional Information:
Attached Files: MediaElementBug.mp4 (4,145,726 bytes) 2024-03-13 13:54
https://www.noesisengine.com/bugs/file_download.php?file_id=2247&type=bug
Notes
(0009328)
dfranjic   
2024-03-14 02:16   
What Studio version are you using in this video? 0.0.81 or 0.0.82? As this should be fixed in 0.0.82 and I can't seem to reproduce it, but I might be wrong here..
(0009330)
dstewart   
2024-03-14 10:03   
Hey Dario,
This was 0.81 or below. If you're unable to repro and are confident its fixed, please feel free to mark as Resolved and if it comes up again I'll re-open or create a new one! It appears fixed to me as well from 0.82.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3155 [NoesisGUI] Studio crash always 2024-03-11 13:22 2024-03-15 18:51
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when loading XAML with GlobalResources
Description: When loading resources in GlobalResources, there is a failed assert.

Gui.Studio.dll!Editor::ResourceMapper::MapTemplateChildren(Editor::Resource * parent) Line 2264
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(2264)
Gui.Studio.dll!Editor::ResourceMapper::ProcessResource(Editor::Resource * resource) Line 2415
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(2415)
Gui.Studio.dll!Editor::ResourceMapper::AddResource(Noesis::BaseComponent * res, const char * key, Noesis::NodeObject * node, Noesis::ResourceDictionary * dict, Noesis::NodeObject * owner, Editor::ProjectFile * file, Editor::ProjectFile * source, bool process) Line 392
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(392)
Gui.Studio.dll!Editor::ResourceMapper::ProcessDictionary::__l5::<lambda>(const char * key, Noesis::BaseComponent * value) Line 2032
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(2032)
Gui.Studio.dll!Noesis::DelegateImpl<void __cdecl(char const *,Noesis::BaseComponent *)>::FunctorStub<void <lambda>(const char *, Noesis::BaseComponent *)>::Invoke(const char * && <args_0>, Noesis::BaseComponent * && <args_1>) Line 162
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(162)
Gui.Core.dll!Noesis::Delegate<void __cdecl(char const *,Noesis::BaseComponent *)>::operator()(const char * <args_0>, Noesis::BaseComponent * <args_1>) Line 522
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(522)
Gui.Core.dll!Noesis::ResourceDictionary::EnumKeyValues(const Noesis::Delegate<void __cdecl(char const *,Noesis::BaseComponent *)> & callback) Line 142
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\ResourceDictionary.cpp(142)
Gui.Studio.dll!Editor::ResourceMapper::ProcessDictionary(Editor::ProjectFile * source, Editor::ProjectFile * file, Noesis::NodeObject * owner, Noesis::ResourceDictionary * dict, Editor::Resource * parent) Line 2030
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(2030)
Gui.Studio.dll!Editor::ResourceMapper::MapApplicationResources(Editor::ResourceContainerTreeItem * container) Line 273
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(273)
Gui.Studio.dll!Editor::ResourceMapper::MapApplicationResources() Line 261
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ResourceMapper.cpp(261)
Gui.Studio.dll!Editor::Project::Load(const char * projectFile) Line 512
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Project.cpp(512)
Gui.Studio.dll!Noesis::Studio::Create(const char * projectPath, const Noesis::Studio::Options & options) Line 192
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Studio.cpp(192)
App.StudioTool.exe!StudioTool::MainWindow::LoadProject(const char * projectPath) Line 338
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\App\StudioTool\Src\MainWindow.xaml.cpp(338)
Tags:
Steps To Reproduce: Open the attached project
Open Engineering.xaml
Additional Information:
Attached Files: UoNEngineering_GlobalResCrash.zip (3,919,105 bytes) 2024-03-11 13:22
https://www.noesisengine.com/bugs/file_download.php?file_id=2235&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3180 [NoesisGUI] Studio feature always 2024-03-15 16:35 2024-03-15 18:51
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Main menu's Exit command should be working
Description: Main menu> File> Exit command is not working. Shortcut does work, though.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3186 [NoesisGUI] Studio minor have not tried 2024-03-15 18:50 2024-03-15 18:51
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Using {DynamicResource} inside of a Style Setter doesn't update all elements using that Style when updating the resource
Description: When mapping resources, we create a map resource -> style so when the resource is changed all elements using the style can be updated.
This works fine using {StaticResource} inside of a Setter.Value, but when using {DynamicResource} the resource can't be linked with a style since we can't Evaluate() the Expression.

POSSIBLE SOLUTION: Call ResourceMapper::LinkStyle() only when creating a element -> style map, rather than how it's done now (unrelated to which element it's applied and when).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3182 [NoesisGUI] Studio minor always 2024-03-15 16:40 2024-03-15 18:36
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when dragging a rive to a rive
Description: Dragging a rive asset from the assets panel to an existing rive in the viewport will crash the Studio.
Tags:
Steps To Reproduce: 1. Import some rive files
2. Drag one into the viewport
3. Now drag another one into the first one
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3181 [NoesisGUI] Studio trivial always 2024-03-15 16:38 2024-03-15 18:36
Reporter: fllorens Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Ctrl+W is showing a wire overlay of the Studio
Description: When there's nothing selected, Ctrl+W instead of closing an asset will change the entire rendering of the studio to some kind of wireframe.
Tags:
Steps To Reproduce: 1. Open the studio
2. Press Ctrl+W
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2807 [NoesisGUI] Studio trivial always 2023-11-02 11:52 2024-03-15 18:35
Reporter: fllorens Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Entire studio showing Overdraw helper
Description: When hitting Ctrl+Shift+O, the Overdraw debug helper is overlayed over the entire Studio.
Tags:
Steps To Reproduce: 1. open the Studio
2. Hit Ctrl+Shift+O
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3057 [NoesisGUI] Unreal minor always 2024-02-01 08:24 2024-03-14 14:40
Reporter: mprey Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.4  
    Target Version: 3.2.4  
Platform: Any
Summary: Bound Image Texture Source does not update correctly at runtime
Description: Runtime redrawing of a Texture2D is not correctly recognized by Noesis as a change, even with On Notify Changed

(See also https://www.noesisengine.com/forums/viewtopic.php?t=3196)
Tags:
Steps To Reproduce: 1) Bind Image Source of a Image control to a BP Texture2D variable
2) At runtime I overwrite the Texture2D and re-set the BP variable with Notify Changed but Noesis will not recognize the change and update the Image after the first time
Additional Information:
Attached Files: heightmapBP (1).png (40,453 bytes) 2024-02-01 08:24
https://www.noesisengine.com/bugs/file_download.php?file_id=2130&type=bug
TextureStreaming.patch (2,253 bytes) 2024-02-28 23:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2212&type=bug
Notes
(0009150)
hcpizzi   
2024-02-01 17:55   
When you say you're overwriting the Texture2D object, do you mean that it is the same Texture2D object and you're replacing the internal TextureRHI?
(0009151)
mprey   
2024-02-01 18:42   
That is correct, I am operating on the same object and just calling UpdateResource at the end
(0009264)
hcpizzi   
2024-02-28 23:48   
Sorry this took so long. Could you please try the attached patch? This fixes a similar issue we have when new texture mip levels are streamed in or out.
(0009329)
mprey   
2024-03-14 04:10   
Sorry late for response. Yes this works now, thanks!
(0009331)
hcpizzi   
2024-03-14 14:40   
Brilliant! Marking this as resolved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3172 [NoesisGUI] Studio crash have not tried 2024-03-13 14:12 2024-03-14 12:46
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when Dragging a Second Component to the Stage (that contains Blending Modes)
Description: I'm unsure if this is due to:
a) Since Components can only be dragged to the stage, if this is a case of the second component trying to become a child of a first component already present.
b) If this is a case where we can't process blending modes set inside of a Component, and not performed at the root where it blends with the background behind it.
c) Other.

Video and Crash Dump attached.

EDIT: After further attempts. This appears to be very potentially related to a Blending Mode used within the Component.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new file, and a new 'Master' page
2) Create a Component, inside of which, is a video file.
3) Drag the Component with the Video file onto the stage.
4) Close both the Master, and the Component containing the video file.
5) Re-Open the Master file. The video should now be displaying.

6) Create a second Component. Inside of it, set a couple Grid layers with ImageFills. Set one of the layers to have a Blending Mode of your choice.
7) Return to the Master File, and drag onto the canvas this second Component.
Observe how Studio crashes.

Expected result: Multiple components can be added to the page without causing a crash.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3174 [NoesisGUI] Studio major always 2024-03-13 15:23 2024-03-14 12:39
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Global Dictionary Content Isn't Accessible Within Newly-Created Components
Description: Global Dictionary Colour Resources are not accessible within a newly-created component.
This is not solved by merging the GlobalDictionary to the Component either.

Video Attached.
Tags:
Steps To Reproduce: Repro Steps:

1) In a new Project, create a 'Master' page.
2) Create a couple Colors inside the Project's Global Dictionary.
3) Create a new Component.
4) Attempt to apply one of the Global Dictionary Colours to any element within the Component.
Observe that none of the Global Dictionary Colours are visible in the Colour Picker.

5) Within the Component, go to the Resources tab, and select the Component.
6) Merge the Global Dictionary to the Component.
7) Open the Colour Picker for an Element within the Component, and attempt to apply a Global Dictionary colour.
Observe that none of the Global Dictionary Colours are visible in the Colour Picker.

Expected Result: All Global Dictionary Resources are universally-accessible.
Additional Information:
Attached Files: GlobalResourcesNotAppearing.mp4 (1,172,898 bytes) 2024-03-13 15:23
https://www.noesisengine.com/bugs/file_download.php?file_id=2252&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3175 [NoesisGUI] Studio minor have not tried 2024-03-13 15:56 2024-03-14 12:38
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Renaming a Component does not Rename them Where They Are Employed
Description: Any Component that is renamed in the central Assets panel, does not also get renamed in instances where it is used, resulting in permanent breakage of the Component Display

Image attached. These are supposed to be named the same.
Tags:
Steps To Reproduce: Repro Steps

1) Create a new 'Master' Page.
2) Create 3 Components (Component_A, Component_B, and Component_C). Fill each with any content (a border will do the trick)
3) Put 'Component_A' onto the Stage of the 'Master' Page
4) Put both 'Component_B' and 'Component_C' inside of 'Component_A'.
Ensure that everything is rendering as expected on the main stage of the 'Master' Page.

In the Assets Panel, rename 'Component_B' to 'Component_Test'.
Observe how within 'Component_A', Component_B no longer displays, and the Element which should contain Component_B is still called '[/Component_B] instead of 'Component_Test'.

Expected Result:
Renaming a Component in the Assets Panel, renames it in every instance where its used.

Additional Information:
Attached Files: ComponentsNotRenaming.jpg (182,397 bytes) 2024-03-13 15:56
https://www.noesisengine.com/bugs/file_download.php?file_id=2253&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3177 [NoesisGUI] Studio trivial always 2024-03-13 18:21 2024-03-14 12:35
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Open Document Tabs Cannot be Re-Ordered
Description: It is currently not possible to re-order tabs of various open Documents in studio.
Currently, the only way to set a desired order, is to close all tabs, and re-open them strictly in the order they should appear at the top.
Tags:
Steps To Reproduce: Repro Steps:

1) Open any Project file.
2) Open multiple XAMLs within the project at once.
3) Attempt to move the position of any of the open tabs.
Observe how tabs are not drag-and-droppable.

Expected Result: Tabs can be re-ordered at any time.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3167 [NoesisGUI] Studio minor always 2024-03-13 12:48 2024-03-14 03:35
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Resources Created in Global Resources do not Immediately Appear in Resources
Description: New Global Resources do not appear in the Resources list of their parent unless an other Parent is selected first.
Tags:
Steps To Reproduce: Repro Steps:
1) Create a new page, in a fresh project.
2) Navigate to the Data panel, and under ApplicationResources, select GlobalResources.xaml
3) With GlobalResources selected, under the Resource Creation panel, type 'Color' and add a new Color.
4) Edit the values of the Color in the right-side properties panel.

Observe how Color.001 does not appear in the list of resources.

5) Within the Resources panel, click on the 'Page' under the parentship of the created page.
6) Click back on 'GlobalResources.xaml'.

Observe how Color.001 now does appear in the list of resources as expected.

Expected Results: Newly-created Global Resources appear in the Resources list at creation.
Additional Information:
Attached Files: ResourceUpdateBug.mp4 (4,509,136 bytes) 2024-03-13 12:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2242&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3176 [NoesisGUI] Studio crash have not tried 2024-03-13 16:08 2024-03-14 03:22
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version:  
Platform: Any
Summary: Studio Crashes Clicking on a Component in the Assets Panel
Description: I'm unsure of what exactly caused this, but it occurred directly after the sequence found in this bug:
https://www.noesisengine.com/bugs/view.php?id=3175

The file in question can be found here: https://drive.google.com/file/d/1PJFYf-xzMOm3EfS_5fCzabn-7aTqVQwm/view?usp=drive_link

To make it crash, simply click on 'Instrument_Compass' in the Assets Panel

Video and Dump Attached
Tags:
Steps To Reproduce: Clicked on a Component in the Assets panel. Unsure of repro steps leading up to this otherwise.
Additional Information:
Attached Files: 20240313_093621.dmp (145,726 bytes) 2024-03-13 16:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2254&type=bug
ComponentClickCrash.mp4 (5,127,223 bytes) 2024-03-13 16:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2255&type=bug
Notes
(0009327)
dfranjic   
2024-03-14 01:25   
The <Component/> references itself, so the Studio enters in an infinite loop:

<Component>
  <Grid>
    <Component Source="Instrument_Compass.xaml"/>
  </Grid>
</Component>

It would be good if we could show an error (and prevent this from being doable inside of Studio, maybe), rather than crashing...


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3168 [NoesisGUI] Studio major always 2024-03-13 13:20 2024-03-14 02:22
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: high OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when Toggling Layer Visibility of Layers within a Component
Description: Within a Component, Studio crashes when toggling layer visibility after selecting a path within it.

Videos and Dump attached.
Tags:
Steps To Reproduce: Repro Steps:
1) Create a Component
2) Import multiple SVGs within the component, each on their own Grid.
3) Create a Storyboard within the Component.
4) Select a path, then click off of it.
5) Toggle the visibility of the Grids containing the SVGs.

Observe the application crashing.

Expected result: Studio doesn't crash when toggling layer visibility.

EDIT: This issue occurs independently of whether you are in Record Mode or not.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3149 [NoesisGUI] Studio minor always 2024-03-06 13:41 2024-03-14 01:27
Reporter: dstewart Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Certain International Keyboard Key Presses Do Not Register in Input Fields
Description: The following international keyboard keys do not type/register inside of Studio's text fields, and render as empty characters.
' (single quote)
" (double quote)
` (apostrophe)
~ (tilde)
Tags:
Steps To Reproduce: Repro Steps:

1) In Windows, switch your Keyboard to United States - International
This can be done by typing "Edit Language and Keyboard Options" in the Start Menu, and clicking on the Start Menu Result wit this name.
Then, in the 'Language' section, in the active 'Language' module, click the 3 little dots on the right. (screenshot attached).
Then, under the 'Keyboards' section, select 'Add a Keyboard', and select 'United States-International' in the list.
Then, ensure this United States-International keyboard is your active Keyboard layout. This can typically be seen in the bottom-of-screen Taskbar (screenshot attached). If ENG INTL is not active, click on the Taskbar shortcut to change it.

2) Verify that the Keyboard is indeed active by opening Notepad and typing the following:
' (Single press of the '/" key + spacebar )
" (Shift+single press of the '/" key + spacebar)
` (Single press of the `/~ key + spacebar)
~ (Shift+single press of the `/~ key + spacebar)

3) Open any project in Studio, and create a TextBlock.

4) In the 'Text' field, repeat the same keyboard presses to render the 4 characters that successfully rendered in Notepad in Step 2.

Observe how the Studio textfield does not render the characters asked and renders a blank/space character instead.
However, if they are copy-pasted, they render in the field without issue.

Expected Results: All characters typed on a keyboard render inside an Input Field
Additional Information:
Attached Files: LanguageOptions.jpg (61,600 bytes) 2024-03-06 13:41
https://www.noesisengine.com/bugs/file_download.php?file_id=2226&type=bug
KeyboardTaskbar.jpg (21,043 bytes) 2024-03-06 13:41
https://www.noesisengine.com/bugs/file_download.php?file_id=2227&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3173 [NoesisGUI] Studio crash always 2024-03-13 14:34 2024-03-13 20:59
Reporter: dstewart Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when Right-Clicking on a Row Definition containing a Component Containing a MediaElement
Description: Studio crashes when manipulating a parent Grid with Row Definitions in which a Component with a Video is contained.
Please refer to this file which has a 100% Crash Repro rate which can be triggered by right-clicking on a 'Screen_Master' Grid Adorner: https://drive.google.com/file/d/1VUKhIYZq4BQc9-Y7LnEvIVoWLOzA_lzK/view?usp=drive_link

Crash Dump and Video attached.
Tags:
Steps To Reproduce: Repro Steps (I don't know about how reliable these are, but this is how it occured for me)

1) Create a new Page ('Master')
2) Create a new Component ('Background'). Add a video file inside it.
3) Create a new Component ('Midground')
4) Add both Components to the 'Master' page, both within the same Grid. Close all open tabs to refresh them.
5) Open the Master, and add 3 rows to the Grid containing both Components. Make each row 1* each.
6) Assign the Background Component to span the top 2 Rows.
7) Play around with the Alignments and dimensions of the Component, randomly click between Alignment modes, and type in a fixed width of 1920.
8) Revert all of the things played with to what they originally were.
9) Right-Click on any of two first row Adorners of the Grid containing both Components (to attempt to delete a row)
Observe Studio crashes.

Expected Results: Grid Row Definitions can be adjusted at any time without crashing.
Additional Information:
Attached Files: 20240313_092359.dmp (234,527 bytes) 2024-03-13 14:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2250&type=bug
GridManipulationCrash.mp4 (1,493,108 bytes) 2024-03-13 14:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2251&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3170 [NoesisGUI] Studio minor always 2024-03-13 13:46 2024-03-13 14:02
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Media Elements cannot be Dragged to the Navigator
Description: MediaElements cannot be dragged directly to a destination within the Navigator.
Currently, they can only be dragged to the Stage.
Tags:
Steps To Reproduce: Repro Steps:
1) With a Video file inside your project resources, navigate to it in the Resources panel.
2) Attempt to drag the .mp4 file onto any parent element within the Layer Navigator.

Observe how it is not permitted to drag.

3) Attempt to drag the .mp4 file onto the stage.

Observe how the video is placed in place within a destination layer.

Expected Result: MediaElements, like all other types of elements, can be dragged onto a Parent layer in the Navigator.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3166 [NoesisGUI] C# SDK minor always 2024-03-13 04:47 2024-03-13 12:26
Reporter: Demond Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Incorrect behavior of inline text when using special characters
Description: I discovered the following behavior of inline text. Special characters block part of the area for clicking on a hyperlink. The example below reproduces this problem. Tested in XamlPlayer v3.2.3

<TextBlock>
  <Run Text=" ͡ ͡ ͡ ͡ ͡ ͡ ͡ ͡ ͡ ͡ ͡ ͡" /><Hyperlink NavigateUri="https://www.noesisengine.com/">NoesisEngine.com</Hyperlink>
</TextBlock>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009321)
jsantos   
2024-03-13 11:47   
Thanks for the repro XAML.

I understand your scenario is different right? Could you share it here too to understand a bit more what you want to achieve?
(0009322)
Demond   
2024-03-13 12:26   
I don’t have an example of a layout as such. I was just testing the behavior of RichText, how it would behave with various specific characters. And I noticed that one of the special characters used is not displayed, although using Background="Red" I was able to see that these characters are taking up space. I have a RichText where there may be similar characters and this could become a problem.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2612 [NoesisGUI] Unity3D crash always 2023-05-29 13:36 2024-03-13 09:54
Reporter: nadjibus Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.4  
Platform: Any
Summary: Crash reloading assembly with xaml containing bindings
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?t=2950
Tags:
Steps To Reproduce:
<Grid x:Name="NotificationsGrid"
              Margin="10,20"
              HorizontalAlignment="Left"
              VerticalAlignment="Top">

  <Grid x:Name="NestedGrid" Visibility="{Binding ObjectivesViewModel.HasObjectives, Converter={StaticResource BoolToVisibilityConverter}}">
  </Grid>
</Grid>
Additional Information: It happens when using a nested binding: ObjectivesViewModel.HasObjectives
Attached Files:
Notes
(0008913)
nadjibus   
2023-10-31 11:38   
Update post:
https://www.noesisengine.com/forums/viewtopic.php?p=16216#p16216
(0009164)
sfernandez   
2024-02-06 10:58   
Hello,

For the next version we did some changes that could have fixed this issue but I was never able to reproduce it.
Would it be possible for you to prepare a small sample where you can reproduce the crash so we can verify the issue has been solved?

Thanks a lot for your help.
(0009270)
nadjibus   
2024-03-05 10:41   
I will try to create a small sample reproducing the problem, if not I will share my project no problem.
(0009275)
nadjibus   
2024-03-05 18:20   
OK it seems the issue has been fixed in v3.2.2+ as I can't reproduce it either.
(0009314)
jsantos   
2024-03-12 12:20   
Thanks for the feedback, can we close this then?
(0009316)
nadjibus   
2024-03-12 19:30   
Yes I think it's fixed. I'll test more with the provided patch at 0002921 and let you know.
(0009319)
nadjibus   
2024-03-12 20:28   
Tested with the patched DLL and everything seems to work and no crashes so far! I think you can close the issue and I really wanted to thank you guys for the quick fix I really appreciate it.
(0009320)
sfernandez   
2024-03-13 09:54   
Thanks for your feedback helping us find the source of the problem!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2921 [NoesisGUI] Unity3D crash sometimes 2023-12-06 13:04 2024-03-12 20:28
Reporter: nadjibus Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Unity Editor Crash during Domain Reload
Description: Unity Editor crashes during domain reload, does not happen always, but it's quite common (2-3 times / day).

Full log and dump attached.

Unity log:

=================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:BaseComponent_Release <0x00089>
      at Noesis.BaseComponent:Release <0x0002a>
      at Noesis.Extend:ReleasePending <0x001c2>
      at Noesis.Extend:Shutdown <0x00aba>
      at Noesis.Extend:OnDomainUnload <0x00072>
      at <Module>:invoke_void_object_EventArgs <0x002d4>
      at System.AppDomain:DoDomainUnload <0x00099>
      at System.Object:runtime_invoke_void__this__ <0x00087>
=================================================================
Received signal SIGSEGV
Obtained 126 stack frames
0x00007ffa2eaa8a30 (Noesis) QueryCursorEventArgs_Cursor_get
0x00007ffa2eaa8e27 (Noesis) QueryCursorEventArgs_Cursor_get
0x00007ffa2eaa91af (Noesis) QueryCursorEventArgs_Cursor_get
0x00007ffa2eaa98c1 (Noesis) Noesis_GetPlatformID
0x00007ffa2ebfaf3f (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eb0a07b (Noesis) Color_GetStaticType
0x00007ffa2ea8be74 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ec0dfb5 (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007ffa2ebfa830 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eb10791 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eb78f25 (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ffa2eb142d8 (Noesis) BindingOperations_SetBinding
0x00007ffa2eb0b735 (Noesis) Color_GetStaticType
0x00007ffa2eb107b6 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eb78f25 (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ffa2eb142d8 (Noesis) BindingOperations_SetBinding
0x00007ffa2eb0b735 (Noesis) Color_GetStaticType
0x00007ffa2eb107b6 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eacf22a (Noesis) Boxed_Rect_GetStaticType
0x00007ffa2eac77a5 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2eb142d8 (Noesis) BindingOperations_SetBinding
0x00007ffa2eb1446f (Noesis) BindingOperations_SetBinding
0x00007ffa2eb0cd11 (Noesis) Color_GetStaticType
0x00007ffa2eb10f6d (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2ec0ea3b (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007ffa2eb11bf5 (Noesis) BindingOperations_SetBinding
0x00007ffa2eac877b (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2eac8a63 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2eb09949 (Noesis) Color_GetStaticType
0x00007ffa2ec646a2 (Noesis) Rect_GetStaticType
0x00007ffa2eac87d8 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2eb1036f (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eb108dd (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eac8a35 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2eb09949 (Noesis) Color_GetStaticType
0x00007ffa2eb0bae6 (Noesis) Color_GetStaticType
0x00007ffa2eac8769 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2eac8a63 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2eab27ba (Noesis) Thickness_GetStaticType
0x00007ffa2ea8ebb9 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b23d (Noesis) String_GetStaticType
0x00007ffa2ea8adc6 (Noesis) String_GetStaticType
0x00007ffa2ea8b789 (Noesis) String_GetStaticType
0x00007ffa2ebc93ee (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eabff53 (Noesis) ManipulationDeltaEventArgs_Velocities_get
0x00007ffa2ea8be85 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ec0dfb5 (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007ffa2ebfa830 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eb10791 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eacf22a (Noesis) Boxed_Rect_GetStaticType
0x00007ffa2eac77a5 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2ec32d1f (Noesis) UIElement_InvalidateMeasure
0x00007ffa2ea8b10c (Noesis) String_GetStaticType
0x00007ffa2ea8adc6 (Noesis) String_GetStaticType
0x00007ffa2ea8b789 (Noesis) String_GetStaticType
0x00007ffa2eaa9257 (Noesis) QueryCursorEventArgs_Cursor_get
0x00007ffa2ebfaf3f (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eb0a07b (Noesis) Color_GetStaticType
0x00007ffa2ea8be74 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ec0dfb5 (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007ffa2ebfa830 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2eb10791 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eacf22a (Noesis) Boxed_Rect_GetStaticType
0x00007ffa2eac77a5 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2ec32d1f (Noesis) UIElement_InvalidateMeasure
0x00007ffa2eb142ac (Noesis) BindingOperations_SetBinding
0x00007ffa2eb0b735 (Noesis) Color_GetStaticType
0x00007ffa2eb107b6 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eb78f25 (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ffa2eb142d8 (Noesis) BindingOperations_SetBinding
0x00007ffa2eb1446f (Noesis) BindingOperations_SetBinding
0x00007ffa2eb0cd11 (Noesis) Color_GetStaticType
0x00007ffa2eb111e8 (Noesis) BindingOperations_GetBindingExpression
0x00007ffa2eac76e8 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2eac77df (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ea8bc96 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ea8b6da (Noesis) String_GetStaticType
0x00007ffa2eb09949 (Noesis) Color_GetStaticType
0x00007ffa2ec646a2 (Noesis) Rect_GetStaticType
0x00007ffa2eac7778 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007ffa2ecbd710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007ffa2eada014 (Noesis) Int32Rect_GetStaticType
0x00007ffa2ea930d4 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ec009a7 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2ec00c54 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2ea8be3b (Noesis) KeyEventArgs_IsToggled_get
0x00007ffa2ec00aef (Noesis) Boxed_Point_GetStaticType
0x00007ffa2ec00ca4 (Noesis) Boxed_Point_GetStaticType
0x00007ffa2ea72493 (Noesis) BaseComponent_GetStaticType
0x0000028677b5a12a (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x0000028677b59f9b (Mono JIT Code) Noesis.BaseComponent:Release (intptr) (at ./Noesis/Runtime/API/Proxies/BaseComponent.cs:66)
0x00000286c3e1afd3 (Mono JIT Code) Noesis.Extend:ReleasePending () (at ./Noesis/Runtime/API/Core/Extend.cs:6109)
0x00000286e8e4c13b (Mono JIT Code) Noesis.Extend:Shutdown () (at ./Noesis/Runtime/API/Core/Extend.cs:86)
0x00000286e8e4b613 (Mono JIT Code) Noesis.Extend:OnDomainUnload (object,System.EventArgs) (at ./Noesis/Runtime/API/Core/Extend.cs:38)
0x00000286e8e42e55 (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_object_EventArgs (object,System.EventArgs)
0x00000286e8e42b1a (Mono JIT Code) System.AppDomain:DoDomainUnload ()
0x00000285bfeef0c8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffa2e034b6e (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ffa2df6d204 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3066)
0x00007ffa2de446d5 (mono-2.0-bdwgc) mono_domain_try_unload (at C:/build/output/Unity-Technologies/mono/mono/metadata/appdomain.c:3485)
0x00007ffa2e01df1a (mono-2.0-bdwgc) mono_unity_domain_unload (at C:/build/output/Unity-Technologies/mono/mono/metadata/unity-utils.c:765)
0x00007ff7ac8a7870 (Unity) UnloadDomain
0x00007ff7ac8977db (Unity) MonoManager::CreateAndSetChildDomain
0x00007ff7ac89634c (Unity) MonoManager::BeginReloadAssembly
0x00007ff7ac8a1408 (Unity) MonoManager::ReloadAssembly
0x00007ff7ad83f89d (Unity) Internal_ADB_Only_ReloadAllUsedAssemblies
0x00007ff7adcf629a (Unity) DomainReloadIfAllowed
0x00007ff7adcf43eb (Unity) CompileAndDomainReload
0x00007ff7add12f82 (Unity) RefreshInternalV2
0x00007ff7add1b1df (Unity) StopAssetImportingV2Internal
0x00007ff7ad523911 (Unity) Application::TickTimer
0x00007ff7ad99d26a (Unity) MainMessageLoop
0x00007ff7ad9a2ad0 (Unity) WinMain
0x00007ff7aed861be (Unity) __scrt_common_main_seh
0x00007ffaa1887344 (KERNEL32) BaseThreadInitThunk
0x00007ffaa38626b1 (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: crash.dmp (2,471,863 bytes) 2023-12-06 13:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2041&type=bug
Editor.log (877,756 bytes) 2023-12-06 13:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2042&type=bug
EventsShutdownReset.patch (9,143 bytes) 2024-03-08 11:56
https://www.noesisengine.com/bugs/file_download.php?file_id=2232&type=bug
crash-2.dmp (1,373,854 bytes) 2024-03-08 19:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2233&type=bug
Editor-2.log (77,541 bytes) 2024-03-08 19:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2234&type=bug
Notes
(0009273)
nadjibus   
2024-03-05 18:05   
Check https://www.noesisengine.com/bugs/view.php?id=3136#c9272 for a sample project + steps to reproduce.
(0009276)
sfernandez   
2024-03-05 18:44   
Thanks a lot for the repro project, I'll let you know what I can find.
(0009299)
sfernandez   
2024-03-08 11:56   
This crash seems to be resolved with something we fixed for 3.2.3.
I included the patch here (you need to apply the changes to NoesisGUI 3.2.2 version).
(0009302)
nadjibus   
2024-03-08 12:49   
I applied the patch but unfortunately the crash still happens. As I stated in the reproduction steps, it does not happen at the first run, but a the 2nd (Play -> Stop -> Play -> Edit MainView.xaml -> Crash).
(0009303)
sfernandez   
2024-03-08 16:00   
Yes, that is what I did.
I have your sample project with the patch applied and I'm not able to crash it by doing:
Play > Stop > Play > Change MainWindow.xaml > Back to Unity
And even doing Play/Stop more times.

Is it crashing for you in the sample project, or in your complete project?
(0009304)
nadjibus   
2024-03-08 17:02   
Yes, it's crashing in the sample project. Here's a screen recording:

https://drive.google.com/file/d/17OUACfOXbKvguECqwD4NQrWpA-gL5g_s/view?usp=drive_link

Did you manage to reproduce the crash without the patch?
(0009306)
sfernandez   
2024-03-08 17:41   
Yes, without the patch it crashed, and I'm doing exactly the same as you showed in the video.
Could you please send me the crash dump with the patch applied? Just to confirm is the same thing I was seeing.
(0009307)
nadjibus   
2024-03-08 19:05   
OK
(0009308)
nadjibus   
2024-03-08 20:32   
(Last edited: 2024-03-08 20:35)
Just to let you know, I don't know if this changes anything, I applied the patch provided in https://www.noesisengine.com/bugs/view.php?id=3136

I'm updating to Noesis 3.2.3 and let you know if it sill happens.
(0009309)
nadjibus   
2024-03-08 20:43   
I can confirm that the crash does not happen in v3.2.3. But unfortunately we cannot update since crash 0003136 happens in v3.2.3, unless you provide a patched version including the fix for it.
(0009310)
sfernandez   
2024-03-11 11:15   
I generated a patched 3.2.3 library for issue 3136: https://drive.google.com/file/d/1awpvV059eVlotvAejQaIsGlt-7VBcph_/view?usp=sharing
Please let me know if this works for you.
(0009315)
jsantos   
2024-03-12 12:21   
can we close this?
(0009317)
nadjibus   
2024-03-12 19:30   
I will test and let you know if we can close this issue and 0002612
(0009318)
nadjibus   
2024-03-12 20:28   
Tested with the patched DLL and everything seems to work and no crashes so far! I think you can close the issue and I really wanted to thank you guys for the quick fix I really appreciate it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3159 [NoesisGUI] Studio crash always 2024-03-11 14:04 2024-03-12 18:27
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when generating random data for complex dynamic type
Description: When generating random values for a complex type, an assert is hit.

Gui.Studio.dll!Noesis::Ptr<Noesis::BaseObservableCollection>::operator->() Line 195
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Ptr.inl(195)
Gui.Studio.dll!Editor::Helper::FillDynamicObject(Editor::Project * proj, Editor::DynamicObject * obj, Noesis::NodeObject * objNode, int depth, Editor::TextEditor * txt, Noesis::Vector<Editor::IMemento *,0> & mementos) Line 2213
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Helper.cpp(2213)
Gui.Studio.dll!Editor::Helper::FillDynamicObject(Editor::Project * proj, Editor::DynamicObject * obj, Noesis::NodeObject * objNode, int depth, Editor::TextEditor * txt, Noesis::Vector<Editor::IMemento *,0> & mementos) Line 2243
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Helper.cpp(2243)
Gui.Studio.dll!Editor::Helper::FillDynamicObject(Editor::Project * proj, Editor::DynamicObject * obj, Noesis::NodeObject * objNode, int depth, Editor::TextEditor * txt, Noesis::Vector<Editor::IMemento *,0> & mementos) Line 2175
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Helper.cpp(2175)
Gui.Studio.dll!Editor::GenerateDataContextCommand::Execute() Line 68
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\GenerateDataContextCommand.cpp(68)
Gui.Studio.dll!Editor::DataContextTreeItem::Generate(Noesis::BaseComponent * __formal) Line 224
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\DataContextTreeItem.cpp(224)
Gui.Studio.dll!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *)>::MemberFuncStub<Editor::DataContextTreeItem,void (__cdecl Editor::DataContextTreeItem::*)(Noesis::BaseComponent *)>::Invoke(Noesis::BaseComponent * && <args_0>) Line 202
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(202)
App.ApplicationLauncher.dll!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *)>::operator()(Noesis::BaseComponent * <args_0>) Line 522
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(522)
App.ApplicationLauncher.dll!NoesisApp::DelegateCommand::Execute(Noesis::BaseComponent * param) Line 52
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\App\ApplicationLauncher\Src\DelegateCommand.cpp(52)
Gui.Core.dll!Noesis::CommandHelper::ExecuteCommand(const Noesis::ICommandSource * source, Noesis::UIElement * target) Line 317
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\CommandHelper.cpp(317)
Gui.Core.dll!Noesis::BaseButton::OnClick() Line 424
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\BaseButton.cpp(424)
Tags:
Steps To Reproduce: Open the attached project
Create a page
Go to the Data panel
Assign ShipViewModel to the Page
Click the generate random values button
Additional Information:
Attached Files: UoNEngineering_DataGenFail.zip (1,245 bytes) 2024-03-11 14:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2237&type=bug
Notes
(0009312)
maherne   
2024-03-11 14:05   
Project.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3156 [NoesisGUI] Studio minor always 2024-03-11 13:29 2024-03-12 16:01
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: ResourceDictionary fails to merge in Studio
Description: A merged dictionary in the root Page of my XAML documents fails in Studio, the resources are used in the view, but are not recognised by Studio. Editing the document fails as it cannot find any of the resources in the merged dictionary.
Tags:
Steps To Reproduce: Open the attached project
Open Engineering.xaml
Go to the Resources panel, no merged dictionary is shown for the Page resources
Try to edit Engineering.xaml, validation will fail
Additional Information:
Attached Files: UoNEngineering_ResMergeFail.zip (4,749,630 bytes) 2024-03-11 13:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2236&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3157 [NoesisGUI] Studio crash always 2024-03-11 13:38 2024-03-11 15:29
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when trying to create a binding in a Style
Description: When trying to create a binding for a property in a Style, Studio locks up (infinite loop?).

When creating a binding for a ItemsControl ItemSource, or a ControlControl Content, an assert is hit:


Gui.DependencySystem.dll!Noesis::HashMapImpl<Noesis::HashBucket_KV<Noesis::DependencyProperty const *,Noesis::StoredValue *,Noesis::HashKeyInfo<Noesis::DependencyProperty const *>>>::FindBucket<Noesis::DependencyProperty const *>(unsigned int hash, const Noesis::DependencyProperty * const & key) Line 792
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\NSTL\Include\NsCore\HashMap.inl(792)
Gui.DependencySystem.dll!Noesis::HashMapImpl<Noesis::HashBucket_KV<Noesis::DependencyProperty const *,Noesis::StoredValue *,Noesis::HashKeyInfo<Noesis::DependencyProperty const *>>>::FindBucket<Noesis::DependencyProperty const *>(unsigned int hash, const Noesis::DependencyProperty * const & key) Line 822
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\NSTL\Include\NsCore\HashMap.inl(822)
Gui.DependencySystem.dll!Noesis::HashMapImpl<Noesis::HashBucket_KV<Noesis::DependencyProperty const *,Noesis::StoredValue *,Noesis::HashKeyInfo<Noesis::DependencyProperty const *>>>::Find<Noesis::DependencyProperty const *>(const Noesis::DependencyProperty * const & key) Line 430
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\NSTL\Include\NsCore\HashMap.inl(430)
Gui.DependencySystem.dll!Noesis::DependencyObject::InternalGetValue(const Noesis::DependencyProperty * dp, unsigned int sizeOfT) Line 1221
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\DependencySystem\Src\DependencyObject.cpp(1221)
Gui.Core.dll!Noesis::DependencyObject::GetValue<Noesis::Ptr<Noesis::BaseComponent>>(const Noesis::DependencyProperty * dp) Line 46
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\DependencySystem\Include\NsGui\DependencyObject.inl(46)
Gui.Core.dll!Noesis::ValueStorageManagerImpl<Noesis::Ptr<Noesis::BaseComponent>>::GetValue(const Noesis::DependencyObject * dob, const Noesis::DependencyProperty * dp) Line 181
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\DependencySystem\Include\NsGui\ValueStorageManagerImpl.inl(181)
Gui.DependencySystem.dll!Noesis::DependencyProperty::GetValueObject(const Noesis::DependencyObject * obj) Line 186
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\DependencySystem\Include\NsGui\DependencyProperty.inl(186)
Gui.DependencySystem.dll!Noesis::DependencyObject::GetValueObject(const Noesis::DependencyProperty * dp) Line 139
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\DependencySystem\Src\DependencyObject.cpp(139)
Gui.Studio.dll!Editor::UpdatePropertyBindingCommand::Execute() Line 64
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\UpdatePropertyBindingCommand.cpp(64)
Gui.Studio.dll!Editor::Property::CreateExpression(Noesis::BaseComponent * param) Line 1018
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Property.cpp(1018)
Gui.Studio.dll!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *)>::MemberFuncStub<Editor::Property,void (__cdecl Editor::Property::*)(Noesis::BaseComponent *)>::Invoke(Noesis::BaseComponent * && <args_0>) Line 202
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(202)
App.ApplicationLauncher.dll!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *)>::operator()(Noesis::BaseComponent * <args_0>) Line 522
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(522)
App.ApplicationLauncher.dll!NoesisApp::DelegateCommand::Execute(Noesis::BaseComponent * param) Line 52
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\App\ApplicationLauncher\Src\DelegateCommand.cpp(52)
Gui.Core.dll!Noesis::CommandHelper::ExecuteCommand(const Noesis::ICommandSource * source, Noesis::UIElement * target) Line 317
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\CommandHelper.cpp(317)
Gui.Core.dll!Noesis::BaseButton::OnClick() Line 424
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\BaseButton.cpp(424)
Gui.Core.dll!Noesis::Button::OnClick() Line 66
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\Button.cpp(66)
Tags:
Steps To Reproduce: Create a new Page
Add a Button
Create a Style
Create a binding for a property
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3158 [NoesisGUI] Studio minor always 2024-03-11 13:41 2024-03-11 15:29
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Properties panel design time data editor does not scroll
Description: When editing the data of a design time viewmodel, the Properties panel does not scroll if the contents overflow the panel.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3162 [NoesisGUI] Studio crash always 2024-03-11 14:29 2024-03-11 15:28
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when changing a property of a Dynamic Type from a value type to an object type, when used in a collection
Description: See steps to reproduce.
Tags:
Steps To Reproduce: Open the attached project
Create a Page
Go to Data panel
Assign an EngineeringViewModel to the Page
Add any item to the Systems collection
Go to the SystemViewModel dynamic type and change the Name property Type from String to an object (any SubType)
Click on the Page EngineeringViewModel data set
Click on the previously created Systems entry
Additional Information:
Attached Files: UoNEngineering_DataEditFail.zip (1,249 bytes) 2024-03-11 14:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2238&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3163 [NoesisGUI] Studio minor have not tried 2024-03-11 14:53 2024-03-11 15:28
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when changing keyframe value in the properties panel
Description: As seen here: https://youtu.be/h6Q7OWI1eO4?feature=shared&t=3435
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Adding_Keyframe.dmp (252,924 bytes) 2024-03-11 14:53
https://www.noesisengine.com/bugs/file_download.php?file_id=2239&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3164 [NoesisGUI] Studio minor have not tried 2024-03-11 14:55 2024-03-11 15:27
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash duplicating a selection of keyframes
Description: Shown here: https://youtu.be/h6Q7OWI1eO4?feature=shared&t=3544
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Duplicating_Keyframes.dmp (261,620 bytes) 2024-03-11 14:55
https://www.noesisengine.com/bugs/file_download.php?file_id=2240&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3165 [NoesisGUI] Studio minor have not tried 2024-03-11 14:57 2024-03-11 15:27
Reporter: fllorens Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Weird number and crash when changing Saturation effect value
Description: As seen here: https://youtu.be/h6Q7OWI1eO4?feature=shared&t=4063
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Changing_effect_Value.dmp (275,620 bytes) 2024-03-11 14:57
https://www.noesisengine.com/bugs/file_download.php?file_id=2241&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3138 [NoesisGUI] Studio minor have not tried 2024-03-05 10:53 2024-03-08 12:31
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when reordering element
Description: As seen here: https://youtu.be/V8Wa9-UFoVc?feature=shared&t=2382
Trying to reorder an ItemsControl dragging it in the navigator panel
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ReorderingItemsControl.dmp (258,400 bytes) 2024-03-05 10:53
https://www.noesisengine.com/bugs/file_download.php?file_id=2220&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3136 [NoesisGUI] Unity3D crash always 2024-03-04 19:14 2024-03-08 12:28
Reporter: nadjibus Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.4  
    Target Version: 3.2.4  
Platform: Any
Summary: Unity Editor crash
Description: Upon displaying a relatively complex View, Unity Editor crashes. Attached the dump file + log.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: crash.dmp (2,197,232 bytes) 2024-03-04 19:14
https://www.noesisengine.com/bugs/file_download.php?file_id=2217&type=bug
Editor.log (405,879 bytes) 2024-03-04 19:14
https://www.noesisengine.com/bugs/file_download.php?file_id=2218&type=bug
Notes
(0009298)
sfernandez   
2024-03-08 10:58   
Fixed 3136, there was a problem with the ImageSourceConverter used in the binding.
Please test it with this patched library: https://drive.google.com/file/d/1yNS7dlMrs-2qSTpPT7bQDLTQ3SYoWQd1/view?usp=sharing
(0009301)
nadjibus   
2024-03-08 12:12   
I confirm that it does not crash anymore with this patch! great work and thank you so much for the quick fix!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3150 [NoesisGUI] Studio crash always 2024-03-06 14:05 2024-03-08 11:29
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Pressing Ctrl+W Whilst Inside of an Empty Active TextField Crashes Studio
Description: Closing a XAML Window using the Ctrl+W keyboard shortcut, whilst inside of an empty active text field crashes the application.

Dump attached.
Tags:
Steps To Reproduce: Repro Steps:

1) Within Studio, create a TextBlock.

2) Fill the 'Text' field of the TextBlock with any text you desire. ("Hello" for example).

3) Click off of the TextBlock's text field to set the text.

4) Click back on the TextBlock's text field, which will automatically select the entire previously-typed text string.

5) Press Backspace to delete the text within, but do not click outside of the field (keep the input field 'active', as visible by a blue outline around it, and a blinking text cursor within it)

6) Without moving the mouse, or clicking anywhere else, press Ctrl+W on the keyboard.

Observe how the application crashes.

Expected Result:
Pressing Ctrl+W after a field has been cleared should either:
A) Set the field as 'blank' before attempting to close the XAML Window (it should have a confirmation asking to save, similar to if you pressed the 'x' on the window to close it after making a change.
B) Function similarly to pressing 'Escape' - as in, reverting the field to its previous value, then attempting to close the XAML Window (and it should also present a Save confirmation modal if changes have been made since the last save)

I'm personally more tempted to go for B), but potentially to be discussed.
Additional Information:
Attached Files: 20240306_075602.dmp (189,844 bytes) 2024-03-06 14:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2228&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2763 [NoesisGUI] Studio minor always 2023-10-24 14:02 2024-03-07 18:07
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Resource panel not updating when moving resources around
Description: As shown here https://youtu.be/v3ZB3N6p970?feature=shared&t=198 a newly created resource dictionary shows nothing when a resource is moved there.
Tags:
Steps To Reproduce: 1. in a page with at least one resource, go to resources panel
2. Create dictionary with the page's plus icon
3. Move a resource to the newly created dictionary
4. Click in the resource dictionary to inspect it.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3139 [NoesisGUI] Studio minor have not tried 2024-03-05 11:04 2024-03-07 17:54
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting an ImageSource
Description: As shown here: https://youtu.be/V8Wa9-UFoVc?feature=shared&t=635
Just expanding the ImageSource combobx in the brush editor and trying to select an image
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SelectingImageSource.zip (36,207 bytes) 2024-03-05 11:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2221&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3079 [NoesisGUI] Studio minor have not tried 2024-02-12 15:34 2024-03-06 22:50
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Merging resource dictionary while editing template crashes the Studio
Description: As seen here: https://youtu.be/NIlOeJELuhQ?feature=shared&t=547
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MergingDictionary.dmp (272,861 bytes) 2024-02-12 15:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2160&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3147 [NoesisGUI] Studio minor always 2024-03-05 18:19 2024-03-06 21:25
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Renaming assets shouldn't not select the extension
Description: When clicking on an asset to change its name, the whole name including the extension is selected.
The extension must not be selected.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3152 [NoesisGUI] Studio minor always 2024-03-06 16:58 2024-03-06 21:13
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Viewport elements can't be selected after merge dictionary
Description: As seen here for example: https://youtu.be/1d4vVbNXPxY?feature=shared&t=57
Tags:
Steps To Reproduce: 1. Create a new page
2. In the Resources panel create a new dictionary
3. try to select the page's grid, for example
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3083 [NoesisGUI] Studio minor have not tried 2024-02-13 13:28 2024-03-06 21:13
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Moving resource to page made viewport element unselectable and eventually crashed the Studio
Description: Seen here https://youtu.be/-pcq9TTrCOI?feature=shared&t=1452
This is probably related to 3078
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MovingResource.dmp (256,404 bytes) 2024-02-13 13:28
https://www.noesisengine.com/bugs/file_download.php?file_id=2164&type=bug
MovingresourcePage.dmp (260,311 bytes) 2024-02-14 13:32
https://www.noesisengine.com/bugs/file_download.php?file_id=2175&type=bug
Notes
(0009187)
fllorens   
2024-02-14 13:32   
Also seen here: https://youtu.be/1QvVFp6DYF8?feature=shared&t=836


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3064 [NoesisGUI] Studio minor have not tried 2024-02-05 11:58 2024-03-06 21:13
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Selecting a grid in the viepoort crashed the Studio
Description: As seen here: https://youtu.be/sjX1ioMZoKA?feature=shared&t=176
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WeirdGridPositioning.dmp (278,008 bytes) 2024-02-05 11:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2140&type=bug
Notes
(0009209)
dfranjic   
2024-02-16 19:10   
The crashed occurred due to the merging of a resource dictionary.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3143 [NoesisGUI] Studio minor always 2024-03-05 17:25 2024-03-06 21:10
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: When editing properties, Escape should restore previous value
Description: Right now, Escape is doing the same as Enter.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3151 [NoesisGUI] Studio minor always 2024-03-06 14:36 2024-03-06 15:22
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Resources panel does not update when creating a new template
Description: When creating a new template, while the Resources panel is in view, the panel does not update with the new resource.
Tags:
Steps To Reproduce: Create a Page
Open the Resources panel
Create a Button
Use the context menu to create a new template (of any kind)
The new template does not appear in Resources until a refresh is forced, e.g. by selecting another element in the Resources panel, and then selecting Page again
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3020 [NoesisGUI] Studio minor always 2024-01-17 19:32 2024-03-06 15:22
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: A newly created TextBlock style is not shown in the resources panel
Description: as seen here: https://youtu.be/6iouSTq37aM?feature=shared&t=862
Tags:
Steps To Reproduce: 1. create a textblock style
2. look for it in the resources panel
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3141 [NoesisGUI] Studio minor have not tried 2024-03-05 15:32 2024-03-06 15:09
Reporter: dfranjic Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Resource name not updated in resource panel UI after a rename
Description: Renaming a resource generates correct XAML code, updates names in correct places, etc.. but the Key change is not reflected in resources panel UI.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3104 [NoesisGUI] Studio crash always 2024-02-20 19:12 2024-03-06 14:58
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Curly Brackets Typed Inside Content Fields Crash Studio
Description: Typing curly brackets { } into the content field crashes studio.
Tags:
Steps To Reproduce: Repro Steps:
1) Drag any button onto the canvas
2) In the 'Content' field, type: "{ test }" (without quotes)

Observe Studio crashing with an :""Unknown Element type" error.
Additional Information:
Attached Files: CurlyBrackets.jpg (54,112 bytes) 2024-02-20 19:12
https://www.noesisengine.com/bugs/file_download.php?file_id=2193&type=bug
Notes
(0009287)
dfranjic   
2024-03-06 14:58   
Fixed by writing '{}' at the start of the value to escape the curly brackets.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2399 [NoesisGUI] Inspector minor have not tried 2022-08-17 10:50 2024-03-06 13:20
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Show control's active visual states to help with debugging
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?t=2685

We have to find a way to expose in the inspector the CurrentState that is active for each visual state group in a Control or UserControl.
Perhaps we can even allow changing current state from the inspector.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3088 [NoesisGUI] Studio minor unable to reproduce 2024-02-14 12:32 2024-03-06 12:02
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Access violation in BindingExpression OnDataContextChanged
Description: See attached file for xaml and call stack.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: AccessViolation.txt (41,707 bytes) 2024-02-14 12:32
https://www.noesisengine.com/bugs/file_download.php?file_id=2172&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2885 [NoesisGUI] Studio minor always 2023-11-23 13:47 2024-03-06 12:02
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicated resource names in different dictionaries
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=5642 the Studio creates sequential brush names without checking merged dictionaries, thus binding the brush to the former resource
Tags:
Steps To Reproduce: 1. Create a brush resource
2. Create a merged dictionary
3. Create another brush resource with the new dictionary selected
Additional Information:
Attached Files:
Notes
(0009278)
dfranjic   
2024-03-05 22:40   
I think it's allowed to have same name resources in two different places, though I don't know how that should be handled in UI so that it's not confusing for the user.

Maybe some kind of adorner telling user that this resource can't be bound to the property (since there's a same-named resource that would be used instead).
(0009283)
fllorens   
2024-03-06 10:13   
Thanks Dario, maybe I wasn't clear enough with the problem: If you assign a resouce with the same name in a different dictionary, Studio only applies the first one, so for example:

1. Create a brush resource
2. Create a merged dictionary
3. Create another brush resource with the new dictionary selected
4. You've got two different brushes with the same name (e.g. SolidColorBrush.001)
5. Create an element and apply the first resource you created
6. Then try to change it to the second resource, either drag and dropping it or using the Resource expander.
You'll discover that it's not updating.
(0009286)
fllorens   
2024-03-06 12:02   
Now that I thought a little about this, you're right. It's working as expected, so there's this solutions, change the suffix for the newly created resources in merged dictionaries or show either a toast or dialog when trying to use a resource with the same name.
We should close this bug.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3035 [NoesisGUI] Studio minor always 2024-01-23 15:06 2024-03-05 22:21
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Inserting a Hex Value into an Existing Colour Resource Does Not Update Instances Using the Resource
Description: It appears that elements using a universal colour resource only update in real-time if the colour is updated using the drag-and-drop colour wheel. It does however, not update when a new colour for a colour resource is assigned by typing in a hex value into the colour selector for the resource.

Video Attached.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a New Page
2) Select the Background property of the master Grid of the page.
3) Paste in a desired hex value (eg: #FF91bc39)
4) Press the '+' icon to add this value to the Page Resources as a Universal Colour Resource.
5) With the Grid still selected and the Background property panel still open, click the newly-created colour swatch to apply it to the Grid.
6) Navigate to the 'Resources' tab, navigate to the Page's resources, and find the saved colour Resource, and click on it.
7) Using the mouse, drag the colour pip across the Colour Selector in the upper right of the screen to change the colour.
Observe how the colour of the Grid element changes.

8) Instead of dragging the colour selector pip, type in a new hex value into the hex value input field (eg: #FFbfbfbf)
Observe how the Grid's colour does not update in real-time.
Observe how once a hex value is typed in, even the ability to update with the mouse on the colour wheel stops working.

9) Navigate back to the Grid element, and remove the colour binding, before immediately re-applying the colour resource.
Observe how now, the Grid is coloured correctly to the latest typed hex-value specified.

Expected Result: Any element using a universal colour resource updates in real-time whether a colour is hand-selected using the colour wheel, or changed via a typed hex-value.
Additional Information:
Attached Files: 2024-01-23 08-55-12.mp4 (4,566,309 bytes) 2024-01-23 15:06
https://www.noesisengine.com/bugs/file_download.php?file_id=2097&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3102 [NoesisGUI] Studio minor have not tried 2024-02-20 15:17 2024-03-05 20:32
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging a brush resource to a path's Fill property crashed the Studio
Description: As seen here: https://youtu.be/4uRHJRG76Ww?feature=shared&t=529
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: DragAndDropBrushToFill.dmp (272,355 bytes) 2024-02-20 15:17
https://www.noesisengine.com/bugs/file_download.php?file_id=2191&type=bug
Notes
(0009277)
sfernandez   
2024-03-05 20:32   
I'm not able to reproduce this with latest 0.0.76 version


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3142 [NoesisGUI] Studio feature always 2024-03-05 17:23 2024-03-05 20:26
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Improve property tooltips to indicate the source of the property (local value, style, binding...)
Description: Attaching Francesc proposal for this
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Option2.png (499,305 bytes) 2024-03-05 17:23
https://www.noesisengine.com/bugs/file_download.php?file_id=2224&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3043 [NoesisGUI] Studio minor have not tried 2024-01-24 16:43 2024-03-05 19:25
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clicking on a blue keyframe
Description: As seen here https://youtu.be/yBO8Ay-eK1c?feature=shared&t=689 clicking on a Render Transform Scale keyframe crashes the Studio
Crash dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClicOnScaleKeyframe.dmp (251,136 bytes) 2024-01-24 16:44
https://www.noesisengine.com/bugs/file_download.php?file_id=2103&type=bug
ClickOnKeyframe.dmp (257,759 bytes) 2024-01-24 16:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2104&type=bug
Notes
(0009113)
fllorens   
2024-01-24 16:44   
Also seen here: https://youtu.be/yBO8Ay-eK1c?feature=shared&t=849
(0009114)
fllorens   
2024-01-24 16:45   
Original crash dump, sorry:


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3038 [NoesisGUI] Studio minor have not tried 2024-01-23 15:47 2024-03-05 19:25
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clik on grey keyframe
Description: As seen here: https://youtu.be/UvPFzHGwNyU?feature=shared&t=1374
Dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClickingKeyframeGrey.dmp (255,411 bytes) 2024-01-23 15:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2100&type=bug
ClickonGrayKeyframe2.dmp (250,432 bytes) 2024-01-24 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2105&type=bug
StackPanelGrayKeyframe.dmp (266,413 bytes) 2024-01-25 18:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2110&type=bug
Notes
(0009115)
fllorens   
2024-01-24 16:48   
Also seen here: https://youtu.be/yBO8Ay-eK1c?feature=shared&t=1126
(0009123)
fllorens   
2024-01-25 18:51   
Also seen here: https://youtu.be/IWfoVuZF25w?feature=shared&t=664


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3145 [NoesisGUI] Studio minor always 2024-03-05 18:14 2024-03-05 18:42
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Color Picker, pasting colors without #
Description: We should allow color formats that don't have the # at the beginning
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3144 [NoesisGUI] Studio crash always 2024-03-05 17:59 2024-03-05 18:40
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Pasting in a ContentControl causes duplicate assignment of Content
Description: Pasting in a ContentControl causes duplicate assignment of Content
Tags:
Steps To Reproduce: Create a Page
Add a ContentControl
Copy the ContentControl
Paste the ContentControl with a ContentControl selected
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3146 [NoesisGUI] Studio minor always 2024-03-05 18:17 2024-03-05 18:17
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Select ALL in our text boxes
Description: Right now, we are Selecting ALL when the mouse is clicked, but we should do it on mouse release, giving the opportunity to select text.
This is standard in other programs
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3140 [NoesisGUI] Studio crash always 2024-03-05 12:21 2024-03-05 14:16
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Applying ViewModel to Page in QuestLog Sample Crashes Studio
Description: See instructions below. Dump attached as well.
Tags:
Steps To Reproduce: Repro Steps:
1) Download the attached QuestLog sample files
2) In the root of the QuestLog folder, drop the latest version of NoesisStudio
3) Open the Studio Project with Studio
4) Follow Mark's Tutorial found at https://youtu.be/jwQ2QfyIhIE?feature=shared
At around the 2:50 mark, when it comes time to apply the ViewModel to the page, observe the application crashing.

Expected results: The ViewModel can be assigned to the Page.

Additional Information:
Attached Files: 20240305_061509.dmp (109,993 bytes) 2024-03-05 12:21
https://www.noesisengine.com/bugs/file_download.php?file_id=2222&type=bug
QuestLog_unfinished.zip (1,284,557 bytes) 2024-03-05 12:21
https://www.noesisengine.com/bugs/file_download.php?file_id=2223&type=bug
Notes
(0009271)
dfranjic   
2024-03-05 14:16   
The XAML file is invalid from the get-go, making it fail on the very first XAML code validation. For e.g. you can change an opacity of any element and it'll crash.
One of the errors is that there's a {StaticResource} on line 252 for a resource that's defined afterwards.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3129 [NoesisGUI] Studio minor have not tried 2024-02-29 15:49 2024-03-05 12:34
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash while trying to draw a rectangle inside a template
Description: As seen here: https://youtu.be/1d4vVbNXPxY?feature=shared&t=896
and here: https://youtu.be/1d4vVbNXPxY?feature=shared&t=936
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Drawingrectangle2.dmp (292,817 bytes) 2024-02-29 15:49
https://www.noesisengine.com/bugs/file_download.php?file_id=2214&type=bug
DrawingRectangle.dmp (275,128 bytes) 2024-02-29 15:49
https://www.noesisengine.com/bugs/file_download.php?file_id=2215&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3137 [NoesisGUI] Studio minor have not tried 2024-03-05 10:42 2024-03-05 12:29
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when trying to draw a TextBlock in a grid
Description: As seen here: https://youtu.be/V8Wa9-UFoVc?feature=shared&t=786
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: DrawTextBlock.dmp (266,024 bytes) 2024-03-05 10:42
https://www.noesisengine.com/bugs/file_download.php?file_id=2219&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3131 [NoesisGUI] Studio crash always 2024-03-04 13:29 2024-03-04 20:04
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Invalid XAML generated when creating a template for a type with a custom namespace
Description: When creating a ControlTemplate for a type with a custom namespace, the TargetType is set to the full type, it doesn't use the XAML namespace, and doesn't use the x:Type markup:

TargetType="NoesisGUIExtensions.RadialGauge"

It should be TargetType="{x:Type noesis:RadialGauge}"
Tags:
Steps To Reproduce: Include App/ToolKit in your local Studio conf
Create a Page
Add a RadialGauge
Context menu > Templates > RadialGauge > Create
Additional Information:
Attached Files:
Notes
(0009269)
dfranjic   
2024-03-04 20:04   
x:Type isn't needed.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3135 [NoesisGUI] Studio crash always 2024-03-04 16:50 2024-03-04 19:52
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Cannot set a key for Style resource which uses a TargetType
Description: When a Style is created with a TargetType and no key, editing the key (to set a new key) leads to invalid XAML (the TargetType is changed to to the new value, not just the x:Key).
Tags:
Steps To Reproduce: Create a Page
Go to Resources panel
Create a Style
Set the Style TargetType to a value
Delete the key contents to make it a TargetType only resource
Try to edit the key
Additional Information:
Attached Files:
Notes
(0009268)
dfranjic   
2024-03-04 19:52   
It was due to the TextEditor::RenameAllOccurrences(old key -> new key) being called even though the old key is a typename.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3099 [NoesisGUI] Studio minor always 2024-02-19 23:04 2024-03-04 17:59
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Frozen/sealed non-local values appear local after user opens the property editor
Description: Values get cloned ("unsealed") when user opens the property editor of a complex object which is frozen/sealed. The cloned value gets set as local value. This is because Studio prepares the value for editing so that the changes to the value are visible in the real time in the viewport.
Tags:
Steps To Reproduce: 1. Create an empty page
2. Add a button to the page
3. Select the button
4. Open the "Background" property editor (the brush popup)
5. Close the popup
6. Deselect the button
7. Select the button
8. Observe how the "Background" property is in blue color even though "Background" wasn't changed
Additional Information:
Attached Files:
Notes
(0009267)
dfranjic   
2024-03-04 17:59   
Fixed by memorizing the state of the property (is it local value, expression, etc..) when unsealing, and returning the memorized state when calling SetIsExpanded(false). It also clears the memorized state (without returning the memorized state) when setting the value and when refreshing the property value.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3130 [NoesisGUI] Studio crash always 2024-03-04 13:19 2024-03-04 17:42
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when opening element context menu, when resources contains a Style with no TargetType
Description: Having a Style with no TargetType set in resources causes a read access violation in XamlDocument::BuildStylesTemplatesMenu, line 631, when opening the context menu.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2738 [NoesisGUI] C++ SDK major always 2023-10-20 12:21 2024-03-04 15:35
Reporter: luk77 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: PlayStation5
Summary: PS5: Crash on asian languages (AGCRenderDevice.cpp(1288))
Description: We are getting 100% repetitive crash on PS5 when using Noesis with asian languages (japanese, chinese, korean). The crash occures not immediatelly, but after entering actual gameplay.
Crash was observed on Noesis 3.2.1 and 3.2.2.
On 3.2.2 this message is printed to output before crash:

[NOESIS/E] Assertion failed: buffer.numPages < sizeof(NS_COUNTOF_REQUIRES_ARRAY_ARGUMENT(buffer.pages)), at AGCRenderDevice.cpp(1288)
SIGTRAP: Trace trap.
Location: Noesis.prx!0x000000012D4AD36E (Module: 0x000000012CBE0000 + 9229166 bytes)
Tags: PS5
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2222 [NoesisGUI] Unity3D tweak always 2021-12-31 04:39 2024-03-04 15:26
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Show the XAML line in binding failed error message.
Description: https://i.imgur.com/SQQeV06.png

It would be great to show the exact XAML file and line to easily fix the binding failure. Otherwise, you have to search for the binding.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3124 [NoesisGUI] C++ SDK minor have not tried 2024-02-27 00:40 2024-03-04 15:21
Reporter: saji8k Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Support visionOS in the Native C++ SDK
Description: There is currently no support for visionOS in any SDK (native C++, Unreal, Unity).

The first step in adding visionOS support across all platforms is creating a native NoesisGUI library for visionOS.
Apple's Metal API is supported on visionOS in certain specific scenarios (2D Window App, 2D Windows in AR Apps, VR Apps). It should be straightforward to port the existing iOS version of the NoesisGUI library which is already using the same Metal API.

In the short term, such a library would allow for:
An eventual NoesisApp for visionOS enabling NoesisGUI UIs in a 2D windows in a visionOS AR or VR app.

Also this library will be required to implement visionOS (VR) support in Unreal and Unity.
Unreal 5.4 VR Support - https://forums.unrealengine.com/t/suppo ... 1190042/40
Unity Windowed Support - https://docs.unity3d.com/Packages/com.u ... dApps.html
Unity VR Support - https://docs.unity3d.com/Packages/com.u ... RApps.html
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2986 [NoesisGUI] Studio major always 2024-01-02 18:45 2024-03-04 13:12
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Selecting a Colour Resource from the Colour Picker Crashes Studio
Description: Occurs when applying a Colour Resource to a Grid within a Button Template. Video attached.
Tags:
Steps To Reproduce: 1) Create a couple Colour Resources.
2) Create a new Button Template.
3) Within the button, create a grid, and set its background to one of the Colour Resources.
Observe how the application crashes.

Expected Result:
Colours can be applied without a crash.
Additional Information:
Attached Files: ColourSwatchCrash_2.mp4 (5,087,732 bytes) 2024-01-02 18:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2070&type=bug
MainMenu.xaml (5,634 bytes) 2024-01-02 18:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2071&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2779 [NoesisGUI] C++ SDK minor always 2023-10-27 19:53 2024-03-01 18:52
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Problem selecting all in TextBoxes
Description: If you are going to select all content in a TextBox that is already selecting all when getting the focus, you end up unselecting everything and the cursor positioned at the beginning
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3075 [NoesisGUI] Studio minor have not tried 2024-02-07 15:51 2024-02-29 15:51
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Trying to animate brush color in a visual state crashes the Studio
Description: As seen here: https://youtu.be/ziDYO0mx9rs?feature=shared&t=1516
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: VisualStateForeground.dmp (259,644 bytes) 2024-02-07 15:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2155&type=bug
TryingToAnimateResourceBrush.dmp (264,864 bytes) 2024-02-29 15:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2216&type=bug
Notes
(0009266)
fllorens   
2024-02-29 15:51   
Also seen here: https://youtu.be/1d4vVbNXPxY?feature=shared&t=1325


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2954 [NoesisGUI] Studio minor always 2023-12-15 11:40 2024-02-29 14:57
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Windows
Summary: Background Fill Cannot be Removed from Grid Row Header Element
Description: When adding a new Grid Row Header element to a page, the background fill of the element cannot be removed and set to transparent.
Tags:
Steps To Reproduce: Within Noesis Studio 0.0.54:

1) Create a new page.
2) Create a Grid Row Header Element.
3) In the Appearance Section of the Properties of the Grid, set the Background value to "No Brush".
4) Observe that the background fill remains present.

Expected Results: Grid Row Header Element turns transparent on "No Brush"
Additional Information:
Attached Files:
Notes
(0009255)
dfranjic   
2024-02-28 15:58   
Not assigned to me, but I am just curious as to what the solution for this should be?
Selecting the "No brush" currently removes the Background property value, but since there's no local value applied, it doesn't remove anything and the control keeps pulling the color
from the Style.

Maybe we should disable the "No brush" option when the value source is "Default"?
(0009257)
sfernandez   
2024-02-28 17:28   
This is probably more about how to set Null as a local value, I don't think we can now, right?
(0009260)
dfranjic   
2024-02-28 19:30   
I realized the importance of this as I was now playing with the Toolkit a bit and wanted to remove the RadialGauge.TrailBrush, but the only way was to create a transparent brush.

I've added a flag "applyNull" to the PropertyUpdateRequest struct. So in my next commit, {x:Null} will be applied as a value in certain scenarios.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3128 [NoesisGUI] C# SDK minor always 2024-02-27 18:27 2024-02-29 10:37
Reporter: samc Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: Exceptions in visual studio blend designer
Description:
More details here:
https://www.noesisengine.com/forums/viewtopic.php?p=16709#p16709

There are exceptions when ProvideValue is called for LocExtension when a template it is in is being loaded, which then trickle down to the designer.
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files: LocExtension.cs (9,673 bytes) 2024-02-27 18:49
https://www.noesisengine.com/bugs/file_download.php?file_id=2208&type=bug
LocExtension-2.cs (9,680 bytes) 2024-02-28 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2209&type=bug
Screenshot 2024-02-28 100052.png (552,472 bytes) 2024-02-28 19:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2210&type=bug
Screenshot 2024-02-28 100354.png (609,589 bytes) 2024-02-28 19:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2211&type=bug
Notes
(0009245)
maherne   
2024-02-27 18:49   
Thanks for the report.

I have attached a WPF LocExtension.cs with the fix, if you'd like to test it locally, and we will update the NoesisGUI.Extensions Nuget package with this fix in the next 24 hours.
(0009251)
maherne   
2024-02-28 12:05   
I discovered that Blend can pass C# Reflection data to ProvideValue during it's IntelliSense process, this was leading to a "Unable to cast object of type 'System.Reflection.RuntimePropertyInfo' to type 'System.Windows.DependencyProperty'" error. This error does not affect anything during design or runtime.

I have attached an updated version of WPF LocExtension.cs, which fixes this error from occurring, and this fix will be included in our Nuget package update.
(0009252)
sfernandez   
2024-02-28 12:25   
We just released Noesis.GUI.Extensions 3.0.27 to fix both issues.
(0009258)
samc   
2024-02-28 18:52   
I have the latest version of the plugin, and now I'm seeing a new exception in the same spot:

Severity Code Description Project File Line Suppression State Details
Error XDG0010 Object of type 'NoesisGUIExtensions.LocExtension' cannot be converted to type 'System.String'. HUD D:\projects\torch\Assets\Scripts\Runtime\Client\UI\FrontEnd\FrontEndView.xaml 288

I'll try to get some more information about this
(0009259)
samc   
2024-02-28 19:04   
Adding some screen shots of teh exception - one i caught in the debugger and the other of the way the exception shows up in the designer.
(0009261)
sfernandez   
2024-02-28 19:42   
One question, is the SessionLabelText a CLR or a DP property?
(0009262)
sfernandez   
2024-02-28 20:59   
Ok, we've been able to reproduce it. I generated a new version 3.0.28 of the Nuget for you to try.
Hopefully we got everything right now :)
(0009263)
samc   
2024-02-28 21:08   
Looks good! feel free to close the bug now


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2831 [NoesisGUI] Studio minor have not tried 2023-11-09 17:17 2024-02-28 17:23
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add Element and Gradient tools should go back to Selection tool
Description: After using the tools Add Element (drag or draw element) or Gradient (click flll/stroke), we should automatically change to the Selection tool.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009253)
dfranjic   
2024-02-28 14:35   
Should this be closed?
After drawing an element using the "Add Element" tool, we switch to the selection tool.
As for the Gradient tool, I feel like we should stay in the gradient tool. After clicking on an element with the gradient tool, I feel like user will want to be able to edit the gradient immediately.
(0009256)
sfernandez   
2024-02-28 17:23   
Agree, we don't need to change Gradient tool because it won't allow you to edit the stops if we go back to selection.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2903 [NoesisGUI] Studio minor always 2023-11-29 10:42 2024-02-28 15:25
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clicking in a control style's brush property
Description: As seen here https://youtu.be/Z_yrQTEOwto?feature=shared&t=754
Tags:
Steps To Reproduce: 1. Create a control
2. Create a style and edit it
3. Click on a brush property
Additional Information:
Attached Files:
Notes
(0009254)
dfranjic   
2024-02-28 15:25   
Fixed previously. It was related to ColorProperty trying to fetch Color resources to display in the UI.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2916 [NoesisGUI] Studio minor always 2023-12-04 14:37 2024-02-27 22:36
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Creating TabControl element also serializes TabControl.SelectedItem
Description: When I draw a TabControl in the view, it generates the following code:
<TabControl ...>
  <TabControl.SelectedItem>
    <TabItem .../>
  </TabControl.SelectedItem>
  ...
</TabControl>


The SelectedItem value shouldn't be saved as such in the XAML code.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2927 [NoesisGUI] Studio minor always 2023-12-11 15:39 2024-02-27 22:36
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Undoing replacing an element's text content by dragging does not set the previous text
Description: If you drag content into an element, like a Button, which has text content, and then undo, the original text content is not set (the content of the element remains empty).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3036 [NoesisGUI] Studio minor have not tried 2024-01-23 15:40 2024-02-27 22:35
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when creating new page in main menu
Description: As seen here: https://youtu.be/UvPFzHGwNyU?feature=shared&t=50
Attached dump
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NewPage.dmp (304,797 bytes) 2024-01-23 15:40
https://www.noesisengine.com/bugs/file_download.php?file_id=2098&type=bug
Notes
(0009249)
dfranjic   
2024-02-27 22:35   
This was due to a backup that was created for a file that existed before (e.g. backup for Page0.xaml is created, Page0.xaml is deleted manually in file explorer, backup is still there unfortunately, now when creating a new Page file with name Page0.xaml it will try to load the backup for old file).
Fixed by removing backup for old file when creating a new file.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3054 [NoesisGUI] Studio minor have not tried 2024-01-31 16:13 2024-02-27 22:33
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when trying to use pen tool on a locked element
Description: As seen here https://youtu.be/kflGfJy82iA?feature=shared&t=877
trying to use pen tool on a locked element inside a template
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: PathToolLockedGrid.dmp (297,010 bytes) 2024-01-31 16:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2126&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3107 [NoesisGUI] Studio crash always 2024-02-21 15:33 2024-02-27 22:33
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when adding elements to auto selected DataTemplates
Description: When editing a ContentControl ContentTemplate which has been auto selected based on content type, attempting to add any element will cause the follow error:

item.scopeElement was nullptr.
Gui.Editor.dll!Editor::TemplateScope::RebuildVisualTree() Line 387
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\TemplateScope.cpp(387)
Gui.Editor.dll!Editor::XamlDocument::RefreshScopeResource(Editor::Scope * scope) Line 4429
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\XamlDocument.cpp(4429)
Gui.Editor.dll!Editor::XamlDocument::RefreshScopeResource() Line 4346
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\XamlDocument.cpp(4346)
Gui.Editor.dll!Editor::InsertElementsCommand::Execute() Line 197
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\InsertElementsCommand.cpp(197)
Gui.Editor.dll!Editor::AddElementToolState::MouseUp(Noesis::BaseComponent * __formal, const Noesis::MouseButtonEventArgs & e) Line 238
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\AddElementToolState.cpp(238)
Tags:
Steps To Reproduce: In the attached project, edit the ContentControl ContentTemplate, and add an element to the Grid.
Additional Information:
Attached Files: DataTemplateCrash.zip (2,217 bytes) 2024-02-21 15:33
https://www.noesisengine.com/bugs/file_download.php?file_id=2196&type=bug
Notes
(0009248)
dfranjic   
2024-02-27 22:33   
This was working for ItemsControl but wasn't implemented for ContentControl...
When updating something in a ContentControl's implicit DataTemplate it requires a manual trigger to update the visual tree with new elements.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3126 [NoesisGUI] Studio minor always 2024-02-27 18:09 2024-02-27 22:31
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Issue with dynamic type Brush properties
Description: DynamicType Brush properties can have their values set to SolidColorBrush, these values same to the datactx XAML but do not load.

Trying to set a GradientBrush value causes a read access violation in XamlDocument.cpp, line 357.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009247)
dfranjic   
2024-02-27 22:31   
SolidColorBrushes weren't saved properly either that's why it wasn't loading... Now it should save correctly.
Crash with switching to gradient brush is also fixed.

Updating gradient stops in data context is not working properly though (gradient stop resets to transparent color after color update), but create a separate issue for that.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2873 [NoesisGUI] Studio minor always 2023-11-22 17:12 2024-02-27 18:56
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Folder naming locked after opening png files
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=58 folder naming becomes unresponsive to at least A and S keys after importing and opening a pair of png files
Tags:
Steps To Reproduce: 1. Open an empty project
2. Import at least 2 png files and open them
3. Create a folder and rename it, starting with A and S
Additional Information:
Attached Files:
Notes
(0009246)
dfranjic   
2024-02-27 18:56   
This was an issue with CTRL key getting "stuck" and acting as if it's constantly held down. Thus why when you pressed O moments later it acted as CTRL+O which triggered the "overdraw" mode.
It was fixed in the meantime.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2937 [NoesisGUI] Studio minor always 2023-12-12 17:11 2024-02-27 18:42
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicated text inside control template
Description: as seen here: https://youtu.be/Q6D2MOPir84?feature=shared&t=3040
Also seen here: https://youtu.be/7aHHWI3tYD4?feature=shared&t=326
Tags:
Steps To Reproduce: 1. Create an ItemsControl
2. Create a template for it
3. add a textblock and start typing
Additional Information:
Attached Files:
Notes
(0009243)
dfranjic   
2024-02-27 18:07   
I think this has been with the Helper::Clone() rework. I will close this, but feel free to reopen if it occurs again
(0009244)
dfranjic   
2024-02-27 18:34   
Still happens.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3127 [NoesisGUI] Studio minor always 2024-02-27 18:25 2024-02-27 18:25
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Issues when renaming a dynamic type breaks collection data
Description: When renaming a type there are a number of issues:
* The root type in the datactx xaml is not renamed, leading to a failure to load this data when reloading a document.
* In d:DataContext instances of the type, Collection type properties have their value wiped, and I am unable to set a new value (random data generation also fails to update the collection).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3125 [NoesisGUI] Studio crash always 2024-02-27 18:05 2024-02-27 18:05
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Deleting a dynamic type, while a document using that type is open, causes validation failure
Description: Assigning a dynamic type to a data context, and then deleting that type from Dynamic Types, causes a xaml validation failure.

When deleting types we should check if the type is in use, show a warning toast, and not delete the type.

Notes:
* Perhaps checking all documents in the project?
* What if the type exists in code? We need to handle this case in across the system.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3108 [NoesisGUI] Studio minor have not tried 2024-02-21 15:43 2024-02-27 17:05
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging a TextBlock to a template crashed the Studio
Description: As seen here: https://youtu.be/auAV9JfPneg?feature=shared&t=359
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Dragging_TextBlock.dmp (265,463 bytes) 2024-02-21 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2197&type=bug
Notes
(0009241)
maherne   
2024-02-27 15:43   
I have been unable to reproduce this issue in either 0.0.71, or the latest code on trunk. I tried following the steps in the video, and trying other scenarios.

Francesc, could you try reproducing this issue? Thanks.
(0009242)
dfranjic   
2024-02-27 17:05   
This has been fixed with rework of group/ungroup commands I did. Shouldn't happen anymore. There have been many similar issues (like 0003096), I somehow skipped this one.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3085 [NoesisGUI] Studio minor always 2024-02-13 18:37 2024-02-27 16:58
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Additional template and style menus in the hover adorner
Description: Currently, the "Edit additional templates/styles" is only accessible through the context menu by right clicking on the element.

XamlDocument::EditTemplate() and similar functions already expose the ability to pass the property to which the template/style belongs so it's only a matter of generating and displaying the menu.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3050 [NoesisGUI] Unreal minor always 2024-01-29 10:49 2024-02-27 11:34
Reporter: CPVRGlen Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: NoesisWorldUI doesn't render in VR projects
Description: See https://www.noesisengine.com/forums/viewtopic.php?t=3195

Using UE 5.1.1, shader compilation often crashes when loading a VR project. With 5.2.2, if it does load, the NoesisWorldUI component fails to render anything in play.

I have also added this plugin to an existing 5.1.1 project and it didn't crash, but still wouldn't render. Assuming it works because the project settings are configured differently.
Tags: Rendering, Unreal, world ui
Steps To Reproduce: For the shader compilation crash:
1. Create a new 5.1.1 VR template project
2. Close UE after it initially loads
3. Add the plugin
4. Try loading the project again

For the rendering issue:
1. Create anew 5.2.1 VR template project
2. Close UE
3. Add the plugin
4. Load the project, confirm the plugin is enabled
5. Add the sample ObjectPanel.xaml to a NoesisWorldUI in the level and play.
Additional Information:
Attached Files: Screenshot 2024-01-25 172333.png (245,440 bytes) 2024-01-29 10:49
https://www.noesisengine.com/bugs/file_download.php?file_id=2115&type=bug
3050.patch (17,464 bytes) 2024-02-21 17:18
https://www.noesisengine.com/bugs/file_download.php?file_id=2198&type=bug
WorldUIStereoFixes.patch (15,086 bytes) 2024-02-27 11:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2207&type=bug
Notes
(0009227)
hcpizzi   
2024-02-21 17:18   
I'm sorry this ticket has been hanging for so long. It arrived as we were testing 3.2.3 for release and didn't have time to get back to it until recently.

I've attached a patch that fixes the rendeing issue. I was trying to get motion controller support in as well, but I thought I'd sent you what I have for now so you can test it.

Sorry for the late reply.
(0009240)
hcpizzi   
2024-02-27 11:34   
This fixes the shader compiler crashes on 5.1, while also improving some aspects of WorldUI stereo rendering and fixing some edge cases.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3123 [NoesisGUI] Studio minor always 2024-02-26 15:30 2024-02-27 00:28
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Undoing the rename of an element doesn't update the UI
Description: Rename an element with no name to something, press CTRL+Z, observe how the name in the navigator doesn't go back to element type.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3116 [NoesisGUI] Studio minor always 2024-02-22 16:41 2024-02-27 00:28
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Elements inside templates can't be renamed
Description: As seen Here: https://youtu.be/eyvhaZqDRb8?feature=shared&t=531
Tags:
Steps To Reproduce: 1. Create and edit a template
2. Add an element like a TextBlock or a path
3. Try to rename it
Additional Information:
Attached Files:
Notes
(0009235)
fllorens   
2024-02-23 18:33   
As seen here: https://youtu.be/JKIzHV1YQ7M?feature=shared&t=474
Elements seem to be renamed, but upon reopening the template the names disappear. In the Xaml they seem to be present. This causes problems when animating.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3112 [NoesisGUI] Studio crash always 2024-02-21 19:12 2024-02-27 00:27
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: VisualStateGroup and VisualState x:Name conflicts cause XAML validation errors
Description: VisualStateGroup and VisualState x:Name conflicts, which can be with any element x:Name in the same document, cause XAML validation errors.

The behavior should match the behaviour of Navigator element renaming, where a warning toast is shown and a number is added to the end of the name.
Tags:
Steps To Reproduce: Create a VisualStateGroup and VisualState. Set their names to the same value.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3117 [NoesisGUI] Studio minor have not tried 2024-02-22 16:43 2024-02-27 00:27
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when using pen tool inside a template
Description: Seen here: https://youtu.be/eyvhaZqDRb8?feature=shared&t=395
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: PenToolOnTemplateGrid.dmp (251,619 bytes) 2024-02-22 16:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2204&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3096 [NoesisGUI] Studio minor have not tried 2024-02-19 15:08 2024-02-27 00:27
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clicking on a grid inside a template
Description: As seen here https://youtu.be/ktkXydRA1C0?feature=shared&t=310
The template's grid has been grouped inside a ViewBox without problem nor weird values, but upon clicking on it in the viewport it crashed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClickOnGroupedGrid.dmp (273,887 bytes) 2024-02-19 15:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2184&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3120 [NoesisGUI] Studio minor have not tried 2024-02-23 18:38 2024-02-27 00:27
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when grouping grid inside viewbox
Description: As seen here: https://youtu.be/JKIzHV1YQ7M?feature=shared&t=1464

I think it's related to 0003116
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GroupinInViewBox.dmp (250,964 bytes) 2024-02-23 18:38
https://www.noesisengine.com/bugs/file_download.php?file_id=2205&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2882 [NoesisGUI] Studio minor N/A 2023-11-23 12:59 2024-02-26 22:04
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Brush resource set but appears empty
Description: as shown here https://youtu.be/nyaiHuqcR08?feature=shared&t=2642 a brush bound to a resource appears empty
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009239)
dfranjic   
2024-02-26 22:04   
Same cause as 0002992, should be fixed.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3084 [NoesisGUI] Studio minor always 2024-02-13 15:08 2024-02-26 17:50
Reporter: dfranjic Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't set VisualTree of a template through the navigator
Description: To reproduce:

1. Create a template.
2. Delete the root <Grid/> object
3. Try to drag an element from "Add element" panel to the Template object in the navigator

The tooltip says "[Grid] cannot be added here"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (10,014 bytes) 2024-02-13 15:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2165&type=bug
Notes
(0009183)
dfranjic   
2024-02-13 15:08   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2886 [NoesisGUI] Studio minor random 2023-11-23 13:50 2024-02-26 15:21
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Paths can't be selected in the viewport
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=5836
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2901 [NoesisGUI] Studio minor always 2023-11-28 13:42 2024-02-26 12:07
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add Element panel is enabled when no document is loaded
Description: Add Element panel is enabled when no document is loaded, leading to an exception if an Add Element item is selected at this time.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3121 [NoesisGUI] Studio minor have not tried 2024-02-23 18:42 2024-02-26 11:14
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting Visual State
Description: As seen here: https://youtu.be/JKIzHV1YQ7M?feature=shared&t=1562

I think is related to 0003116
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SelectingState.dmp (265,508 bytes) 2024-02-23 18:42
https://www.noesisengine.com/bugs/file_download.php?file_id=2206&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3122 [NoesisGUI] C++ SDK minor always 2024-02-24 00:54 2024-02-26 11:13
Reporter: n3b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Theme sharing thread safety
Description: Theme and providers initialization in one thread and views creation in another trigger thread safety errors.

https://www.noesisengine.com/forums/viewtopic.php?t=3210
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2380 [NoesisGUI] C++ SDK feature always 2022-07-14 11:45 2024-02-26 11:12
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Feature Request: Composite Fonts
Description: Hi guys, I'm wondering if it's possible to get composite font support (https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.fontfamily?view=windowsdesktop-6.0#composite-fonts)

The issue I'm having at the moment is I have a tonne of individual license fonts for a variety of languages. If I include all fonts in the font fallback array I have no way of only selecting a range of unicode characters to use a given font. So it creates an issue as the following:

- The Chinese font has glyphs for Traditional Chinese, Simplified Chinese and Korean.
- The Korean font has glyphs for Korean

If I make my font fallback map:

{KoreanFont, ChineseFont}

Then it works. If I reverse the order the Chinese font takes precedence. This is easy enough to solve in this case, but in my case I have 6 different fonts for different languages, and they share a huge overlap of supported uniocde ranges. I am unable to get into a position where the fallback map uses the correct font fallback for every language. I have managed to get around this issue by only loading the fonts for the current selected language, but we have some screens (e.g. language select and some editor sandboxes) where we show multiple languages on screen at the same time.

I could change our fonts so they remove the glyphs, but that would require that I change some licensed font.

Ideally we would be able to specify the unicode range that a font supports in the font fallback map, either via a bespoke solution or via the implementation of the composite fonts.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: UnicodeRange.patch (6,408 bytes) 2023-06-28 14:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1878&type=bug
Notes
(0008018)
jsantos   
2022-07-14 16:30   
Hello, let me think more about this and I will come back again (by the way I am taking the next week off)

At first, I would say that implementing support for *.CompositeFont files seems to be the best solution. But I am not sure how complex this can be
(0008077)
jsantos   
2022-09-21 14:01   
Hi Steven, I am not sure if you found a solution for this or how critical this request is. I was investigating the implementation of CompositeFonts in Noesis and it is harder than expected and we want to do it after official 3.2 is released (we have plans to release the beta this month).

Please, let me know your thoughts about this and if we can help you with a workaround.
(0008078)
steveh   
2022-09-21 14:51   
Hey Jesús, we have not come to a solution yet. We have 2 critical parts that we're dealing with.

1. Gamertags - Microsoft dictate that with modern gamertags we must support 14 different character sets. We support these across a variety of different separate fonts.
2. Language Select - We need to show multiple different fonts on this page.

2 is fairly trivial to solve as we could just have a bunch of fixed pre-rendered bitmap images instead of fonts as there is a finite set of languages we support so we can bake the text into an image. However, we don't have any solution for gamertags.
(0008079)
jsantos   
2022-09-23 10:13   
As a temporary workaround, could you strip glyph ranges from needed fonts? Just to save time before we can properly implement this.

Are you 100% sure this would break the copyright of the font?
(0008080)
steveh   
2022-09-23 10:57   
Hey Jesús, I thought from the initial look we were not allowed to make any modifications to the fonts at all. I'll ask our producers to run it through our lawyers though to double check.
(0008081)
jsantos   
2022-09-23 11:18   
Thank you. Meanwhile let me see if I find an easier way to quickly implement this. I am thinking about adding a range to each font (manually).
(0008227)
jsantos   
2023-01-19 14:22   
Hi Steve, I hope everything is great over there.

Did you get an answer from the producers?

We have been really busy closing 3.2 BETA 1 (https://www.noesisengine.com/docs/3.2/Gui.Core.Changelog.html) and we have imminent plans to release BETA 2. After that, I think I can find time to offer you solutions for this.

Should we have a call?
(0008229)
steveh   
2023-01-19 15:22   
Hey Jesús, everything's going great thank you, hope the 3.2 release is going smoothly.

I got the initial okay from our production staff but they were planning on checking with legal before we commit to that, I've not heard back. I've not solved this yet, so it's still going to be an issue. I'll give our production a prod now to chase up with legal again.

If we need to specify a range for each font then that sounds fine to me and would be a find solution. I'm happy to join a call if you think that's easier. Just drop me an email with a desired time and I'm happy to jump on a call.

Cheers,

-Steven
(0008570)
jsantos   
2023-06-28 14:32   
(Last edited: 2023-06-28 14:33)
I am attaching the "hacky" solution for now. There are two important changes in the patch:

1) HarfBuzz.h and HarfBuzz.cpp are exposing now a new HB::Shape function with ranges. These changes will be part of Noesis

2) The rest of changes are experimental, we have added a vector of ranges to VGLFontFace and the layout is using that vector when calling HB::Shape. You need to manually detect the fonts by name and adjust the needed ranges

If everything is working fine with these change we will keep working on a better solution by implementing the property FontFamily.FontFamilyMap. This will support scenarios like this:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:System="clr-namespace:System;assembly=mscorlib">
 
  <Grid.Resources>
    <FontFamily x:Key="TheFont">
   
        <FontFamily.FamilyMaps>  
            <FontFamilyMap
                Unicode="0048"
                Target="Times New Roman"
                Scale="1.0" />

            <FontFamilyMap
                Unicode="0000-052F"
                Target="Comic Sans MS, Verdana"
                Scale="4.0" />    
        </FontFamily.FamilyMaps>    
    </FontFamily>
  </Grid.Resources>
 
  <TextBlock Text="Hello World!" FontFamily="{StaticResource TheFont}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
 
</Grid>

(0009237)
Demond   
2024-02-25 06:52   
Good afternoon It’s good that I came across this ticket before creating a post requesting this function)) I want to make a composite font in which “extra” glyphs will be removed and number glyphs from another font will be added. It would also be a good idea to experiment with glyphs for different languages. How soon will FontFamilyMap support be added?
(0009238)
jsantos   
2024-02-26 11:12   
After the first releases of the Studio we will find time to work on this feature.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3109 [NoesisGUI] Studio minor always 2024-02-21 18:51 2024-02-23 22:16
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Cannot edit ControlTemplate when inside DataTemplate
Description: When editing a DataTemplate the context menus have "Edit current" disabled.
Tags:
Steps To Reproduce: Open attached example, edit DataTemplate1, open Template context menu, "Edit current is disabled".
Additional Information:
Attached Files: NoEditTemplate.zip (2,001 bytes) 2024-02-21 18:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2199&type=bug
Notes
(0009236)
dfranjic   
2024-02-23 22:16   
It's not disabled anymore, but due to 0003110 it's not really helpful


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2857 [NoesisGUI] Studio minor unable to reproduce 2023-11-21 17:31 2024-02-23 22:15
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Path moving when adding thickness
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=1176
and also https://youtu.be/DC0YTtlfxD4?feature=shared&t=1648
And also here: https://youtu.be/dbBgvtudFlg?feature=shared&t=816
And here: https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=1465
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009146)
fllorens   
2024-01-31 16:32   
Also seen here: https://youtu.be/kflGfJy82iA?feature=shared&t=2322


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3073 [NoesisGUI] Studio minor have not tried 2024-02-07 15:45 2024-02-23 22:14
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting color resource inside a style
Description: As seen here: https://youtu.be/ziDYO0mx9rs?feature=shared&t=1209
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SelectingColorResourceStyle.dmp (260,604 bytes) 2024-02-07 15:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2153&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3119 [NoesisGUI] Studio minor always 2024-02-23 12:11 2024-02-23 12:12
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Issues when dragging InlineUIContainer to a TextBlockAdorner
Description: Dragging a element from an InlineUIContainer to the same TextBlockAdorner duplicates the element.
Dragging a element from an InlineUIContainer to the a different TextBlockAdorner fails in UpdateTextBlockCommand.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3074 [NoesisGUI] Studio minor have not tried 2024-02-07 15:48 2024-02-23 12:07
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting a gradient resource's stop
Description: As seen here: https://youtu.be/ziDYO0mx9rs?feature=shared&t=1249
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: selectingGradientStopResources.dmp (279,124 bytes) 2024-02-07 15:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2154&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2889 [NoesisGUI] Studio minor always 2023-11-23 16:23 2024-02-23 12:07
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Allow Dragging Elements into and out of TextBlock
Description: Allow Dragging Elements into and out of TextBlock, from the view or navigator.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2932 [NoesisGUI] Studio minor always 2023-12-11 19:32 2024-02-23 12:07
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: When dragging an element into an InlineUIContainer, it doesn't show in the correct position
Description: If an element is dragged into an InlineUIContainer, it's position does not show in the correct position (closing and reopening the document shows the element in the correct location).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: InvalidRender.PNG (179,407 bytes) 2023-12-11 19:32
https://www.noesisengine.com/bugs/file_download.php?file_id=2052&type=bug
Notes
(0009234)
maherne   
2024-02-23 12:07   
Fixed in 0002928


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2928 [NoesisGUI] Studio minor always 2023-12-11 15:43 2024-02-23 12:06
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Removing an element from an InlineUIContainer does not update the TextBlock layout
Description: When an element is removed (deleted/dragged) from an InlineUIContainer, the TextBlock layout does not update, and so the space that the element took up in the TextBlock is still visible.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: BeforeRemoveElement.PNG (22,337 bytes) 2023-12-11 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2048&type=bug
AfterRemoveElement.PNG (22,769 bytes) 2023-12-11 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2049&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3113 [NoesisGUI] C# SDK feature have not tried 2024-02-21 20:20 2024-02-23 10:03
Reporter: Demond Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: TextBlock Vertical Trim. Text Extensions
Description: Hello! While working with the layout, I came across this thing. I have a small header with text. I want to set the height of the Border to be based on the height of the largest glyph. In my case the text has the number 24. The default text height includes vertical padding. I'd like to get rid of these indentations using a new text property. I see that you already have your own Noesis extension for various elements, including text.

I propose adding a new TextTrimVertical property that would allow for more precise text positioning and alignment. I haven't found a similar property and implementation in WPF. There is a similar property in CSS, but browsers do not currently support it.

https://caniuse.com/css-text-box-trim

An example of how a property works in CSS: https://text-box-trim.vercel.app/?c=BYRgBA3gUGYEYEMDGBrA5gJwPYFcB2AJgLRJYA2WGAXGBgKYEDcMYALnQB6tFxYdGsMASwC2NXq2DNY7Ljz5EGaOjSQIADmARl1wBHDqshSZgF8APAHpLAPnOgbAFU6teHMI%20EirDoA

I drew a layout in Figma similar to the layout implementation in xaml, which displays the layout behavior with and without vertical text indentation (Figma has a VerticalTrim text property to remove vertical text indentation)

In the figure you can see that with the VerticalTrim property it was possible to align the number of living players and the text “Players Alive” along one line.

Of course you can use a negative Padding value for a TextBlock , but it doesn't have the same effect as VerticalTrim because the number glyphs may not be perfectly centered. In the example I'm using the Verdana font.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Test TextVerticalTrim.png (82,965 bytes) 2024-02-21 20:20
https://www.noesisengine.com/bugs/file_download.php?file_id=2201&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3114 [NoesisGUI] Unity3D minor always 2024-02-22 14:52 2024-02-23 10:03
Reporter: Otter Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: MarkupExtension ProvideValue is not called again when template is applied
Description: Link to forum post: https://www.noesisengine.com/forums/viewtopic.php?t=3227#p16672
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3115 [NoesisGUI] Unity3D minor always 2024-02-22 15:06 2024-02-23 10:02
Reporter: Otter Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Transparent material is not occluded in URP
Description: When using URP and setting Injection Point to "After Rendering Opaques" (also tried with "Before Rendering Transparents") in NoesisView, WorldSpaceUI does not occlude transparent materials (it works perfectly with Opaque materials)

Note: when playing with command buffer DrawMesh, Unity knows how to occlude transparent material with that mesh
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Opaque.png (49,711 bytes) 2024-02-22 15:06
https://www.noesisengine.com/bugs/file_download.php?file_id=2202&type=bug
Transparent.png (57,761 bytes) 2024-02-22 15:06
https://www.noesisengine.com/bugs/file_download.php?file_id=2203&type=bug
Notes
(0009233)
jsantos   
2024-02-23 10:02   
I need to think more about this but there is no easy solution because our UI only reads the depth-buffer but doesn't write into it.
And Unity objects are the same, they don't write into the depth-buffer.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3118 [NoesisGUI] C++ SDK minor always 2024-02-23 02:30 2024-02-23 09:52
Reporter: lachfoy Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: Visual states are not running storyboards within a control template
Description: A control template with storyboard visual states for "Selected" and "Unselected" does not run the visual state storyboards when changing SelectedIndex of the parent control.
Storyboards run as expected in Blend, but do not run in native C++ on version 3.1.5.
Tags: C++, xaml
Steps To Reproduce: Create a TabItem ControlTemplate with visual states for "Selected" and "Unselected" that run storyboards.
Use this template in a TabControl and modify the SelectedIndex property to change the selected tab. See that the tab items selected and unselected states do not run the storyboards.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3095 [NoesisGUI] Unity3D crash sometimes 2024-02-19 14:23 2024-02-22 22:20
Reporter: StrayThought Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.4  
    Target Version: 3.2.4  
Platform: macOS
Summary: Unity crashes when editing XAML in VSCode
Description: As reported in the forums here (https://www.noesisengine.com/forums/viewtopic.php?t=3203#p16653) Unity editor can crash when editing XAML from VS Code. It was apparently reproducible.

Tags: Unity, VisuaStudio
Steps To Reproduce: I upgraded to latest 3.2.3 and when editing the XAML file in VSCode periodically the Unity editor crashes in the background. I can't seem to get it to reproduce with a set of exact steps, but it only takes a minute of editing to get it to crash. In my specific case, here is what I did:
1. In Unity, went to Tools->NoesisGUI->Create->XAML - Layout Grid to create a new file
2. Created a new Unity scene (built-in renderer), added NoesisView to camera, connected the xaml file to it
3. Open the xaml file, VSCode launches
4. Went down to the <Rectangle> element and typed over Rectangle with Grid and started editing it to be a Grid and Unity editor crashed.
5. Relaunched Unity, reopened the xaml and continued editing.
6. Switched back to Unity, press play, works
7. Back to VS Code, start changing another Rectangle into a Grid and crashed again.
8. Rinse and repeat, crashes consistently every minute or so but no specific thing seems to trigger. Maybe the language server polling/update?
Additional Information:
Attached Files: NoesisMacOS_3095.zip (5,037,182 bytes) 2024-02-20 16:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2192&type=bug
Notes
(0009216)
maherne   
2024-02-19 20:38   
Thank you for the report.

I believe I have reproduced this issue, but only when a "domain reload" occurs in Unity after I have opened any XAML document in VSCode. A domain reload can occur when pressing play, or compiling a script.

Could you confirm that this is the case with your issue?
(0009219)
StrayThought   
2024-02-20 09:05   
Yes, it definitely crashes when I hit save in VSCode sometimes.
(0009220)
StrayThought   
2024-02-20 12:16   
I noticed the snippet included a space in the name. I removed the spaces from the file names and it hasn't crashed since. Unsure if related but worth letting you know.
(0009223)
maherne   
2024-02-20 16:05   
I identified an issue in our Language Server which I believe is causing your crash.

Could you confirm this fix?

I have attached an updated MacOS binary in a zip archive. The Noesis.dylib file it contains should be placed within the Noesis Unity plugin folders, in Runtime/Libraries/MacOS, replacing the existing file.

Thanks.
(0009225)
StrayThought   
2024-02-20 21:28   
Yes, this seems to fix the problem so far. I will do some more testing tomorrow. Really appreciate the quick turnaround, it was almost unusable :-)
(0009229)
jsantos   
2024-02-22 09:39   
Morning, were you able to reproduce the crash with the latest hot-fix?
(0009231)
StrayThought   
2024-02-22 11:40   
By hot fix you mean the zip file attached to this bug report? If so then no, issue seems fixed now and it hasn't crashed in 2 days now. Yay!
(0009232)
maherne   
2024-02-22 22:20   
Thank you for your help StrayThought, I will close this ticket now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3110 [NoesisGUI] Studio minor always 2024-02-21 18:56 2024-02-22 09:51
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: When editing a new ControlTemplate within a DataTemplate, brush editors are not working
Description: When editing a new ControlTemplate within a DataTemplate, brush editors are not working
Tags:
Steps To Reproduce: Edit a DataTemplate, create a Button, in the Template context menu create a new ControlTemplate. Select the Grid and change the Background. The Brush Editor does not display.
Additional Information:
Attached Files: Screenshot 2024-02-21 175614.png (28,667 bytes) 2024-02-21 18:56
https://www.noesisengine.com/bugs/file_download.php?file_id=2200&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3111 [NoesisGUI] Studio crash always 2024-02-21 19:02 2024-02-22 09:50
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Error when trying to create a ControlTemplate while editing a Template in Resources tab
Description: Error when trying to create a ControlTemplate while editing a DataTemplate in Resources tab.

The assert fails in Editor\Src\TemplateScope.cpp.

Gui.Editor.dll!FindElement(Noesis::FrameworkTemplate * tmplt, Noesis::NodeObject * curNode, Noesis::BaseComponent * parentScope, Noesis::Visual * parentRuntime) Line 67
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\TemplateScope.cpp(67)
Gui.Editor.dll!Editor::TemplateScope::BuildTree(Noesis::NodeObject * visualRootNode, Noesis::NodeObject * scopeRoot) Line 313
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\TemplateScope.cpp(313)
Gui.Editor.dll!Editor::CreateEmptyTemplateCommand::Execute() Line 306
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\CreateEmptyTemplateCommand.cpp(306)
Gui.Editor.dll!Editor::XamlDocument::CreateTemplate(Noesis::FrameworkElement * element, Noesis::Symbol propOwner, Noesis::Symbol prop) Line 4742
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\XamlDocument.cpp(4742)
Gui.Editor.dll!Editor::XamlDocument::CreateCurrentTemplate(Noesis::BaseComponent * param) Line 2539
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\XamlDocument.cpp(2539)
Gui.Editor.dll!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *)>::MemberFuncStub<Editor::XamlDocument,void (__cdecl Editor::XamlDocument::*)(Noesis::BaseComponent *)>::Invoke(Noesis::BaseComponent * && <args_0>) Line 202
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(202)
App.ApplicationLauncher.dll!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *)>::operator()(Noesis::BaseComponent * <args_0>) Line 522
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(522)
App.ApplicationLauncher.dll!NoesisApp::DelegateCommand::Execute(Noesis::BaseComponent * param) Line 52
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\App\ApplicationLauncher\Src\DelegateCommand.cpp(52)
Gui.Core.dll!Noesis::CommandHelper::ExecuteCommand(const Noesis::ICommandSource * source, Noesis::UIElement * target) Line 317
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\CommandHelper.cpp(317)
Gui.Core.dll!Noesis::MenuItem::OnItemClicked() Line 684
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\MenuItem.cpp(684)
Gui.Core.dll!Noesis::MenuItem::OnMouseButtonUp(const Noesis::MouseButtonEventArgs & e, bool clickAllowed) Line 770
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\MenuItem.cpp(770)
Gui.Core.dll!Noesis::MenuItem::OnMouseLeftButtonUp(const Noesis::MouseButtonEventArgs & e) Line 337
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Core\Src\MenuItem.cpp(337)
Tags:
Steps To Reproduce: Go to the Resources panel in a document.
Add a ControlTemplate or DataTemplate to the Page resources.
Edit the new template.
Add a Button.
Use the Template context menu to create a new template.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3106 [NoesisGUI] Studio crash always 2024-02-21 11:40 2024-02-21 15:49
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Changing Z-Index Property Inside of a Template Crashes Studio
Description: Adjusting the Z-Index Property of any element that is within a template, crashes the application.
Note howeverthat this issue does not occur on elements outside of a Template.

Dump and Video Demonstration attached.
Tags:
Steps To Reproduce: Repro Steps:
1) Drag a button onto the canvas.
2) Right-Click and "Create New"
3) Edit the contents of the new template to feature 2 Grid elements within the RootGrid
4) Adjust the Z-Index value of one of the two Grids

Observe Studio crashing.

Expected Results: Adjusting the Z-Axis Value changes the vertical depth of an element.
Additional Information:
Attached Files: 2024-02-21 05-34-10.mp4 (3,986,814 bytes) 2024-02-21 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=2194&type=bug
20240221_053434.dmp (129,704 bytes) 2024-02-21 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=2195&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2720 [NoesisGUI] Unity3D minor always 2023-10-11 00:03 2024-02-20 23:38
Reporter: Feldruebe Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: NineSlice Example has spacings
Description: I tried the Unity NineSlice Example.
Out of the box, I am getting spacings between some parts. Are there settings that I am missing?
Tags:
Steps To Reproduce: Use the NineSlice Example.
Additional Information:
Attached Files: Unity_KeMi46PQrl.png (347,588 bytes) 2023-10-11 00:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1977&type=bug
Notes
(0009226)
Feldruebe   
2024-02-20 23:38   
I played with rendering settings and saw disabling Antialiasing (MSAA) fixes the spacing.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3103 [NoesisGUI] C++ SDK minor have not tried 2024-02-20 17:38 2024-02-20 20:50
Reporter: Demond Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Incorrect behavior regarding bindings and TargetNullValue
Description: Let's say I have a variable Name, my code returns an empty string in Name if it is not specified by the user, I bind <Run Text="{Binding Name, FallbackValue='Player Fall', TargetNullValue='Player Null' }" />. But I get Binding failed: Path=Name, Source=null(''), Target=Run(''), TargetProperty=Run.Text. The fallback value will be used. And accordingly empty text is returned.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3071 [NoesisGUI] Studio minor have not tried 2024-02-06 17:13 2024-02-20 15:50
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash deleting storyboard used in a trigger
Description: As seen here: https://youtu.be/oaUVXU9o_IE?feature=shared&t=11
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: deletingStoryboardTrigger.dmp (265,404 bytes) 2024-02-06 17:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2145&type=bug
20240207_133458.xaml (18,964 bytes) 2024-02-07 13:39
https://www.noesisengine.com/bugs/file_download.php?file_id=2151&type=bug
Notes
(0009170)
sfernandez   
2024-02-07 13:39   
(0009222)
dfranjic   
2024-02-20 15:50   
The XAML was failing on validation because the deleted resource was referenced {StaticResource Intro2}.
Now, every {StaticResource} reference of a resource is deleted so it should be fixed with r13433


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3091 [NoesisGUI] C# SDK major always 2024-02-14 15:34 2024-02-20 14:21
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Cannot convert a string to Noesis.Size using TypeConverter.
Description: I am trying to do the following:

TypeConverter converter = TypeDescriptor.GetConverter(typeof(Noesis.Size));
converter.ConvertFrom("100,100") ;
And the conversion fails with an error: TypeConverter cannot convert from System.String.
Also, converter.CanConvertFrom(typeof(string)) returns false;
The same behaviour applies when trying to convert a string to Noesis.Rect
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009188)
sfernandez   
2024-02-15 13:44   
It looks like Size type and similar are not defining the TypeConverter attribute as expected.
We need to specify it the same way we did for other types like Brush:
https://github.com/Noesis/Managed/blob/master/Src/Noesis/Core/Src/Proxies/Brush.cs#L18
https://github.com/Noesis/Managed/blob/master/Src/Noesis/Core/Src/Core/TypeConverterHelper.cs#L8

Thanks for reporting this.
(0009189)
voula_d   
2024-02-15 13:47   
I am finding that the same applies to Noesis.Point too. Thanks!
(0009198)
sfernandez   
2024-02-15 18:37   
By the way, if this is needed only for Size, Point or Rect types, you can just use as a workaround the TryParse() method they expose.
(0009221)
voula_d   
2024-02-20 14:21   
Yes, that's how I worked around the issue for now. Thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3101 [NoesisGUI] Unity3D minor N/A 2024-02-20 13:12 2024-02-20 13:26
Reporter: Otter Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: XAML parser does not correctly support properties of type Binding that are not DependencyProperty
Description: Related forum post: https://www.noesisengine.com/forums/viewtopic.php?p=16672#p16668
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3065 [NoesisGUI] Studio minor always 2024-02-05 12:05 2024-02-19 21:55
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio is not saving data for StreamGeometry resources
Description: As seen here: https://youtu.be/sjX1ioMZoKA?feature=shared&t=176
Tags:
Steps To Reproduce: 1. Create a path with the Pen tool
2. save the data as resource
3. Close and open again the page, or inspect the xaml
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2855 [NoesisGUI] Studio minor unable to reproduce 2023-11-21 17:13 2024-02-19 21:43
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when undoing a gradient operation
Description: Seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=324
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2887 [NoesisGUI] Studio minor always 2023-11-23 13:56 2024-02-19 20:21
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't copy and paste ListBox items
Description: As seen here https://youtu.be/dbBgvtudFlg?feature=shared&t=33
Tags:
Steps To Reproduce: 1. Add a ListBox item to a ListBox
2. Select it and use the Ctrl+C and Ctrl+V shortcuts
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2900 [NoesisGUI] Studio minor always 2023-11-27 18:12 2024-02-19 20:19
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio crashes when creating a ScrollBar's Track template
Description: Seen in https://youtu.be/Z_yrQTEOwto?feature=shared&t=2555
Tags:
Steps To Reproduce: 1. Create a ListBox, and add an empty template
2. Add a ScrollViewer and an ItemsPresenter as a child
3. Create an empty template for the ScrollViewer and add a ScrollContentPresenter and a ScrollBar (correctly named PART_ etc)
4. Create a template for the ScrollBar and add a track (PART_Track)
5. Try to create a template for the track
Additional Information:
Attached Files:
Notes
(0009215)
sfernandez   
2024-02-19 20:19   
This was fixed some time ago, Track element can't have a template, so now it is not possible to create one if you open its context menu.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3093 [NoesisGUI] C++ SDK minor sometimes 2024-02-16 10:59 2024-02-19 13:40
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Empty offscreen rectangles generated sometimes
Description: There cases where rectangles are reserved in the offscreen texture but nothing is rendered into them.
Tags:
Steps To Reproduce: See render doc capture in related ticket.
Additional Information:
Attached Files:
Notes
(0009214)
jsantos   
2024-02-19 13:40   
I saw this in the Pix captures attached in 0002800


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2800 [NoesisGUI] Unity3D major always 2023-10-30 22:43 2024-02-19 13:39
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: TextureSource Behavior on XBOX
Description: Hello!

I am seeing UI flickering (on/off) on Xbox. It may not be caused by Noesis -- I am not sure how I can tell? Here is a video showing what it looks like:

Video: https://stellarconquest.blob.core.windows.net/tmp/noesis/XBOXSX_Video_2.mp4
  
The UI works great on PC. Attached is the code for how I am creating RenderTexture and assigning it to a rectangle using TextureSource.

Thank you!

*edited to move PIX to private comment.
Tags:
Steps To Reproduce: // create render texture (use Linear for Noesis texture creation)
_RenderTexture = new RenderTexture((int)Width, (int)Height, 1, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
Camera.targetTexture = _RenderTexture;
_RenderTexture.Create();

// create brush to store render texture and assign it to the rectangle
_RenderRectangle.Fill = new ImageBrush()
{
    ImageSource = new TextureSource(_RenderTexture),
    Stretch = Stretch.None,
    Opacity = 1.0f
};
Additional Information:
Attached Files:
Notes
(0008918)
jsantos   
2023-10-31 18:27   
I am getting a catastrophic failure opening the pix.

Are you able to open it?
(0008920)
stonstad   
2023-10-31 22:27   
(Last edited: 2023-10-31 22:27)
Yes, I re-downloaded and it opens successfully for me. My PIX says June 2023 Update 2 (2261.4304).
(0008923)
stonstad   
2023-11-02 15:03   
Would a new PIX help? Or I can try zipping the PIX file -- but I can't imagine bit corruption is an issue here during download.
(0008931)
jsantos   
2023-11-06 18:10   
I am still getting catastrophic failures opening both captures. :( I can try upgrading to your version, but right now I am locked to this version (March 2023 Update 2) to avoid more issues with Unity and Unreal.

Could you try with March 2023 Update 2 by any chance?

If not, I am going to need a bit more of time for this.

Thank you!
(0008932)
stonstad   
2023-11-06 19:51   
Hi Jesus. Unity 2022.3.10 LTS requires the version we are on. My understanding is that GDKs can be installed side by side. Unity only uses the version “required” by the Editor version.
(0008947)
stonstad   
2023-11-16 22:30   
Any updates for this bug? Thank you.
(0008950)
jsantos   
2023-11-17 17:03   
I have been analyzing both captures, but it seems all frames are correct? Could you please check this, and indicate what's the frame that's showcasing the flickering in pix1 or pix3?
(0008951)
jsantos   
2023-11-17 18:27   
By the way, both captures have blur
(0008954)
stonstad   
2023-11-17 21:11   
> I have been analyzing both captures, but it seems all frames are correct? Could you please check this, and indicate what's the frame that's showcasing the flickering in pix1 or pix3?
I noticed that the artifacts do not appear in the captured screenshot. I wasn't sure if this was a timing issue on my part and when I paused it. I will recapture or see if I can figure out what frame it is -- not sure how to do that but I will try.

> By the way, both captures have blur
Do you mean motion blur, or blur in the Noesis output? Not sure what this means.
(0008955)
jsantos   
2023-11-17 21:34   
> The above example is simpler (no blur).

I understood by this, that one of the captures didn't have blur (effect) but both have.

The captures reveal an performance issue (common to PC and XBox) that we are going to fix, but yes, having another capture showing the flickering issue is definitely going to help us a lot.
(0008956)
stonstad   
2023-11-17 22:08   
This PIX should have BackgoundEffectBlur disabled: https://stellarconquest.blob.core.windows.net/tmp/noesis/pix3.xpix In the video you can see that the blurring is off, at least visually.
(0008957)
jsantos   
2023-11-17 22:28   
Is this PIX reproducing the flickering issue? That's what I need :)

I will check this later
(0008988)
stonstad   
2023-11-28 20:55   
I am unable to capture the flickering within a PIX dump. I tried 20 exports and each of them fail to capture the flicker -- or at least I don't see it in the PIX screenshot. I have some observations related to the behavior:

- If BackgroundEffectBlur is DISABLED, the only time the flickering behavior manifests is if an active secondary RenderTexture is used with Noesis via a TextureSource.

- On the PC platform, a newly created RenderTexture is initialized to clear or it is initialized to a valid state before it is displayed. But on XBOX it contains an uninitialized state, which can look like a visual glitch before the RenderTexture is updated by a camera. A Noesis TextureSource assigned to a Rectangle will briefly show this uninitialized state. The solution is to initialize RenderTexture via a color BLT on XBOX before assigning it to a Noesis TextureSource. This change has eliminated most 'pops' of bad visual state, but it does not resolve the flickering.

I'm trying to think of what I can do. What about sending an image of the entire game? It is 22.3 GB, and it can be deployed directly to the GDK. Could this work?


-
(0008989)
stonstad   
2023-11-28 21:03   
A while back, there was an issue with adorner elements resizing repeatedly (https://www.noesisengine.com/bugs/view.php?id=2615 ) -- maybe that is what I am seeing here in this video?
 https://stellarconquest.blob.core.windows.net/tmp/noesis/XBOXSX_Video_3.mp4

 I'm just trying to figure out what could cause this on XBOX but not PC.
(0008990)
stonstad   
2023-11-28 21:09   
(Last edited: 2023-11-28 21:10)
* removed * nevermind.
(0008991)
jsantos   
2023-11-29 13:00   
The fact that you can't capture this with PIX, makes me think that this is a "timing" issue in the GPU. This could be related to barriers, and the render texture not properly transitioned from render target to texture. I think our code is correct on this side but I need to carefully verify this.

Do you think you can reproduce this issue in a minimal sample? This would help us a lot to narrow the cases that can lead to this issue,
(0009131)
jsantos   
2024-01-26 19:57   
(Last edited: 2024-02-19 13:39)
Although I couldn't reproduce, this is quite similar to 0002776 and I have already fixed for 3.2.3, please reopen if needed


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2902 [NoesisGUI] Studio minor always 2023-11-29 10:31 2024-02-17 13:20
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Ungrouping canvas crashes the application
Description: seen here https://youtu.be/Z_yrQTEOwto?feature=shared&t=298 and here https://youtu.be/Z_yrQTEOwto?feature=shared&t=355
Tags:
Steps To Reproduce: 1. Create a Viewbox dragging the element to the viewport
2. Create a Canvas inside dragging
3. Create a grid dragging it to the canvas
4. Try to ungroup the canvas. The child grid will appear to be stuck in the top left corner of the viewport
5. Selecting or resizing the grid will crash the application
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3026 [NoesisGUI] Studio minor always 2024-01-22 15:10 2024-02-17 02:07
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: TectBlock Inlines Run TextProperty Binding being serialized as a string
Description: When serializing an Inline Run node which has a TextProperty Binding, using TextEditor::Serialize, the TextProperty is serialized as a string (or no Text attribute if the binding returns no value) instead of an expression.
Tags:
Steps To Reproduce: Using the following xaml, edit the TextBlock with the TextBlockAdorner and add some text at the end of "AfterBinding". The result is that the Text attribute will be serialized as the binding value in string form.

TextEditor::Serialize is called for each Inline in \Packages\Gui\Editor\Src\UpdateTextBlockCommand.cpp, line 202.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <TextBlock>
    <Run Text="{Binding Path=SomeProperty}"/><Run Text="AfterBinding" FontWeight="Bold"/>
  </TextBlock>
</Page>

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3022 [NoesisGUI] Studio minor always 2024-01-19 15:57 2024-02-16 19:21
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Timeline textbox changing width when adding digits
Description: The user can change the width of the time box by inputing more digits, affecting the layout and overlapping the Timeline icons
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2891 [NoesisGUI] Studio minor always 2023-11-23 16:52 2024-02-16 19:04
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicating path inside template results in an empty element
Description: As seen here https://youtu.be/dbBgvtudFlg?feature=shared&t=578 duplicating a path inside a control template creates a path without size and data.
Also here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=2584
Tags:
Steps To Reproduce: 1. Create a control template
2. Import an SVG inside
3. Duplicate the resulting path with shortcut or command
Additional Information:
Attached Files:
Notes
(0009144)
fllorens   
2024-01-31 16:24   
Also seen here: https://youtu.be/kflGfJy82iA?feature=shared&t=1527


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3069 [NoesisGUI] Studio tweak always 2024-02-06 12:27 2024-02-16 18:56
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Feedback that 'Autopopulate Data' feature is too Hidden
Description: We received some feedback from an individual who watched the Walkthrough Tutorial found at https://www.youtube.com/watch?v=FIpUJuhDMc8 .

One point they mentioned was that:
"Generate random values for the text field is both an unlabeled icon for a unique feature (hard to guess) and only visible on hover. I couldn't see what you were talking about the first few times you mentioned it."

I would agree with them that for a new user, it is very hard to discover this very unique (and powerful) feature when it is not visible to the naked eye (requires not only hover over the row, but then hover over the icon to get the tooltip text).

Attached a potential proposal to surface this button/icon more and treat it similar to how we treat assigning a data context to a page. To be discussed before we move forward on this though.
Tags:
Steps To Reproduce: N/A - not a bug.
Additional Information:
Attached Files: RandomValues_1.jpg (201,968 bytes) 2024-02-06 12:27
https://www.noesisengine.com/bugs/file_download.php?file_id=2143&type=bug
DataAutoPopulateFeedback.jpg (52,614 bytes) 2024-02-06 12:27
https://www.noesisengine.com/bugs/file_download.php?file_id=2144&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2879 [NoesisGUI] Studio minor always 2023-11-23 12:23 2024-02-16 18:42
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Grouping an imported SVG into a Viewbox results in weird clipping
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=1906 grouping the resulting canvas of an 'Import SVG' inside a Viewbox produces a weird displacement and clipping
Tags:
Steps To Reproduce: 1. Import an SVG
2. Group the resulting canvas into a Viewbox
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2997 [NoesisGUI] Studio minor always 2024-01-08 18:36 2024-02-16 18:37
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Weird margins when grouping a grid inside a viewbox
Description: As seen here: https://youtu.be/_BVXMra08jo?feature=shared&t=1284 when grouping a grid that is child of a viewbox, inside another grid, weird margins are applied
Also shown here: https://youtu.be/6iouSTq37aM?feature=shared&t=1036
Also seen here: https://youtu.be/jTX2Izz7zj8?feature=shared&t=719
Tags:
Steps To Reproduce: 1. Add a grid to the scene
2. group the grid inside a viewbox
3. group the original grid inside another grid
3. Take a look at he margins
Additional Information:
Attached Files:
Notes
(0009061)
sfernandez   
2024-01-08 19:31   
The problem of this and related tickets is from how elements are grouped/ungrouped inside single child containers.

Right now we are creating the new parent, adding it to the single child container, and then moving the other elements inside the new parent. But the first operation is not possible because the container can only have 1 child at the same time. We need to find another way to implement this kind of operations.
(0009069)
dfranjic   
2024-01-09 16:53   
Just noting that this issue might also be related to 0002836 (unsure though, because templates are weird sometimes).

The possible solution could be to create a group element in-memory, store the original content of a single child container into a smart Ptr<>, remove the single child container content, add the original content to the group element, set the group element as the content of the single child container.

Unsure though as maybe detaching from visual tree and reattaching it is going to cause some assert/crash to happen. Maybe the solution would then be to Helper::Clone() the original content and add it to the group element and then just replace the content of a single child container.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2836 [NoesisGUI] Studio minor always 2023-11-13 13:43 2024-02-16 18:37
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when grouping a template's grid
Description: Grouping the default grid of an empty template will crash the Studio.
Also seen here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=2793
Tags:
Steps To Reproduce: 1. Create an empty button's template

2. Group the fist grid (the default one) inside a Viewbox or a Grid
Additional Information:
Attached Files: GroupIntoViewbox.dmp (267,100 bytes) 2024-01-31 16:26
https://www.noesisengine.com/bugs/file_download.php?file_id=2128&type=bug
GroupingControlGrid.dmp (257,868 bytes) 2024-02-02 12:32
https://www.noesisengine.com/bugs/file_download.php?file_id=2138&type=bug
GroupGridTemplate.dmp (278,514 bytes) 2024-02-14 13:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2174&type=bug
GroupingGridTemplate.dmp (274,904 bytes) 2024-02-15 18:09
https://www.noesisengine.com/bugs/file_download.php?file_id=2181&type=bug
Notes
(0009145)
fllorens   
2024-01-31 16:26   
Also seen here: https://youtu.be/kflGfJy82iA?feature=shared&t=1758
(0009158)
fllorens   
2024-02-02 12:32   
Also seen here: https://youtu.be/ZnJH8w53qek?feature=shared&t=1586
(0009186)
fllorens   
2024-02-14 13:29   
Also seen here: https://youtu.be/1QvVFp6DYF8?feature=shared&t=539
(0009197)
fllorens   
2024-02-15 18:09   
Also seen here: https://youtu.be/hFnN53v4kKU?feature=shared&t=481
(0009208)
dfranjic   
2024-02-16 18:37   
FrameworkTemplate was sealed, thus creating this issue + the single-child content issue (0002997)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3081 [NoesisGUI] Studio minor have not tried 2024-02-13 13:14 2024-02-16 18:37
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash while pasting value in width property
Description: Seen here: https://youtu.be/-pcq9TTrCOI?feature=shared&t=671
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WidthCopyPaste.zip (36,885 bytes) 2024-02-13 13:14
https://www.noesisengine.com/bugs/file_download.php?file_id=2162&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3082 [NoesisGUI] Studio minor have not tried 2024-02-13 13:16 2024-02-16 18:36
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Changing thickness value with mouse wheel crashed the Studio
Description: Seen here: https://youtu.be/-pcq9TTrCOI?feature=shared&t=973
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MouseWheelOnThickness.zip (35,521 bytes) 2024-02-13 13:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2163&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3094 [NoesisGUI] Studio minor have not tried 2024-02-16 17:07 2024-02-16 17:17
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash deleting resource from resource dictionary
Description: As seen here: https://youtu.be/XCrMiWSxaRc?feature=shared&t=719
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CrashDeletingresource.dmp (262,728 bytes) 2024-02-16 17:07
https://www.noesisengine.com/bugs/file_download.php?file_id=2183&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3023 [NoesisGUI] Studio minor have not tried 2024-01-22 11:13 2024-02-16 14:34
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when grouping into a StackPanel
Description: As seen here: https://youtu.be/jTX2Izz7zj8?feature=shared&t=440
I'm attaching the crash dump
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GroupStackPanel.dmp (263,772 bytes) 2024-01-22 11:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2083&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3031 [NoesisGUI] Studio crash always 2024-01-22 17:03 2024-02-16 14:34
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Grouping any element into a StackPanel from the ContextMenu Crashes the Application
Description: The application crashes when attempting to wrap any element into a StackPanel from the layer's "Group Into" context menu.

Video and Dump Attached.

Notes:
- All other "Group Into" options work without issue. It appears to only be with the StackPanel.
- Placing an element into a StackPanel works by dragging a StackPanel into the layer hierarchy, and drag-and-dropping the desired element into it.
- This issue occurs with all element types, and not just the TextBlock.
Tags:
Steps To Reproduce: Repro Steps:
1) Create a new page, and drag any element into the master Grid layer. This can be any element type, but a TextBlock is a good choice.
2) Right-Click on the newly-placed TextBlock, and from the ContextMenu, Select Format->Group Into-> StackPanel

Observe how the application crashes.

Expected results: The selected element is placed into a StackPanel in the layer hierarchy without crashing.

Additional Information:
Attached Files: 20240122_105041.dmp (136,725 bytes) 2024-01-22 17:03
https://www.noesisengine.com/bugs/file_download.php?file_id=2092&type=bug
2024-01-22 10-50-27.mp4 (1,853,655 bytes) 2024-01-22 17:03
https://www.noesisengine.com/bugs/file_download.php?file_id=2093&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3089 [NoesisGUI] Studio trivial always 2024-02-14 13:24 2024-02-16 12:53
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Resource Create ComboBox is expanded when selecting resource dictionary
Description: As seen here: https://youtu.be/1QvVFp6DYF8?feature=shared&t=371
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2933 [NoesisGUI] Studio minor always 2023-12-11 19:41 2024-02-16 12:52
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add resources ComboBox issues
Description: There are a number of issues with the add resources combobox, in the Resources panel:
* Selecting a result in search does not create the resource, I need to select result, then click the TextBox input again, and press enter.
* The ComboBox dropdown/content menu does not go away when clicking outside of it.
* The ComboBox is not disabled when no ResourceDictionary is selected.
* Selecting an element in the Navigator does not select it in the Resources panel, instead you need to re-select it in order to see or add to it's resources.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2909 [NoesisGUI] Studio minor random 2023-11-30 17:02 2024-02-16 11:56
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when converting resource brush to local
Description: as seen here https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=1104
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2899 [NoesisGUI] Studio minor always 2023-11-27 17:46 2024-02-16 11:17
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Deleting an InlineUIContainer leads to invalid XAML
Description: When deleting an InlineUIContainer from a TextBlock, using the Navigator, the opening bracket "<" of the next Inline is also removed, leading to invalid XAML.
Tags:
Steps To Reproduce: Using the following XAML, delete the InlineUIContainer using the Navigator:
<TextBlock><Run Text="BeforeInline"/><InlineUIContainer><Button Content="Button" Width="80" Height="30"/></InlineUIContainer><Run Text="AfterInline"/></TextBlock>

This XAML will be the result, notice the missing "<" from the last Run:
<TextBlock><Run Text="BeforeInline"/>Run Text="AfterInline"/></TextBlock>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2968 [NoesisGUI] Studio minor have not tried 2023-12-20 19:12 2024-02-16 09:14
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when returning scope from a template
Description: As seen here: https://youtu.be/uJoLl116edE?feature=shared&t=896
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ReturningScope.dmp (226,682 bytes) 2024-02-05 12:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2141&type=bug
Notes
(0009161)
fllorens   
2024-02-05 12:08   
Also seen here: https://youtu.be/sjX1ioMZoKA?feature=shared&t=2426
(0009203)
dfranjic   
2024-02-16 02:34   
I pushed a commit (r13402) that might fix this. I feel like the issue is deeper than what my fix assumes. I'll leave this open, if you find it happen again please report, esp if you find a way to reproduce this.
(0009206)
fllorens   
2024-02-16 09:14   
Thanks Dario, I'll try to reproduce it again and will inform you.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3060 [NoesisGUI] Studio minor have not tried 2024-02-01 14:43 2024-02-16 03:00
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting element while editing a control's visual state
Description: As seen here: https://youtu.be/lkBu4ASM8Pk?feature=shared&t=926
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: selectElementVisualState.dmp (269,852 bytes) 2024-02-01 14:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2135&type=bug
SelectElementDirectional.dmp (291,668 bytes) 2024-02-01 14:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2136&type=bug
Notes
(0009149)
fllorens   
2024-02-01 14:45   
Also seen here, this time selecting with the keyboard arrows: https://youtu.be/lkBu4ASM8Pk?feature=shared&t=969


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3055 [NoesisGUI] Studio minor have not tried 2024-01-31 16:17 2024-02-16 03:00
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Selecting textblock inside template crashes the app
Description: as seen here: https://youtu.be/kflGfJy82iA?feature=shared&t=1362
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SelectingTetblockTemplate.dmp (264,053 bytes) 2024-01-31 16:17
https://www.noesisengine.com/bugs/file_download.php?file_id=2127&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3059 [NoesisGUI] Studio minor have not tried 2024-02-01 14:38 2024-02-16 02:58
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting hidden element inside a template
Description: As seen here: https://youtu.be/lkBu4ASM8Pk?feature=shared&t=528
Trying to select a hidden element in the navigator
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClickOnNavigatorTemplate.dmp (229,818 bytes) 2024-02-01 14:38
https://www.noesisengine.com/bugs/file_download.php?file_id=2134&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3076 [NoesisGUI] Studio minor have not tried 2024-02-07 15:54 2024-02-16 02:55
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Trying to edit a Style with the context menu crashed the Studio
Description: As seen here: https://youtu.be/ziDYO0mx9rs?feature=shared&t=1578
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: EditStyle.dmp (412,748 bytes) 2024-02-07 15:54
https://www.noesisengine.com/bugs/file_download.php?file_id=2156&type=bug
Notes
(0009204)
dfranjic   
2024-02-16 02:55   
Same as 0003055 and 0003066. Fixed previously.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3066 [NoesisGUI] Studio minor have not tried 2024-02-05 17:40 2024-02-16 02:54
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting path element in template
Description: As seen here: https://youtu.be/Lc6FPwsQfto?feature=shared&t=442
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SelectingPathTemplate.dmp (268,651 bytes) 2024-02-05 17:40
https://www.noesisengine.com/bugs/file_download.php?file_id=2142&type=bug
Notes
(0009202)
dfranjic   
2024-02-16 02:05   
The cause of this bug was same as 0003055. It has been fixed with r13363.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3056 [NoesisGUI] Studio minor have not tried 2024-01-31 16:29 2024-02-16 02:42
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting with direct selection tool
Description: Crash when selecting outside the template container with the direct selection tool as seen here: https://youtu.be/kflGfJy82iA?feature=shared&t=2240
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClickWithDirectSelection.dmp (261,164 bytes) 2024-01-31 16:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2129&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3061 [NoesisGUI] Studio minor have not tried 2024-02-02 12:27 2024-02-16 02:00
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when resizing path inside template
Description: As seen here: https://youtu.be/ZnJH8w53qek?feature=shared&t=1161
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ResizingPath.dmp (247,820 bytes) 2024-02-02 12:27
https://www.noesisengine.com/bugs/file_download.php?file_id=2137&type=bug
Notes
(0009201)
dfranjic   
2024-02-16 02:00   
This has been fixed with Sergio's r13398 commit.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2948 [NoesisGUI] Studio minor have not tried 2023-12-14 16:53 2024-02-15 23:48
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when reopening the Studio
Description: Reopening the Studio after a crash sometimes crashes the Studio again. Crashing project attached.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CrashWhenReopening.zip (66,570 bytes) 2023-12-14 16:53
https://www.noesisengine.com/bugs/file_download.php?file_id=2060&type=bug
Backups.zip (36,529 bytes) 2023-12-14 18:02
https://www.noesisengine.com/bugs/file_download.php?file_id=2061&type=bug
Notes
(0009027)
dfranjic   
2023-12-14 17:28   
(Last edited: 2023-12-14 17:29)
Something that would probably be useful for this issue is to attach the backup files also, which can be accessed by going to the
%APPDATA%/NoesisStudio/Backups
directory.
Try to find, if possible, a directory containing the backup version of the XAML file (maybe by using "Date modified" in File Explorer and/or viewing the XAML contents).
(0009028)
fllorens   
2023-12-14 18:02   
Sure thing, thanks Dario
(0009200)
dfranjic   
2024-02-15 23:48   
I guess we can close this, as corrupted XAML backups aren't possible anymore due to the validation of xaml in place before saving the backup.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3078 [NoesisGUI] Studio minor have not tried 2024-02-08 16:47 2024-02-15 20:17
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Trying to select a button crashed the Studio
Description: As seen here: https://youtu.be/nV6rqniAGM4?feature=shared&t=619
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TryingtoSelectButton.dmp (271,500 bytes) 2024-02-08 16:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2158&type=bug
WeirdElementSizeAfterMergingDictionary.dmp (274,138 bytes) 2024-02-13 13:08
https://www.noesisengine.com/bugs/file_download.php?file_id=2161&type=bug
WeirdAdornerSize.dmp (252,192 bytes) 2024-02-14 13:28
https://www.noesisengine.com/bugs/file_download.php?file_id=2173&type=bug
Notes
(0009181)
fllorens   
2024-02-13 13:08   
(Last edited: 2024-02-13 13:08)
The problem manifests itself always after a merge dictionary command, and all the elements are affected, as seen here for example: https://youtu.be/-pcq9TTrCOI?feature=shared&t=146
(0009185)
fllorens   
2024-02-14 13:28   
Also seen here: https://youtu.be/1QvVFp6DYF8?feature=shared&t=171


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3090 [NoesisGUI] C# SDK minor always 2024-02-14 15:16 2024-02-15 18:06
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Cannot set RenderTransform to a MatrixTransform from code
Description: I am trying to set an element's RenderTransformProperty to a MatrixTranform from code. Trying to set the property to an existing MatrixTransform is not working. I need to assign an new MatrixTransform every time.
The following is not working.
MatrixTransform tform = (MatrixTransform)Needle.GetValue(FrameworkElement.RenderTransformProperty);
RenderTransform = tform;
This is working:
RenderTransform = new MatrixTransform();
I also tried the code below which did not work either:
Element.SetValue(FrameworkElement.RenderTransformProperty, tform);
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisTest.zip (19,869 bytes) 2024-02-14 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2176&type=bug
NeedleIdentity.png (626 bytes) 2024-02-15 14:00
https://www.noesisengine.com/bugs/file_download.php?file_id=2177&type=bug
NeedleTransformed.png (2,383 bytes) 2024-02-15 14:00
https://www.noesisengine.com/bugs/file_download.php?file_id=2178&type=bug
image.png (29,582 bytes) 2024-02-15 14:20
https://www.noesisengine.com/bugs/file_download.php?file_id=2179&type=bug
image-2.png (13,092 bytes) 2024-02-15 14:25
https://www.noesisengine.com/bugs/file_download.php?file_id=2180&type=bug
Notes
(0009190)
sfernandez   
2024-02-15 14:00   
Thanks for the test project. I've checked the code and it seems that the transform is being applied as expected.
If I remove the line [Needle.RenderTransform = tform;] from aTestControl.xaml.cs, then the element keeps the default Identity transform and the needle is rendered differently.
See attached images.
(0009191)
voula_d   
2024-02-15 14:19   
If you enable line 52: Needle.SetValue(FrameworkElement.RenderTransformProperty, tform);
the needle should render in an angle. And it isn't for me. Are you seeing a different behaviour after uncommenting line 52?
(0009192)
voula_d   
2024-02-15 14:20   
(0009193)
voula_d   
2024-02-15 14:25   
This is not working either. Still no angled needle when setting tform directly to RenderTransform.
(0009195)
sfernandez   
2024-02-15 17:46   
Oh sorry, I did the tests with the project configured to use WPF... now I see what is happening.
This is clearly a bug in Noesis, the default MatrixTransform (Identity) returned does not clone correctly.
We will fix it.
(0009196)
voula_d   
2024-02-15 18:06   
Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2734 [NoesisGUI] Studio minor always 2023-10-19 17:35 2024-02-15 15:45
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Windows
Summary: Path offset in templates
Description: Paths are wobbling when edited, and sometimes show the vertexes with an offset from the edges.

Shown here in 8:44: https://youtu.be/CRD_ZB24yiw?feature=shared&t=524
And here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=1889
Tags:
Steps To Reproduce:
1- Create a template

2- Add a path with the pen tool and remove the stroke

3- Edit the path moving vertexes around
Additional Information:
Attached Files:
Notes
(0009087)
dfranjic   
2024-01-15 14:49   
It's due to "Layout Rounding" being set to True in templates.

My proposed solution: temporarily turning off the layout rounding on drag start, and then returning the original state of "Layout rounding" when the dragging stops (+ an additional invalidation of Path layout properties, so that it adjusts it's position after the Layout rounding has been set to original value)
(0009194)
dfranjic   
2024-02-15 15:45   
Fixed by applying temporary UseLayoutRound=False value to the paths on drag start and then removing the value on drag end.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3072 [NoesisGUI] Studio minor have not tried 2024-02-07 15:43 2024-02-15 13:18
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clicking on gradient widget inside a style
Description: As seen Here: https://youtu.be/ziDYO0mx9rs?feature=shared&t=1008
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GradientWidgetStyle.dmp (226,128 bytes) 2024-02-07 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2152&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2950 [NoesisGUI] Studio feature have not tried 2023-12-15 11:11 2024-02-14 17:55
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add a new Transform tool that will affect RenderTransform
Description: Create a new tool used specifically for modifying the RenderTransform of an element.

When this tool is active:
- moving the element will update its TranslateTransform X/Y
- resizing the element will update its ScaleTransform ScaleX/Y
- it will show rotation and skew handlers in the adorner to modify RotateTransform and SkewTransform (remove from ResizeAdorner)
- it will show the RenderTransformOrigin handler in the adorner (remove from ResizeAdorner)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009033)
dfranjic   
2023-12-15 14:32   
(Last edited: 2023-12-15 14:33)
The functionality to update the TranslateTransform, ScaleTransform, SkewTransform and RotateTransform is already in the ElementDragManager so I suggest just improving upon it and reusing it (or well, in case of reimplementing it, for it to be done in the ElementDragManager)
so that other parts of the Studio can take advantage of that functionality if needed in the future.

There are not many bugs regarding updating transforms via ElementDragManager that I am aware of, but one that I know of is that when a rotation & skew is applied, rotating and additionally skewing the element will look fine while doing it, but upon the mouse release the element will
be differently skewed/rotated. The reason for this is I think the missing proper implementation of `DecomposeMatrix()` function located in the ElementDragManager.cpp file.

Currently the ElementDragManager decides in StartDrag/StartResize methods whether or not to use the transforms when dragging/resizing an element with a following check:
if (storyboardObj && storyboardObj->GetIsRecording())
{
    data->useTransform = true;
}

Probably having an additional boolean parameter in those two methods would be enough to make the ElementDragManager use the transforms when dragging/resizing.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2974 [NoesisGUI] Studio minor always 2023-12-28 11:21 2024-02-14 15:02
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: TextBlock resizing acting weird when recording storyboard
Description: As seen here https://youtu.be/fiHAn3LkVjc?feature=shared&t=678
Tags:
Steps To Reproduce: 1. Draw a TextBlock
2. Create a Storyboard and hit the Record button
3. Use the TextBlock adorners to resize it
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2874 [NoesisGUI] Studio minor always 2023-11-22 17:26 2024-02-14 14:00
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Flipped template/style adorner when flipping a path
Description: Template / Style adorner appears flipped when applying a Scale transform of -1 to a path
Tags:
Steps To Reproduce: 1. Import a path
2. TransformGroup scale -1 either X or Y
Additional Information:
Attached Files: InvertedAdorner.jpg (39,472 bytes) 2023-11-22 17:26
https://www.noesisengine.com/bugs/file_download.php?file_id=2026&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2910 [NoesisGUI] Studio minor always 2023-11-30 19:19 2024-02-14 12:40
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Path offset when editing paths inside canvas
Description: as seen here https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=1175
Tags:
Steps To Reproduce: 1. Import an SVG
2. Use the direct selection tool to edit one path inside the generated canvas
Additional Information:
Attached Files:
Notes
(0009180)
sfernandez   
2024-02-12 21:09   
The problem seems to be in PathEngineObject Render() and CalculateOffsetAndScale().


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2904 [NoesisGUI] Studio minor always 2023-11-29 11:34 2024-02-13 19:04
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: ListBox ItemContainer Style can't be set with resource style
Description: Style properties of a ListBox don't show resource options ( when they are present in the resources panel ) and don't allow to create a new resource, crashing the app. Also the user can't drag and drop the resource to the style property.
Tags:
Steps To Reproduce: 1. create a ListBox with ListBoxItems
2. Go to the ListBox properties Style section
3. In the ItemContainerStyle property try to apply resource with the three dotted menu ( if you have one ) or create a new resource
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2931 [NoesisGUI] Studio minor always 2023-12-11 19:04 2024-02-13 15:01
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't create a ItemTemplate
Description: as seen here https://youtu.be/Q6D2MOPir84?feature=shared&t=2762
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2938 [NoesisGUI] Studio minor always 2023-12-12 17:28 2024-02-13 15:00
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Data context not available inside templates
Description: as seen here: https://youtu.be/RDyPfWjnrrk?feature=shared&t=558
Tags:
Steps To Reproduce: 1. Create data context
2. Edit a template
3. Try to bind to data context
Additional Information:
Attached Files:
Notes
(0009182)
dfranjic   
2024-02-13 15:00   
Studio now assigns generated "dummy" data context when editing in the dummy editor


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2953 [NoesisGUI] Studio feature have not tried 2023-12-15 11:35 2024-02-13 14:59
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Improve UX for editing templates and styles of ItemsControls
Description: Right now is almost impossible to work with ItemsControls because it is hard to assign and edit the different pieces required by those controls:
- Template (of the ItemsControl itself) has no problem, as it can be edited as the rest of controls
-- ItemsPanel (the template of the Panel used by the ItemsPresenter to host the items) can only be created in Resources panel and can't be assigned with the new Properties panel rework
--- ItemContainerStyle (the style used by the container created for each item) can only be created in Resources panel and can't be assigned with the new Properties panel rework
---- ItemTemplate (the template used to present each of the items) can only be created in Resources panel and can't be assigned with the new Properties panel rework
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: itemscontrol-t-s.png (76,370 bytes) 2023-12-15 11:38
https://www.noesisengine.com/bugs/file_download.php?file_id=2062&type=bug
Notes
(0009031)
sfernandez   
2023-12-15 11:38   
Francesc UX proposal attached
(0009032)
sfernandez   
2023-12-15 11:42   
Something similar will be needed to create/edit/apply templates for the 'Content' of ContentControls (ContentTemplate) and the 'Header' of HeaderedContentControls and HeaderedItemsControls (HeaderTemplate).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2952 [NoesisGUI] Studio minor have not tried 2023-12-15 11:28 2024-02-13 14:59
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Allow editing ItemTemplate directly without a dummy editor
Description: When working with an ItemsControl in the viewport we want to be able to edit the ItemTemplate along with the rest of the UI and with any design data that is being assigned to the page.
We don't want to switch to a dummy editor without context. The dummy editor should only be used when editing from the resources panel.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2778 [NoesisGUI] Studio minor always 2023-10-26 15:42 2024-02-12 17:41
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version:  
Platform: Any
Summary: Caret offset in the XAML view
Description: As shown here: https://youtu.be/3C8q3FXvqKM?feature=shared&t=1792
Tags:
Steps To Reproduce: 1. Open a large xaml file
2. Go to 'XAML' tab in the viewport
3. Scroll the xaml
4. Try to select anything
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2812 [NoesisGUI] Studio feature always 2023-11-02 13:10 2024-02-12 17:40
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Zoom Selection command not implemented
Description: Zomm Selection command and associated shortcut (F) doesn't seem to be working right now.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3080 [NoesisGUI] Studio minor N/A 2024-02-12 16:31 2024-02-12 16:31
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Add property configuration for complex properties
Description: Add the ability to configure properties (ordering, name, visibility) for complex properties.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2783 [NoesisGUI] Studio minor always 2023-10-28 02:53 2024-02-12 14:05
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: CharacterSpacing binding leads to a failed assert when TextWrapping is set to Wrap
Description: When a TextBlock CharacterSpacing property is bound to the CharacterSpacing of another TextBlock, and the destination TextBlock has TextWrapping set to Wrap, an assert is hit in Drawing\VGL\Src\VGLTextLayout.cpp, line 600.
Tags:
Steps To Reproduce: Select a TextBlock and set TextWrapping to Wrap, and CharacterSpacing to a value greater than zero. Double click the TextBlock to edit with TextBlockAdorner, this will create a CharacterSpacing and TextWrapping binding, and the assert will be hit.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2814 [NoesisGUI] Studio minor always 2023-11-02 13:50 2024-02-12 13:04
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Property value's context menu doesn't seem to be working
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=3897 the 'cut copy paste' context menu don't do anything at all.
Tags:
Steps To Reproduce: 1. Go to properties panel and select a value
2. Right-click to show the context menu and use its commands
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2781 [NoesisGUI] Studio minor always 2023-10-28 02:41 2024-02-12 11:30
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: TextBlock Text property does not return the correct value when there are Run Text property bindings
Description: When a TextBlock contains a Run that has a binding in it's Text property, the parent TextBlock Text DP will not return the binding output value in it's text until the Inlines collection has been modified.
Tags:
Steps To Reproduce: <TextBlock TextWrapping="Wrap" Width="365" Height="206" Margin="622,200,489,0" FontSize="18">
  <Run Text="Before"/><Run Text="{Binding Path=SomeProperty}"/><Run Text="After"/>
</TextBlock>

In the example above, if the value of SomeProperty is "Binding", then calling GetText on the TextBlock will return "BeforeAfter", instead of the correct value "BeforeBindingAfter".

Updating the Inlines collection, e.g. by adding or removing an Inline, will cause GetText to return the correct value "BeforeBindingAfter".
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2780 [NoesisGUI] Studio minor always 2023-10-28 02:32 2024-02-12 11:30
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Background Brush changes in Inlines not updating in render
Description: When changing the Background Brush of an Inline, the change doesn't appear in the render until the Inlines collection is updated.
Tags:
Steps To Reproduce: Select a Run in the TextBlockAdorner and change the Background Brush. The change will be visible in the TextBlockAdorner, this is due to the TextBoxView being updated. Deselect the TextBlock to exit the TextBlockAdorner, the owner TextBlock will not show the change.

Changing a DP on the TextBlock, or an Inline within it, will force an update and the change will be visible.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2883 [NoesisGUI] Studio feature always 2023-11-23 13:25 2024-02-12 11:29
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Moving path points with directional keys
Description: It should be possible to move a selection of path points with the directional keys ( seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=3319 ) as Blend, Illustrator, Figma etc allow to do
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2894 [NoesisGUI] Studio feature have not tried 2023-11-24 15:41 2024-02-12 11:24
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Add lock toggle to alignment properties
Description: Right now when an element is moved around inside a panel (Grid), the drag manager updates its alignment and margin properties to generate the minimum margin possible.
We can provide a "lock" toggle so the user can keep a desired alignment so the drag manager won't change it.

We can even represent this information in the MarginAdorner by drawing the margin with a different style (dashed line vs solid line for locked for example).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2896 [NoesisGUI] Studio feature have not tried 2023-11-24 15:53 2024-02-12 11:23
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Show padding and margin adorners when using the properties
Description: Something similar to what Chrome inspector does when hovering over the html nodes (see attached image), we can show the padding and margins applied to an element when editing those properties.
And maybe we can do the same when hovering the element in the Navigator.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: layoutmp.png (6,124 bytes) 2023-11-24 15:53
https://www.noesisengine.com/bugs/file_download.php?file_id=2037&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2975 [NoesisGUI] Studio feature have not tried 2023-12-28 11:43 2024-02-12 11:22
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: User should be allowed to change multi-selection properties
Description: As seen here https://youtu.be/fiHAn3LkVjc?feature=shared&t=1256 there are workflows that require to change the same property for a large selection of elements.
The user should be able to change shared properties of a multi-selection.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3046 [NoesisGUI] Studio minor always 2024-01-25 11:48 2024-02-12 11:21
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Hit Test Visibility Property Improperly-Set by Default
Description: In essence, the state of the Hit Test Visibility property does not correctly reflect its actual property.
By default, elements are shown with Hit Test Visibility "Off", but in reality are "On" and intercept mouse interactions.

To make a layer Hit Test Invisible, the user must first first tick the Hit Test Visibility property to "On" (even though it shows "Off"), and then untick it for the Invisibility to apply.
Tags:
Steps To Reproduce: Repro Steps:

1) Create a new page.
2) Create 2 layers in the Master Grid of the page: A 'Button' (Button) layer, and a 'Foreground' (Grid) layer on top of it. For now, do not apply any background to the 'Foreground' layer.

3) Press the 'Run' icon, and hover over the button. Observe how it has a visible 'MouseOver' interaction state.
4) Apply a background fill to the 'Foreground' layer. This can just be a Solid Colour fill with enough transparency to see the button underneath/through it.
Observe how the "Hit Test Visibility" property is unticked (off) -- meaning that in theory it should be Hit Test Invisible and should not intercept mouse interactions.

5) Press the 'Run' icon, and hover over the button. Observe how it is no longer detecting Mouse Input.
6) Return to the 'Foreground' layer, and tick the "Hit Test Visibility" property to "On" (meaning it will intercept mouse inputs).
7) Press the 'Run' icon, and hover over the button.
Observe how it is still not receiving Mouse Input.

8) Return to the 'Foreground' layer, and untick the "Hit Test Visibility" property to "Off" (meaning it will no longer intercept mouse inputs).
9) Press the 'Run' icon, and over over the button.
Observe how it now correctly receives Mouse Input.

Expected Result: If a layer has the Hit Test Visibility unticked (set to "Off"), it should actually be Hit Test Invisible and not intercept Mouse Inputs.

I believe the solution here is to ensure that all new elements created have Hit Test Visibility ticked to "On" by default, forcing the user to come and untick any elements they do not wish to have Hit Test Visibility.
Additional Information:
Attached Files: 2024-01-25 05-27-18_Compressed.mp4 (5,011,624 bytes) 2024-01-25 11:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2109&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3045 [NoesisGUI] C# SDK major always 2024-01-24 21:44 2024-02-10 13:21
Reporter: darthmaule2 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Upgrading from Noesis 3.1.7 to 3.2.0 made startup slower
Description: Upgrading from Noesis 3.1.7 to 3.2.0 made our application startup about 12 seconds slower on Linux ARM64
Tags:
Steps To Reproduce: Boot 3.1.7 --> 1 minute 26 seconds
Boot 3.2.0 --> 1 minute 38 seconds
Additional Information:
Attached Files:
Notes
(0009120)
jsantos   
2024-01-25 01:33   
(Last edited: 2024-01-25 01:35)
Wow, these are super big loading times.

Is this more than 1 minute time spend in Noesis code?

If so, we definitely need to understand what's going on to optimize this.

Also a lot of loading time optimizations are coming with 3.2.3, but I don't think they are going to be useful in this scenario.
(0009122)
darthmaule2   
2024-01-25 12:28   
Most of our time spent during startup, as illustrated by Juan, is in the JIT.
I think publishAOT would make that much faster, but Noesis is not yet compatible with that (I filed a separate bug for that)

At least part of the slowdown for us in Noesis 3.2.0 is the WebBrowser, which is this call in our application:
  Assembly.Load("Noesis.App.Controls.WebBrowser");

  Noesis 3.1.7:
  Timing: WebBrowser: 53 ms

  Noesis 3.2.0:
  Timing: WebBrowser: 6.494 ms

Calling it dynamically like that also make it impossible to use either "PublishAOT" or "SingleFile" if I remember correctly.
I'm not sure if there is a different way to do that?
(0009135)
jsantos   
2024-01-29 15:05   
(Last edited: 2024-01-29 15:05)
Loading the assembly shouldn't be affected by the Noesis version you are using.
This is quite unexpected and we should find time to analyze it.

Are you consistently reproducing this difference? (53ms vs 6494ms) ?
(0009175)
darthmaule2   
2024-02-08 20:36   
I believe so and that this problem occurs in the latest application software I've sent to Noesis.
I'd also love to test a 3.2.3 beta, whenever that is availalble.
(0009176)
jsantos   
2024-02-09 12:31   
3.2.3. was released yesterday, could you please try that version first before we start to investigate what's happening?
(0009177)
darthmaule2   
2024-02-09 13:31   
That build works on Windows but just crashes immediately on our device.
3.2.2 also crashed immediately on our device, although I think it was a different issue that was supposedly fixed.

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./UIShell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000ffbe978ed3d4 in ?? () from /opt/mentor/UiShell/libNoesis.so
[Current thread is 1 (Thread 0xffbeb6325130 (LWP 5653))]
(gdb) bt
#0 0x0000ffbe978ed3d4 in ?? () from /opt/mentor/UiShell/libNoesis.so
#1 0x0000ffbe9797a104 in Noesis_PropertyMetadata_BindPropertyChangedCallback () from /opt/mentor/UiShell/libNoesis.so
#2 0x0000ffff6c81ac34 in ?? ()
#3 0x0000000008a1ea73 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
(0009178)
darthmaule2   
2024-02-09 21:11   
Just realized I'm getting that error with my current build even without the upgrade.
Must have been a recent change I made.
Sorry, stay tuned :)
(0009179)
darthmaule2   
2024-02-10 13:21   
OK. This can be closed. My timing logs were wrong and I've upgraded to Noesis 3.2.3 and unable to reproduce. Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2511 [NoesisGUI] VSCode block always 2023-02-12 17:52 2024-02-09 12:49
Reporter: miZyind Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: macOS
Summary: The previewer of NoesisGUI XAML Tools (VSCode Extensions) always showing a blank blue background, it doesn't work properly on.
Description: As I mentioned here:
https://www.noesisengine.com/forums/viewtopic.php?t=2861&sid=cab69739d3b05d0e3b59629ef4897d34

I can't use the previewer to view XAML properly.
I also downloaded the sample files and the beta version of the extensions.
However, neither of them works.

I follow maherne's information to check the "/tmp/noesis" folder.
There are some png files but all of them are blank too (have file size but no content).
My device is MacBook Pro 2019 (Intel).
Tags: xaml
Steps To Reproduce: 1. Install the latest v0.0.33 or the beta version provided by maherne of NoesisGUI XAML Tools for VSCode.
2. Open the official Noesis samples and pick up the XAML file to open the previewer.
3. The previewer will only show the blank blue background.
Additional Information:
Attached Files: Screenshot 2023-02-12 at 11.34.36 PM.png (988,031 bytes) 2023-02-12 17:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1754&type=bug
Screenshot 2023-02-12 at 11.37.07 PM.png (231,293 bytes) 2023-02-12 17:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1755&type=bug
Screenshot 2023-02-13 at 9.13.58 AM.png (1,106,747 bytes) 2023-02-13 03:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1756&type=bug
Screenshot 2023-02-13 at 9.17.06 AM.png (1,491,270 bytes) 2023-02-13 03:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1757&type=bug
lang-server-test.png (2,610 bytes) 2023-02-14 08:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1758&type=bug
lang-server-test.log (482 bytes) 2023-02-14 08:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1759&type=bug
enable_debug (520 bytes) 2023-02-14 09:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1760&type=bug
Screenshot 2023-02-15 at 11.45.56 AM.png (224,948 bytes) 2023-02-15 05:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1762&type=bug
lang-server-test-2.log (1,446 bytes) 2023-02-15 05:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1763&type=bug
Screenshot 2023-02-24 at 9.23.51 AM.png (375,097 bytes) 2023-02-24 03:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1771&type=bug
lang-server-test-3.log (482 bytes) 2024-02-07 04:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2147&type=bug
lang-server-test-2.png (2,610 bytes) 2024-02-07 04:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2148&type=bug
Screenshot.jpg (1,412,462 bytes) 2024-02-07 04:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2149&type=bug
Screenshot 1.jpg (331,393 bytes) 2024-02-07 04:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2150&type=bug
Notes
(0008273)
jsantos   
2023-02-12 23:13   
It seems there is a problem rendering with the vscode extension, while we prepare an instrumented version to gather more information, could you please download the latest macOS C++ SDK (3.2 Beta) at

https://www.noesisengine.com/forums/viewtopic.php?t=2822

And try to launch SDKBrowser and XamlPlayer to check if they render correctly on your machine?

Thank you
(0008274)
miZyind   
2023-02-13 03:18   
I checked the latest SDKBrowser & XamlPlayer both work:
(0008277)
maherne   
2023-02-13 17:13   
I have created a test binary which, when run, will output a test render png and log to the same folder.

Could you please download this binary (link to the zip below), run it in the terminal, and then upload the output png and log here?

https://drive.google.com/file/d/1P0p0PO9RXg-Ydz_epxd2_UYo9gs3uSpr

Thanks!
(0008279)
miZyind   
2023-02-14 08:01   
Hello @maherne, here are the files generated by the test tool:
(0008280)
jsantos   
2023-02-14 09:59   
(Last edited: 2023-02-14 10:00)
Thanks for the results. Unfortunately, it doesn't report enough information. I am attaching a script that will enable Metal validation (enable_debug)

Please, could you:

1. Copy the attached script (enable_debug) to the folder where you have App.LangServerTool
2. Give execution permissions to the script (chmod +x enable_debug)
3. Execute the script (./enable_debug)
4. Execute our tool (./App.LangServerTool)
5. Please, send us the report again (lang-server-test.log)
(0008288)
miZyind   
2023-02-15 05:48   
(Last edited: 2023-02-15 05:49)
Here are the steps I did and the new log:

- add the env vars
❯ source ./enable_debug
- echo to check if the env vars have applied
❯ echo $DYLD_INSERT_LIBRARIES
/usr/lib/libMTLCapture.dylib:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/GPUToolsPlatform/libMTLToolsDiagnostics.dylib
❯ echo $METAL_DIAGNOSTICS_ENABLED
1
- run the tool
❯ ./App.LangServerTool
(0008300)
jsantos   
2023-02-23 11:58   
Sorry, we have been really busy with Beta 3.

Could you please send the full information of your MacBook Pro?
(0008304)
miZyind   
2023-02-24 03:26   
@jsantos Here is the information from "About This Mac".
If you need any extra info please tell me, thanks, and take your time!
(0009168)
jsantos   
2024-02-06 18:30   
Could you please try with the latest version in the store (0.0.47) ?
(0009169)
miZyind   
2024-02-07 04:58   
I've just tried the latest version 0.0.47.
Unfortunately, I still have the same issue.
Here are the screenshots and the log generated by App.LangServerTool (with enable_debug).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3077 [NoesisGUI] Unity3D minor always 2024-02-08 15:16 2024-02-08 20:13
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Visual Studio XAML Errors ( XLS0415)
Description: I'm seeing large numbers of Visual Studio XAML errors (XLS0414) and I'm not sure why. This seems like a new behavior. Screenshot included. I'm still able to compile via Unity, but in Visual Studio the errors are numerous -- more than 300 and VS stops reporting them.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (184,512 bytes) 2024-02-08 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2157&type=bug
image-2.png (18,566 bytes) 2024-02-08 20:11
https://www.noesisengine.com/bugs/file_download.php?file_id=2159&type=bug
Notes
(0009172)
sfernandez   
2024-02-08 16:04   
(Last edited: 2024-02-08 16:04)
This is opening "Assembly-CSharp" project generated by Unity, that should only contain script (.cs) files, but I'm seeing errors about .xaml files too, did you manually change the .csproj?
(0009173)
stonstad   
2024-02-08 20:11   
Yes, Unity has an option to include different file types within the automated generation process for Unity CSPROJ files. I have always included XAML so that I may easily open them from Visual Studio. Interestingly, they may have removed the UI for this in more recent Unity builds.
(0009174)
stonstad   
2024-02-08 20:13   
Sounds like this is a Visual Studio/Unity bug then?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3053 [NoesisGUI] Unity3D minor always 2024-01-30 18:47 2024-02-08 15:16
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Per Frame Heap Memory Allocation
Description: I'm seeing 0.5KB of per frame allocation in Noesis.Update.

1) 240B per-frame allocation in EventArgs.InvokeHandler (Alloc 1.png).
2) 288B per-frame allocation in EventHandlerStore.RaiseEvent (Alloc 2.png)

Are these known behaviors or something I might have caused on my end?

encl. Alloc 1.png, Alloc 2.png.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Alloc 1.png (116,582 bytes) 2024-01-30 18:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2123&type=bug
Alloc 2.png (118,796 bytes) 2024-01-30 18:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2124&type=bug
Notes
(0009143)
jsantos   
2024-01-31 09:28   
This is a known issue with no easy solution. EventArgs in WPF are classes allocated from the heap. We need to pool these objects.
(0009155)
stonstad   
2024-02-02 00:36   
Good to know! These are the only per-frame allocations that I have. I imagine this is a difficult fix?
(0009157)
jsantos   
2024-02-02 02:13   
(Last edited: 2024-02-02 02:13)
These specific cases can probably be easily optimized. I will find time to analyze this and I will let you know
(0009171)
stonstad   
2024-02-08 15:16   
Thank you. I am happy to test to see if the behavior is resolved


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3070 [NoesisGUI] Unity3D minor always 2024-02-06 13:16 2024-02-07 13:29
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: MediaElement can not open video by absolute path
Description: I'm using Noesis 3.2.2 in Unity on Windows 10 and I have some troubles setting MediaElement.Source.

Let's assume there is a media file located in `D:\movie.mp4`. Then setting mediaElement.Source = new Uri(@"D:\movie.mp4") prints to error log:

> WindowsMediaFoundation received empty file /D:/movie.mp4
> VideoPlayer cannot play url : /D:/movie.mp4
> Cannot read file.

I tried different formats with following results:
D:\movie.mp4 - error
file:/D:\movie.mp4 - works successfully
file://D:\movie.mp4 - error
file:///D:\movie.mp4 - error (I believe this should be the correct path, but do not cite me on that).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1124 [NoesisGUI] Unity3D major always 2017-07-14 03:27 2024-02-07 03:03
Reporter: weilitao Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Storyboard can not contain multiple animations targeting same property
Description: When including multiple animations in a single storyboard, some of which targeting to the same property (although not at the same time). in Noesis, only the last animation can run. But in WPF, everything works as expected.
Tags:
Steps To Reproduce:
Additional Information: Sample code:

            var storyboard = new Storyboard();
            var duration = new Duration(TimeSpan.Parse("0:0:1"));
            var x1Animation = new DoubleAnimation() {
                To = 800,
                Duration = duration
            };
            var y1Animation = new DoubleAnimation() {
                To = 800,
                Duration = duration
            };
            Storyboard.SetTarget(x1Animation, demo1KingCard);
            Storyboard.SetTarget(y1Animation, demo1KingCard);
            Storyboard.SetTargetProperty(x1Animation, new PropertyPath(Canvas.LeftProperty));
            Storyboard.SetTargetProperty(y1Animation, new PropertyPath(Canvas.TopProperty));
            storyboard.Children.Add(x1Animation);
            storyboard.Children.Add(y1Animation);

            var beginTime = TimeSpan.Parse("0:0:1");
            var x2Animation = new DoubleAnimation() {
                BeginTime = beginTime,
                To = 200,
                Duration = duration
            };
            var y2Animation = new DoubleAnimation() {
                BeginTime = beginTime,
                To = 200,
                Duration = duration
            };
            Storyboard.SetTarget(x2Animation, demo1KingCard);
            Storyboard.SetTarget(y2Animation, demo1KingCard);
            Storyboard.SetTargetProperty(x2Animation, new PropertyPath(Canvas.LeftProperty));
            Storyboard.SetTargetProperty(y2Animation, new PropertyPath(Canvas.TopProperty));
            storyboard.Children.Add(x2Animation);
            storyboard.Children.Add(y2Animation);
Attached Files:
Notes
(0008154)
sfernandez   
2022-11-15 11:41   
(Last edited: 2022-11-15 11:45)
More examples, from https://github.com/microsoft/WPF-Samples/blob/master/Animation/CustomAnimation/CustomAnimationExample.xaml#L233-L245

<Storyboard x:Key="CircleTimeline">
          <DoubleAnimation Duration="0:0:5" From="0" To="500" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"/>
          <DoubleAnimation Duration="0:0:1.5" From="0" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"/>
          <ParallelTimeline BeginTime="0:0:0" Duration="0:0:4.5">
            <customAnimations:CircleAnimation RepeatBehavior="Forever" Duration="0:0:1" Radius="40" Direction="YDirection" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"/>
            <customAnimations:CircleAnimation RepeatBehavior="Forever" Duration="0:0:1" Radius="40" Direction="XDirection" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"/>
          </ParallelTimeline>
          <ParallelTimeline BeginTime="0:0:4.5">
            <DoubleAnimation To="500" Duration="0:0:0.5" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"/>
            <DoubleAnimation To="0.0" Duration="0:0:0.5" Storyboard.TargetName="circleButton" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)"/>
          </ParallelTimeline>
        </Storyboard>


From this example it seems that multiple animations acting on the same DP are nesting the animated values (baseValue -> Animation1 -> result -> Animation2 -> finalResult), but we have to verify this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2912 [NoesisGUI] Unity3D crash always 2023-12-01 16:03 2024-02-06 18:02
Reporter: EvanRuiz Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: iOS
Summary: Crash on iOS after clicking on simple ComboBox with injection point set to "After Rendering Post Processing"
Description: I always get a crash on iOS when clicking on a ComboBox with the Noesis injection point configured to "After Rendering Post Processing". If I select "Before Rendering Post Processing" it does not crash on iOS. This is using the URP renderer.

I isolated the crash to just a simple ComboBox example in a new Unity URP project template. This does not crash in the Editor, just on iOS.

Unity Version: 2022.3.14f1
Unity Project: New 3D (URP) project template
NoesisGUI Version: 3.2.2
iOS Device: iPad Pro 12.9 (5th Generation) with M1 processor
iOS Version: 17.1.1

Log Errors in Xcode
-[MTLDebugRenderCommandEncoder validateCommonDrawErrors:]:5775: failed assertion `Draw Errors Validation
MTLDepthStencilDescriptor uses frontFaceStencil but MTLRenderPassDescriptor has a nil stencilAttachment texture
MTLDepthStencilDescriptor uses backFaceStencil but MTLRenderPassDescriptor has a nil stencilAttachment texture
'

Crash Details:
UnityFramework`::InsertCustomMarkerCallbackAndDataWithFlags():
    0x10bc73778 <+0>: stp x20, x19, [sp, #-0x20]!
    0x10bc7377c <+4>: stp x29, x30, [sp, #0x10]
    0x10bc73780 <+8>: add x29, sp, #0x10
    0x10bc73784 <+12>: mov x20, x3
    0x10bc73788 <+16>: mov x19, x0
    0x10bc7378c <+20>: ldr x8, [x0]
    0x10bc73790 <+24>: ldr x8, [x8, #0x838]
    0x10bc73794 <+28>: mov x3, x4
    0x10bc73798 <+32>: mov x4, x5
    0x10bc7379c <+36>: blr x8
-> 0x10bc737a0 <+40>: tbnz w20, #0x2, 0x10bc737b0 ; <+56> at GfxDevice.cpp:2573:9
UnityGfxDeviceWorker (42): signal SIGABRT

Call Stack:
UnityGfxDeviceWorker (42)#0 0x00000001dba6101c in __pthread_kill ()
#1 0x00000001fdf41680 in pthread_kill ()
#2 0x000000019c5c1b90 in abort ()
#3 0x000000019c5c0e80 in __assert_rtn ()
#4 0x00000001942935a4 in MTLReportFailure.cold.1 ()
#5 0x0000000194271b8c in MTLReportFailure ()
#6 0x000000019413ee4c in _MTLMessageContextEnd ()
#7 0x00000002266a2884 in -[MTLDebugRenderCommandEncoder validateCommonDrawErrors:] ()
#8 0x00000002266a20c0 in -[MTLDebugRenderCommandEncoder validateCommonDrawErrors:instanceCount:baseInstance:maxVertexID:] ()
#9 0x00000002266a324c in -[MTLDebugRenderCommandEncoder validateDrawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:function:] ()
#10 0x00000002266a33f4 in -[MTLDebugRenderCommandEncoder drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:] ()
#11 0x0000000102f32754 in -[CaptureMTLRenderCommandEncoder drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:] ()
#12 0x000000010cd75d4c in ___lldb_unnamed_symbol1639736 ()
#13 0x000000010cd7250c in ___lldb_unnamed_symbol1639710 ()
#14 0x000000010cd6e1d8 in ___lldb_unnamed_symbol1639680 ()
#15 0x000000010cacfa0c in ___lldb_unnamed_symbol1616471 ()
#16 0x000000010cacaea4 in ___lldb_unnamed_symbol1616432 ()
#17 0x000000010cad702c in ___lldb_unnamed_symbol1616545 ()
#18 0x000000010cad6f88 in ___lldb_unnamed_symbol1616544 ()
#19 0x000000010ccca8a8 in ___lldb_unnamed_symbol1638462 ()
#20 0x000000010bc737a0 in ::InsertCustomMarkerCallbackAndDataWithFlags() at /Users/bokken/build/output/unity/unity/Runtime/GfxDevice/GfxDevice.cpp:2570
#21 0x000000010bd36764 in ::RunCommand() at /Users/bokken/build/output/unity/unity/Runtime/GfxDevice/threaded/GfxDeviceWorker.cpp:1534
#22 0x000000010bdbba60 in GfxDeviceWorkerAutoreleasePoolProxy at /Users/bokken/build/output/unity/unity/Runtime/GfxDevice/metal/GfxDeviceMetal.mm:5745
#23 0x000000010bd2ed6c in ::RunExt() at /Users/bokken/build/output/unity/unity/Runtime/GfxDevice/threaded/GfxDeviceWorker.cpp:375
#24 0x000000010bd2e918 in ::RunGfxDeviceWorker() at /Users/bokken/build/output/unity/unity/Runtime/GfxDevice/threaded/GfxDeviceWorker.cpp:332
#25 0x000000010b8cb728 in ::RunThreadWrapper() at /Users/bokken/build/output/unity/unity/Runtime/Threads/Thread.cpp:108
#26 0x00000001fdf3e4d4 in _pthread_start ()
Tags: Combo box, crash, iOS, Unity URP
Steps To Reproduce: Create new Unity 3D (URP) project template in Unity 2022.3.14f1.
Install NoesisGUI-Unity-3.2.2-Indie Unity Package (installed as embedded package in project Packages folder)
Add source files below and set as the Neosis view XAML on Main Camera.
Configure Noesis Injection Point to "After Rendering Post Processing"
Build and deploy on iOS (I used an iPad Pro 12.9 m1)
Click on ComboBox.
See Crash.

Setting injection point to "Before Rendering Post Processing" avoids the crash.

See attached project zip that I used, if that is helpful. (Noesis unity package needs to be copied back in to the Packages folder).

Here is just the simple ComboBox XAML example, if that is all you need:

-----------------------------------------
SimpleComboBoxView.xaml
-----------------------------------------
<UserControl x:Class="NoesisCrashTest.Assets.GUI.SimpleComboBoxView"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Border x:Name="Panel" Background="#33888888" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="10,10" Padding="10,5" CornerRadius="20">
        <StackPanel Orientation="Horizontal">
            <ComboBox Width="100" Height="50">
                <Label>200%</Label>
                <Label>100%</Label>
                <Label>50%</Label>
            </ComboBox>
        </StackPanel>
    </Border>
</UserControl>


-----------------------------------------
SimpleComboBoxView.cs
-----------------------------------------
#if UNITY_5_3_OR_NEWER
#define NOESIS
using Noesis;
using UnityEngine;
#else
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
#endif

namespace NoesisCrashTest.Assets.GUI
{
    public partial class SimpleComboBoxView : UserControl
    {
        public SimpleComboBoxView()
        {
            InitializeComponent();
        }

#if NOESIS
        private void InitializeComponent()
        {
            NoesisUnity.LoadComponent(this);
        }
#endif
    }
}
Additional Information:
Attached Files: NoesisCrashTest.zip (123,059 bytes) 2023-12-01 16:03
https://www.noesisengine.com/bugs/file_download.php?file_id=2039&type=bug
Notes
(0008993)
jsantos   
2023-12-01 16:51   
Thanks for the detailed report!
(0009160)
jsantos   
2024-02-02 20:43   
(Last edited: 2024-02-02 20:46)
I was able to reproduce this, even on macOS. Unfortunately, the "Injection Point" is not very reliable and depending on configuration settings this can cause that when Unity has to render the UI, the main buffers (we need stencil) are not available. Theoretically, this could be considered a Unity bug, URP is still quite unstable and probably it will be fixed.

I found a recommended workaround though. Just create a stack of two cameras, the first one (base) with everything you have right now (including post-processing) but without Noesis, and in the second camera disable post-processing and leave only Noesis (disable also 3D-rendering by setting culling mask to None).

This configuration works ok in all iPad we have tested here.

https://www.noesisengine.com/docs/Gui.Core.Unity3DTutorial.html#universal-pipeline
(0009167)
EvanRuiz   
2024-02-06 17:58   
Thanks for the workaround!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3039 [NoesisGUI] Studio minor have not tried 2024-01-23 15:48 2024-02-06 17:16
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when clicking in the Assets panel icon
Description: As seen here https://youtu.be/UvPFzHGwNyU?feature=shared&t=2296
Crash dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ClickingonAssetPanel.dmp (251,922 bytes) 2024-01-23 15:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2101&type=bug
20240130_182720.dmp (217,498 bytes) 2024-01-30 18:57
https://www.noesisengine.com/bugs/file_download.php?file_id=2125&type=bug
CloseTab.dmp (236,250 bytes) 2024-02-06 17:16
https://www.noesisengine.com/bugs/file_download.php?file_id=2146&type=bug
Notes
(0009142)
fllorens   
2024-01-30 18:57   
Also seen here: https://youtu.be/uB6q77Q6Uyg?feature=shared&t=2142
(0009166)
fllorens   
2024-02-06 17:16   
Also seen here https://youtu.be/oaUVXU9o_IE?feature=shared&t=971


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3062 [NoesisGUI] Studio minor have not tried 2024-02-02 12:34 2024-02-06 10:07
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when moving template resource to resource dictionary
Description: as seen here: https://youtu.be/ZnJH8w53qek?feature=shared&t=2236
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MovingTemplateResources.zip (33,105 bytes) 2024-02-02 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2139&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3068 [NoesisGUI] Unreal minor have not tried 2024-02-05 21:57 2024-02-06 00:37
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Add support for TargetType to Unreal RichText Style tags
Description: When using a Style key tag, in Unreal RichText, the Style.TargetType property should be used to create an element of that type. This will allow you to create customised inline elements using templates.

If the TargetType is a ContentControl, and the Style tag has content, then this content is set to the ContentControl.Content property. You can use a ContentPresenter to display this.

For example:

<Style x:Key="RndCorner" TargetType="ContentControl">
  <Setter Property="Background" Value="Gray"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ContentControl">
        <Border Background="{TemplateBinding Background}" CornerRadius="4">
          <ContentPresenter/>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

<TextBlock noesis:RichText.Text="This is an example of text that has the prompt <RndCorner>Backspace</> inside of it"/>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3067 [NoesisGUI] Unreal minor have not tried 2024-02-05 21:50 2024-02-05 21:53
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Allow extending Unreal RichText tags using a callback
Description: Add the ability to extend Unreal RichText tags using a callback which is invoked whenever an unknown tag is found. This method can create an Inline, which will be added to the TextBlock, or return nullptr if there is no match.

Here is an example of the callback in action:

RichText::SetTryCreateInlineCallback([](const char* tagName, Noesis::ArrayRef<RichText::Parameter> parameters, const Noesis::TextBlock* parent) -> Noesis::Ptr<Noesis::Inline>
{
    if (Noesis::StrEquals(tagName, "run"))
    {
        return Noesis::MakePtr<Noesis::Run>("A run with some text");
    }
    return nullptr;
});
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2919 [NoesisGUI] Documentation minor have not tried 2023-12-05 10:44 2024-02-05 20:55
Reporter: ttermeer-rcg Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unreal Gamepad Documentation out of date for 5.3
Description: The documentation on how to use the gamepad for Noesis is out of date for Unreal 5.3.
As per the release notes from Unreal:
Deprecated UPlayerMappableInputConfig in favor of the new UEnhancedInputUserSettings with 5.3.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2748 [NoesisGUI] Unity3D major always 2023-10-20 15:40 2024-02-05 14:24
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Inconsistent carriage return handling in a TextBox
Description: I'm running NoesisGUI on Windows machine in Unity.
The behaviour is observed on any TextBox with AcceptsReturn=True.
Type some multiline text - Text property would contain \n as a line break instead of \r\n.
Copy typed text from TextBox into any text editor (e.g. Notepad++ - it allows to see unprintable symbols' codes) - pasted text would contain \r\n for line breaks.
Copy the same text from editor back into TextBox - Text property contains \r\n, but TextBox starts to behave strangely: selection is drawn incorrectly, sometimes cursor is placed in incorrect position.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: textbox.png (3,433 bytes) 2023-10-20 15:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1995&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3063 [NoesisGUI] Unity3D major always 2024-02-02 14:42 2024-02-02 20:18
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Matrix.HasInverse has inverted behaviour.
Description: I've stumbled on a typo in Unity Noesis plugin. Matrix struct has HasInverse property implemented like this:

public bool HasInverse => Math.Abs(Determinant) < 0.0001f;

On the other hand, Invert method looks like this:

public void Invert()
{
    float determinant = Determinant;
    if (Math.Abs(determinant) < 0.0001f)
        throw new InvalidOperationException("Matrix is not Invertible");
    ...
}

I believe, the check in HasInverse implementation has to be inverted:

public bool HasInverse => Math.Abs(Determinant) >= 0.0001f;
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009159)
sfernandez   
2024-02-02 20:18   
Thanks a lot for reporting this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2712 [NoesisGUI] Unity3D minor always 2023-10-04 15:13 2024-02-02 16:47
Reporter: Otter Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Separate PPAA modes for onscreen and offscreen
Description: When PPAA is enabled, the edge detail is better on elements that have DropShadowEffect and worse on elements without it.

Forum: https://www.noesisengine.com/forums/viewtopic.php?t=3072
Tags:
Steps To Reproduce: Import Assets.zip

or

1. Create two buttons
2. To one button add DropShadowEffect
3. Disable PPAA
3. Zoom in to buttons and observe quality of edges (drop shadow element has a little jagged edges)
4. Enable PPAA and observe the quality of edges (drops shadow element has better quality edges)
Additional Information:
Attached Files: Assets.zip (14,917 bytes) 2023-10-04 15:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1963&type=bug
ShadowPPAA.png (9,100 bytes) 2023-10-04 15:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1964&type=bug
ShadowNoPPAA.png (6,408 bytes) 2023-10-04 15:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1965&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2929 [NoesisGUI] Unity3D crash always 2023-12-11 16:19 2024-02-02 02:12
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: WorldSpaceUI and NoesisView Event Dispatch - ev.Use()
Description: Workflows which combine WorldSpaceUI with standard NoesisViews appear to handle layering, hit testing, and dispatch of events inconsistently.

For example, certain WorldSpaceUI events work if a separate NoesisView is present (mouse enter, mouse exit), while others do not (mouse click). This behavior occurs intendent of element hit test occlusion.

A current work-around exists - disable ev.use(), in NoesisVew.cs, but it is unclear if this is an appropriate solution.

See related forum thread, https://www.noesisengine.com/forums/viewtopic.php?t=3152
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009020)
stonstad   
2023-12-12 15:59   
This is likely related: https://www.noesisengine.com/bugs/view.php?id=2936
(0009147)
jsantos   
2024-01-31 17:40   
(Last edited: 2024-01-31 17:40)
I have been trying to reproduce this and the only explanation that I have for this is that your base layer (the one on top, with 2D UI) has the property Background set (even set to Transparent). And this is blocking the event propagation to the layer below.

Could you please check this?
(0009152)
stonstad   
2024-02-01 22:49   
Hi Jesus. If this was the case (background is set), wouldn't mouse over events not work? But in this case, they do, but click does not.
(0009153)
jsantos   
2024-02-01 23:05   
For clicks we are using Unity events (move and over events use a different route), we are only consuming the event (when a event is consumed it is not send to next layer that is behind) when HitTesting returns a valid Visual. If you haven't set the Background property, the HitTest should be null in empty areas of your UI.

Could you confirm this?

Thanks!
(0009154)
stonstad   
2024-02-02 00:07   
Sure!

I reenabled this code in NoesisView.cs:

if (HitTest(mouse.x, mouse.y))
{
   ev.Use(); // was previously commented out
}

I can confirm 1) mouse enter, 2) over, and 3) click work in the WorldSpaceUI while a NoesisView shows content layered above. I believe the issue I had before was that click events were not working but mouse over was working. It is consistent now, and perhaps I had a background set before?

Here is a video of the current behavior, which I suspect is correct.
https://stellarconquest.blob.core.windows.net/tmp/noesis/Desktop%202-1-2024%205-05-19%20PM.mp4

If you are in agreement, please feel free to close this out.
(0009156)
jsantos   
2024-02-02 02:12   
Yes, I would say you had a background set (even to "Transparent") before.

Thanks for the feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2709 [NoesisGUI] Unity3D feature always 2023-10-03 07:42 2024-02-02 01:43
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: RiveApp Text feature
Description: Hi NoesisGUI team,
I hope you are doing well.

RiveApp has a new text feature which is good in Flutter and React platforms. It can be "get" and "set" code behind.
My question is: Is it possible to get and set RiveApp Text value in XAML and C# side and modify it code-behind for my game project?
I know how to modify Boolean Number Trigger from Rive. But I do not know about Text.

Thanks in advance
Ali
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Screenshot 2024-02-01 142630.png (13,534 bytes) 2024-02-01 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2131&type=bug
Screenshot 2024-02-01 142611.png (35,388 bytes) 2024-02-01 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2132&type=bug
Screenshot 2024-02-01 142934.png (54,774 bytes) 2024-02-01 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2133&type=bug
Notes
(0009024)
jsantos   
2023-12-14 13:21   
Rive text is already supported. To close this ticket, we need to expose functions in RiveControl to dynamically set text.
(0009148)
aliagha.huseynli   
2024-02-01 12:34   
Hi,
Sorry for the delayed reply.
I see you have almost completed version 3.2.3 86%.
However, I am not sure I can get or set the Rive text value.
Now in XAML, there is an Input section to get set rive inputs such as trigger number bool, but there is no text or string.
On another platform such as Flutter, people can access text value and set it in runtime or code-behind.
I hope I can explain the situation well.
Will I be able to do it in version 3.2.3?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2840 [NoesisGUI] C# SDK crash random 2023-11-16 22:29 2024-02-01 13:49
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Noesis.Extend:Noesis_ClearExtendTypes Crash on AppDomain Unload
Description: =================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.Extend:Noesis_ClearExtendTypes <0x000cd>
      at Noesis.Extend:Shutdown <0x00d5a>
      at Noesis.Extend:OnDomainUnload <0x00082>
      at <Module>:invoke_void_object_EventArgs <0x002d4>
      at System.AppDomain:DoDomainUnload <0x00099>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Received signal SIGSEGV
Tags:
Steps To Reproduce: See encl. crash dump and log file. I modified a script file and Unity reloaded the app domain. Noesis crashed the editor.
Additional Information:
Attached Files: Editor.log (206,690 bytes) 2023-11-16 22:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2018&type=bug
crash.zip (1,103,069 bytes) 2023-11-16 22:29
https://www.noesisengine.com/bugs/file_download.php?file_id=2019&type=bug
Crash_2023-11-16_234722679.zip (4,801,301 bytes) 2023-11-17 01:02
https://www.noesisengine.com/bugs/file_download.php?file_id=2020&type=bug
Crash_2023-11-22_140134471.zip (1,806,982 bytes) 2023-11-22 15:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2024&type=bug
Crash_2023-11-22_161816423.zip (941,018 bytes) 2023-11-22 17:20
https://www.noesisengine.com/bugs/file_download.php?file_id=2025&type=bug
Crash_2023-11-22_184312718.zip (2,274,019 bytes) 2023-11-22 19:44
https://www.noesisengine.com/bugs/file_download.php?file_id=2027&type=bug
Notes
(0008948)
stonstad   
2023-11-17 01:02   
Encl. dumps for additional crashes. It is crashing approximately once every twenty minutes when any script change occurs.
(0008949)
stonstad   
2023-11-17 15:51   
I'm surprised how it is stable for weeks and then suddenly, Noesis crashes the editor every few minutes. Can I disable Noesis reloads on app domain unloads? I'm authoring code and not changing XAML.
(0008952)
stonstad   
2023-11-17 19:03   
Hey Jesus, it is crashing every time I modify a script. Please let me know if there is anything I can test for you before I try to fix this by deleting \library. It is repeatable and easy to reproduce right now.
(0008953)
stonstad   
2023-11-17 19:58   
* Reimporting all UI assets does not fix it.
* Wrapping Extend methods does not fix it.

try
{
    Noesis_ClearExtendTypes();
}
catch(Exception e)
{
    UnityEngine.Debug.LogError(e);
}

try
{
    Noesis_EnableExtend(false);
}
catch(Exception e)
{
    UnityEngine.Debug.LogError(e);
}

try
{
    ClearTables();
}
catch(Exception e)
{
    UnityEngine.Debug.LogError(e);
}

I'm crashing on every script change. Is there anything I can do to work around this to remain productive in Unity?
(0008958)
sfernandez   
2023-11-20 10:52   
Could you please try the following patch, I might know what could be happening:

Index: Events.cs
===================================================================
--- Events.cs	(revision 12924)
+++ Events.cs	(working copy)
@@ -442,7 +442,7 @@
             Timeline._Completed.Clear();
             VisualStateGroup._CurrentStateChanging.Clear();
             VisualStateGroup._CurrentStateChanged.Clear();
-            View._Rendering.Clear();
+            View.ResetRendering();
         }
 
         private static void OnElementDestroyed(IntPtr d)
Index: View.cs
===================================================================
--- View.cs	(revision 12924)
+++ View.cs	(working copy)
@@ -435,6 +435,17 @@
             }
         }
 
+        internal static void ResetRendering()
+        {
+            foreach (var kv in _Rendering)
+            {
+                IntPtr cPtr = new IntPtr(kv.Key);
+                Noesis_View_UnbindRenderingEvent(new HandleRef(null, cPtr), _raiseRendering);
+            }
+
+            _Rendering.Clear();
+        }
+
         internal static Dictionary<long, RenderingEventHandler> _Rendering =
             new Dictionary<long, RenderingEventHandler>();
         #endregion
(0008959)
stonstad   
2023-11-20 20:45   
I applied the change and I'll keep developing. Will let you know if it crashes.
(0008960)
stonstad   
2023-11-20 21:47   
(Last edited: 2023-11-20 21:48)
Thank you Sergio! I have been working for an hour without a crash. I'll keep testing.
(0008964)
stonstad   
2023-11-21 18:16   
The issue appears to be resolved. Thank you!
(0008965)
stonstad   
2023-11-21 18:24   
Is this runtime crash related? I notice it is calling Type_GetStaticType().

https://www.noesisengine.com/bugs/view.php?id=2863
(0008970)
stonstad   
2023-11-22 15:04   
Much more stable, but still seeing occasional crashes on AppDomainUnload. In this scenario, no XAML was edited.

      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:BaseComponent_Release <0x000db>
      at Noesis.BaseComponent:Release <0x00082>
      at Noesis.Extend:ReleasePending <0x00212>
      at Noesis.Extend:Shutdown <0x00d82>
      at Noesis.Extend:OnDomainUnload <0x00082>
      at <Module>:invoke_void_object_EventArgs <0x002d4>
      at System.AppDomain:DoDomainUnload <0x00099>
      at System.Object:runtime_invoke_void__this__ <0x00187>

Encl. editor.log and crash dump.
(0008971)
stonstad   
2023-11-22 17:20   
Another crash during app domain unload. I made script changes during playback. (no xaml).

========== OUTPUTTING STACK TRACE ==================

0x00007FFEEC2F361E (Noesis) Boxed_Bool_GetStaticType
0x00007FFEEC2F27B4 (Noesis) FreeString
0x00007FFEEC30BC96 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC30B6DA (Noesis) String_GetStaticType
0x00007FFEEC31812E (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC317E54 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC45FD40 (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D778 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC389969 (Noesis) Color_GetStaticType
0x00007FFEEC4E46A2 (Noesis) Rect_GetStaticType
0x00007FFEEC347778 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC389969 (Noesis) Color_GetStaticType
0x00007FFEEC4E46A2 (Noesis) Rect_GetStaticType
0x00007FFEEC347778 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D750 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D778 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC483132 (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC483065 (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC389969 (Noesis) Color_GetStaticType
0x00007FFEEC4E46A2 (Noesis) Rect_GetStaticType
0x00007FFEEC347778 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D778 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4B2D42 (Noesis) UIElement_InvalidateMeasure
0x00007FFEEC30B10C (Noesis) String_GetStaticType
0x00007FFEEC30ADC6 (Noesis) String_GetStaticType
0x00007FFEEC30B789 (Noesis) String_GetStaticType
0x00007FFEEC391205 (Noesis) BindingOperations_GetBindingExpression
0x00007FFEEC47DED2 (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC47DC76 (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D750 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFEEC389969 (Noesis) Color_GetStaticType
0x00007FFEEC4E46A2 (Noesis) Rect_GetStaticType
0x00007FFEEC347778 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007FFEEC53D710 (Noesis) SizeChangedInfo_PreviousSize_get
0x00007FFEEC4BD664 (Noesis) ScrollChangedEventArgs_VerticalOffset_get
0x00007FFEEC47DC7F (Noesis) Boxed_Point_GetStaticType
0x00007FFEEC32D750 (Noesis) Noesis_GetPlatformID
0x00007FFEEC30BD51 (Noesis) KeyEventArgs_IsToggled_get
0x000002129B23B71C (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x000002129B23B5C3 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Proxies\BaseComponent.cs:62] Noesis.BaseComponent:Release (intptr)
0x00000213DCD89C93 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:6133] Noesis.Extend:ReleasePending ()
0x00000213FD1CF273 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:83] Noesis.Extend:Shutdown ()
0x00000213FD1CD403 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:36] Noesis.Extend:OnDomainUnload (object,System.EventArgs)
0x00000213FD1CCA95 (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_object_EventArgs (object,System.EventArgs)
0x00000213FD1CC75A (Mono JIT Code) System.AppDomain:DoDomainUnload ()
0x000002128C70B478 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFEEB884B6E (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\mini\mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007FFEEB7BD204 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\object.c:3066] do_runtime_invoke
0x00007FFEEB6946D5 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\appdomain.c:3485] mono_domain_try_unload
0x00007FFEEB86DF1A (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\unity-utils.c:765] mono_unity_domain_unload
0x00007FF660534910 (Unity) UnloadDomain
0x00007FF66052487B (Unity) MonoManager::CreateAndSetChildDomain
0x00007FF6605233EC (Unity) MonoManager::BeginReloadAssembly
0x00007FF66052E4A8 (Unity) MonoManager::ReloadAssembly
0x00007FF6614CA3CD (Unity) Internal_ADB_Only_ReloadAllUsedAssemblies
0x00007FF66198091A (Unity) DomainReloadIfAllowed
0x00007FF66197EA6B (Unity) CompileAndDomainReload
0x00007FF66199D602 (Unity) RefreshInternalV2
0x00007FF6619A585F (Unity) StopAssetImportingV2Internal
0x00007FF66199F2BC (Unity) RefreshV2
0x00007FF6619133F0 (Unity) AssetDatabase::Refresh
0x00007FF66119A31B (Unity) Application::AutoRefresh
0x00007FF66164B153 (Unity) ContainerWindow::ContainerWndProc
0x00007FF819BB8241 (USER32) DispatchMessageW
0x00007FF819BB7EFC (USER32) DispatchMessageW
0x00007FF819BC302D (USER32) GetClassLongW
0x00007FF81A3333B4 (ntdll) KiUserCallbackDispatcher
0x00007FF817CB14D4 (win32u) NtUserPeekMessage
0x00007FF819BC1B4F (USER32) PeekMessageW
0x00007FF819BC1A1C (USER32) PeekMessageW
0x00007FFE8985A074 (gameoverlayrenderer64) OverlayHookD3D3
0x00007FF6616274AD (Unity) MainMessageLoop
0x00007FF66162D170 (Unity) WinMain
0x00007FF662A103EE (Unity) __scrt_common_main_seh
0x00007FF81913257D (KERNEL32) BaseThreadInitThunk
0x00007FF81A2EAA58 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
(0008977)
stonstad   
2023-11-22 19:44   
Encl. additional crash dumps.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3058 [NoesisGUI] Unity3D feature always 2024-02-01 10:22 2024-02-01 10:43
Reporter: karaage Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Improve Touch Emulation
Description: Tracked controller inputs for world space UI are registered as mouse events. This causes manipulation events not to fire, which prevents features like panning in the scroll viewer component.
Manipulation events can be used with the "emulate touch" option however, this approach has its own issues. Eg. Hover effects based on IsMouseOver don't trigger. For a vr solution, having both hover effects and scroll panning would be ideal.
Additionally, a way to control the threshold to start the SrollViewer panning would also be needed. Because it's currently optimized for touch input, but in vr, the pointer can move much more and dragging can get triggered accidentally, when intending to click on an item inside the SrollViewer instead.

This is in reference to the following forum post: https://www.noesisengine.com/forums/viewtopic.php?t=3199
The click event canceling mentioned in the thread was an unrelated problem.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2837 [NoesisGUI] Unity3D minor always 2023-11-15 17:12 2024-01-31 14:42
Reporter: peanut Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: VisualStateManager From MouseOver Raycast
Description: I am using VisualStateManager and I noticed that using:

<VisualTransition GeneratedDuration="0:0:2" From="MouseOver">

does not trigger if you go Off the button, with the ray from the controller, into empty space. It triggers eventually when you hover over any other UI element.
It works fine in Blend, triggers right away when you go Off the button, but in Unity it stays locked in hovered state until the ray hits another element.

Here is a recording of it from Unity: https://www.dropbox.com/scl/fi/ihxdb3nv2vldw2deix97x/Main-Windows-Mac-Linux-Unity-2022.3.10f1-_DX11_-2023-11-13-17-33-50.mp4?rlkey=vco4siz5dws5ny8l6s4wxbzjp&dl=0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008942)
jsantos   
2023-11-15 18:34   
Something like this should fix this issue (I didn't have time to try it, will do asap, just providing a quick workaround just in case this is critical)

Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 12945)
+++ NoesisView.cs	(working copy)
@@ -1190,8 +1190,8 @@
 
     private void UpdateActions(float t)
     {
-        int x = 0;
-        int y = 0;
+        int x = int.MaxValue;
+        int y = int.MaxValue;
         bool trackedPos = false;
 
         if (_trackedPositionAction?.activeControl != null && _trackedRotationAction?.activeControl != null)
@@ -1216,9 +1216,10 @@
                 x = (int)(worldPos.X / worldPos.W);
                 y = (int)(worldPos.Y / worldPos.W);
 
-                MouseMove(x, y);
                 trackedPos = true;
             }
+
+            MouseMove(x, y);
         }
 
         if (_trackedTriggerAction != null)

(0008943)
peanut   
2023-11-15 20:34   
Hey, tested, works like a charm, thanks so much!
(0008969)
peanut   
2023-11-22 14:49   
Hello, I noticed this fix alters how slider behaves if you click and drag, then go off UI element into empty space.
Before the fix if you went off UI while dragging the Thumb the value froze on current position.
After the fix the value of slider jumps to 0.
I don't think the new behavior is desired regarding the slider.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3052 [NoesisGUI] Unity3D crash always 2024-01-30 15:19 2024-01-31 10:02
Reporter: cramos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: Calling NoesisView.KeyUp or NoesisView.KeyDown multiple times in the same frame erases the previous notifications
Description: We have something similar to this:

public NoesisView view;

private void Awake()
{
  view = GetComponent<NoesisView>();
}

public void SendInput()
{
  view.KeyUp(Key.GamepadAccept);
}

This works, but if in the same frame SendInput makes more than one call, for example:

public void SendInput()
{
  view.KeyUp(Key.GamepadAccept);
  view.KeyUp(Key.F24);
}

The UI will never receive the GamepadAccept event that previously worked.

If you switch the order:

public void SendInput()
{
  view.KeyUp(Key.F24);
  view.KeyUp(Key.GamepadAccept);
}

The UI will receive the GamepadAccept event.


PLEASE NOTE: This was tested with the version 3.2.2, but we're currently using a custom version from here ( https://www.noesisengine.com/bugs/view.php?id=2693#c8804 ) to prevent crashes.
Tags: C#, Unity
Steps To Reproduce: Call KeyUp or KeyDow more than one time in your input method and the UI will only handle the key that was sent in the last KeyUp/KeyDown.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1244 [NoesisGUI] Unity3D feature have not tried 2018-03-05 20:22 2024-01-30 12:39
Reporter: antsonthetree Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0rc3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Noesis should support ValidationRules per xaml
Description: As per title, Noesis should support the validation rule and binding as below:
https://msdn.microsoft.com/en-us/library/system.windows.controls.validationrule(v=vs.110).aspx
https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/how-to-implement-binding-validation?view=netframeworkdesktop-4.8
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3017 [NoesisGUI] Unreal major always 2024-01-17 02:01 2024-01-29 22:58
Reporter: saji8k Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unreal crashes when trying to use the Unreal 5.3 plugin on macOS
Description: I cannot run any of the samples in Samples.uproject in the Unreal Engine editor on macOS. When I hit the play button, UE 5.3.2 always crashes with the following error:

Fatal error: [File:./Runtime/Apple/MetalRHI/Private/MetalRenderPass.cpp] [Line: 173] Failed to restart render pass with descriptor: <MTLRenderPassDescriptorInternal: 0x6000007502d0> Color Attachment 0 texture = <AGXG15XFamilyTexture: 0x146762bb0> label = CAMetalLayer Display Drawable textureType = MTLTextureType2D pixelFormat = MTLPixelFormatBGRA8Unorm width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModeManaged hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeManaged MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageShaderWrite MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 0 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x600003a5cee0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionUnknown storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 1 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 2 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 3 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 4 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 5 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionLoad storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 0) yInvert = NO Color Attachment 6 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 1) yInvert = NO Color Attachment 7 texture = <null> level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearColor = (0 0 0 1) yInvert = NO Depth Attachment: texture = <AGXG15XFamilyTexture: 0x14bb05bb0> label = Noesis.RenderTarget.Onscreen_DS textureType = MTLTextureType2D pixelFormat = MTLPixelFormatDepth32Float_Stencil8 width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModePrivate hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 1 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 resolveFilter = MTLMultisampleDepthResolveFilterSample0 loadAction = MTLLoadActionDontCare storeAction = MTLStoreActionStore storeActionOptions = none clearDepth = 0 yInvert = NO Stencil Attachment: texture = <AGXG15XFamilyTexture: 0x14bb05bb0> label = Noesis.RenderTarget.Onscreen_DS textureType = MTLTextureType2D pixelFormat = MTLPixelFormatDepth32Float_Stencil8 width = 3456 height = 2018 depth = 1 arrayLength = 1 mipmapLevelCount = 1 sampleCount = 1 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModePrivate hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked usage = MTLTextureUsageShaderRead MTLTextureUsageRenderTarget MTLTextureUsagePixelFormatView shareable = 0 framebufferOnly = 0 purgeableState = MTLPurgeableStateNonVolatile swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] isCompressed = 1 parentTexture = <null> parentRelativeLevel = 0 parentRelativeSlice = 0 buffer = <null> bufferOffset = 0 bufferBytesPerRow = 0 iosurface = 0x0 iosurfacePlane = 0 allowGPUOptimizedContents = YES level = 0 slice = 0 depthPlane = 0 resolveTexture = <null> resolveLevel = 0 resolveSlice = 0 resolveDepthPlane = 0 loadAction = MTLLoadActionClear storeAction = MTLStoreActionStore storeActionOptions = none clearStencil = 0 stencilResolveFilter = MTLMultisampleStencilResolveFilterSample0 yInvert = NO visibilityResultBuffer = <AGXG15XFamilyBuffer: 0x14e53a9d0> label = <none> length = 65536 cpuCacheMode = MTLCPUCacheModeDefaultCache storageMode = MTLStorageModeShared hazardTrackingMode = MTLHazardTrackingModeTracked resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeShared MTLResourceHazardTrackingModeTracked purgeableState = MTLPurgeableStateNonVolatile renderTargetArrayLength = 1 renderTargetWidth = 0 renderTargetHeight = 0 rasterizationRateMap = <null> Custom Sample Positions: number of positions = 0

FMetalRenderPass::RestartRenderPass(mtlpp::RenderPassDescriptor) Address = 0x2f48a2acc (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRenderPass::ConditionalSwitchToRender() Address = 0x2f48a4aac (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRenderPass::DrawIndexedPrimitive(FMetalBuffer const&, unsigned int, unsigned int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) Address = 0x2f48a64e8 (filename not found) [in UnrealEditor-MetalRHI.dylib]
FMetalRHICommandContext::RHIDrawIndexedPrimitive(FRHIBuffer*, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) Address = 0x2f4843720 (filename not found) [in UnrealEditor-MetalRHI.dylib]
FRHICommand<FRHICommandDrawIndexedPrimitive, FRHICommandDrawIndexedPrimitiveString1468>::ExecuteAndDestruct(FRHICommandListBase&, FRHICommandListDebugContext&) Address = 0x16b51b93c [/Users/Shared/Epic Games/UE_5.3/Engine/Source/Runtime/RHI/Public/RHICommandList.h, line 1247] [in UnrealEditor-NoesisRuntime.dylib]
FRHICommandListBase::Execute(TRHIPipelineArray<IRHIComputeContext*>&, FRHICommandListBase::FPersistentState::FGPUStats*) Address = 0x100f7575c (filename not found) [in UnrealEditor-RHI.dylib]
UE::Core::Private::Function::TFunctionRefCaller<FRHICommandListImmediate::ExecuteAndReset(bool)::$_69, void ()>::Call(void*) Address = 0x100ffacd4 (filename not found) [in UnrealEditor-RHI.dylib]
TGraphTask<TFunctionGraphTaskImpl<void (), (ESubsequentsMode::Type)0>>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32>>&, ENamedThreads::Type, bool) Address = 0x100fd7c54 (filename not found) [in UnrealEditor-RHI.dylib]
FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x103cf7890 (filename not found) [in UnrealEditor-Core.dylib]
FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x103cf5b74 (filename not found) [in UnrealEditor-Core.dylib]
FRHIThread::Run() Address = 0x1019c70e8 (filename not found) [in UnrealEditor-RenderCore.dylib]
FRunnableThreadPThread::Run() Address = 0x103ea8e4c (filename not found) [in UnrealEditor-Core.dylib]
FRunnableThreadPThread::_ThreadProc(void*) Address = 0x103e09e50 (filename not found) [in UnrealEditor-Core.dylib]
Unknown() Address = 0x18beda034 (filename not found) [in libsystem_pthread.dylib]
Unknown() Address = 0x18bed4e3c (filename not found) [in libsystem_pthread.dylib]
Tags:
Steps To Reproduce: Open the Samples.uproject, click the play button in the Unreal Engine editor.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3016 [NoesisGUI] Unreal major always 2024-01-17 01:56 2024-01-29 22:37
Reporter: saji8k Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unreal 5.3 Plugin fails to build on macOS
Description: After downloading a fresh copy of NoesisGUI (NoesisGUI-UE5.3-3.2.2-Indie) to my Mac (M3, macOS 14.2.1, Xcode 15.2), I am unable to open the samples.uproject file with Unreal Engine 5.3.2.

First, Unreal gives me a warning dialog stating "Missing Sample Modules. The following modules are missing or built with a different engine version: DatabindingModule...NoesisEditor. Would you like to rebuild them now?" after clicking Yes to that, Unreal says "Error. Samples could not be compiled. Try rebuilding from source manually." and then closes.

I tried using the "Generate Xcode Project" from the context menu but that did nothing which seems to be an Unreal issue not Noesis. I was able to generate the project files from the terminal. I then tried to build the Samples project directly from Xcode but that failed as well. With the following three errors:
Code: Select all
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:35:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/component.cpp:11:12: error: reference to 'Component' is ambiguous
StatusCode Component::onAddedDirty(CoreContext* context)
           ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/Components.h:187:41: note: candidate found by name lookup is 'Component'
typedef ComponentRecord * Component;
                                        ^
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/include/rive/shapes/paint/shape_paint_mutator.hpp:6:7: note: candidate found by name lookup is 'rive::Component'
class Component;
      ^
Code: Select all
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:217:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/math/hit_test.cpp:21:8: error: redefinition of 'Point'
struct Point
       ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/MacTypes.h:538:8: note: previous definition is here
struct Point {
       ^
Code: Select all
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Intermediate/Build/Mac/arm64/UnrealGame/Development/NoesisRuntime/Module.NoesisRuntime.2.cpp:29:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisRiveControl.cpp:18:
In file included from /Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/Rive.cpp:238:
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/src/shapes/polygon.cpp:9:1: error: reference to 'Polygon' is ambiguous
Polygon::Polygon() {}
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/Headers/Quickdraw.h:267:41: note: candidate found by name lookup is 'Polygon'
typedef MacPolygon Polygon;
                                        ^
/Users/saji/Documents/Noesis/NoesisGUI-UE5.3-3.2.2-Indie/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Src/Packages/App/RiveBase/Src/rive/include/rive/shapes/polygon.hpp:9:7: note: candidate found by name lookup is 'rive::Polygon'
class Polygon : public PolygonBase
      ^
I am also able to run the Noesis Apple Native SDK Samples xcode project without these issues so I am not sure why they are coming up here. I guess Unreal brings in more Apple API headers than the Application framework.

To fix the above,
I changed Component to rive::Component in component.cpp.
I changed Point to RivePoint in hit_test.cpp
I changed Polygon to rive::Polygon in polygon.hpp

That finally fixed all the build errors and let me open the Samples.uproject in Unreal Engine on macOS.
Tags:
Steps To Reproduce: Try to open the Samples.uproject on macOS.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2918 [NoesisGUI] Unreal crash always 2023-12-05 03:04 2024-01-29 22:27
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Crash when resizing the Viewport with the D3D11 render back
Description: A check fails during window resizing when the D3D11 RHI is used.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WindowResizeFix.patch (644 bytes) 2023-12-05 03:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2040&type=bug
Notes
(0009000)
hcpizzi   
2023-12-05 03:05   
I've attached a patch that resolves the problem.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3044 [NoesisGUI] Studio minor have not tried 2024-01-24 16:51 2024-01-29 18:18
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when assigning Hold to keyframe
Description: As seen here: https://youtu.be/yBO8Ay-eK1c?feature=shared&t=1893
Crash dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: HoldEasing.dmp (304,345 bytes) 2024-01-24 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=2106&type=bug
HoldEasing-2.dmp (285,833 bytes) 2024-01-29 18:18
https://www.noesisengine.com/bugs/file_download.php?file_id=2119&type=bug
Notes
(0009138)
fllorens   
2024-01-29 18:18   
Also seen Here: https://youtu.be/dSlrFUtpvMY?feature=shared&t=2969


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2936 [NoesisGUI] Unity3D major always 2023-12-12 15:34 2024-01-29 18:06
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: World UI Responds to Mouse Events When Cursor Hidden and Locked
Description: Noesis World UI responds to mouse over events when the Unity cursor is hidden and locked. Unity places the cursor at the screen space center and locks it into place. I do not believe there a scenario in which an end user desires to have world UI elements respond to events when the cursor is both hidden and locked in position. Modifying the behavior to follow what NoesisView does would be more consistent.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisView.cs.patch (1,728 bytes) 2024-01-29 18:06
https://www.noesisengine.com/bugs/file_download.php?file_id=2118&type=bug
Notes
(0009137)
jsantos   
2024-01-29 18:06   
Patch attached.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2729 [NoesisGUI] Unity3D minor always 2023-10-16 16:53 2024-01-29 12:58
Reporter: jphyzic Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Can not bind to Point properties X and Y
Description: Binding to a property of type Noesis.Point pointing either to Point.X or Point.Y property fails with a warning
`[NOESIS/W] Can't solve PropertyPath: Type 'Point' does not contain a property named 'Y'` followed by a `Binding failed` error.

Note: I'm using Noesis in Unity and currently updating it from 3.1.4 to 3.2.2. The error was not present in 3.1.4. A similar problem is present in 3.1.4 for Rect class - only Width and Height properties may be bound (haven't checked it in 3.2.2), so I had to use a custom converter as a workaround.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008831)
jsantos   
2023-10-16 20:45   
You are right, Point is incorrectly exposing "x" and "y" properties (lowercase).

But I see that Rect class is properly exposing "X", "Y", "Width" and "Height", even in 3.1.4. Could you please paste your converter here?
(0008836)
jphyzic   
2023-10-17 08:15   
I'm sorry, I double-checked and indeed, X, Y, Width and Height properties of the Rect can be used with binding. However, other properties like IsEmpty, Top, Bottom, Location etc. still can not be bound to. It was some time ago, so I've confused the exact names of the properties that were causing problems. I've used a simple converter to extract the properties I needed:

public class RectPropertyConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == DependencyProperty.UnsetValue)
                return DependencyProperty.UnsetValue;

            var r = (Rect)value;
            return parameter switch
            {
                nameof(r.Width) => r.Width,
                nameof(r.Height) => r.Height,
                nameof(r.Left) => r.Left,
                nameof(r.Right) => r.Right,
                nameof(r.Top) => r.Top,
                nameof(r.Bottom) => r.Bottom,
                nameof(r.X) => r.X,
                nameof(r.Y) => r.Y,
                nameof(r.Location) => r.Location,
                nameof(r.Size) => r.Size,
                nameof(r.TopLeft) => r.TopLeft,
                nameof(r.TopRight) => r.TopRight,
                nameof(r.BottomLeft) => r.BottomLeft,
                nameof(r.BottomRight) => r.BottomRight,
                _ => r
            };
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
(0008837)
jsantos   
2023-10-17 11:56   
Thanks for this!
(0009134)
jsantos   
2024-01-29 12:58   
Properties renamed to "X" and "Y"
Added IsEmpty, Left, Top, Right, Bottom To Rect. Unfortunately, the other properties can't be added until the next reflection system.

Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2872 [NoesisGUI] Unity3D crash always 2023-11-22 15:58 2024-01-28 17:19
Reporter: Kirkules Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: macOS
Summary: Crash on Quit App
Description: macOS 14.1.1 (23B81)
2.3 GHz 8-Core Intel Core i9
Radeon Pro 560X 4 GB
Intel UHD Graphics 630 1536 MB
Unity Editor 2022.3.13f1

Cinemacine 3.0.0-pre.9


Identifier: com.adx.yo
Version: 1.5 (0)
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 501

Date/Time: 2023-11-22 09:49:49.3786 -0500
OS Version: macOS 14.1.1 (23B81)
Report Version: 12
Bridge OS Version: 8.1 (21P1069)
Anonymous UUID: A3260EF1-6951-0E71-A0FD-68F3CFE7C850

Sleep/Wake UUID: 375750F4-70B3-4253-835D-64535A93CB5A

Time Awake Since Boot: 32000 seconds
Time Since Wake: 4674 seconds

System Integrity Protection: enabled

Crashed Thread: 0 tid_103 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000132c741a0
Exception Codes: 0x0000000000000001, 0x0000000132c741a0

Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [4958]

VM Region Info: 0x132c741a0 is not in any region. Bytes after previous region: 5923233 Bytes before following region: 19447392
      REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
      VM_ALLOCATE 1326b8000-1326ce000 [ 88K] rw-/rwx SM=ZER
---> GAP OF 0x1832000 BYTES
      VM_ALLOCATE 133f00000-133f40000 [ 256K] ---/rwx SM=NUL

Thread 0 Crashed:: tid_103 Dispatch queue: com.apple.main-thread
0 ??? 0x132c741a0 ???
1 Noesis.dylib 0x120292408 0x11fec6000 + 3982344
2 Noesis.dylib 0x11fecff89 0x11fec6000 + 40841
3 Noesis.dylib 0x11fecacb9 0x11fec6000 + 19641
4 Noesis.dylib 0x11fecaa4e 0x11fec6000 + 19022
5 Noesis.dylib 0x11fec917d 0x11fec6000 + 12669
6 libsystem_c.dylib 0x7ff8066975b1 __cxa_finalize_ranges + 402
7 libsystem_c.dylib 0x7ff8066973d2 exit + 35
8 UnityPlayer.dylib 0x10c500936 DoQuit(bool) + 102
9 UnityPlayer.dylib 0x10c503130 -[PlayerAppDelegate UpdatePlayer] + 496
10 UnityPlayer.dylib 0x10c502f30 -[PlayerAppDelegate TimerTick] + 32
11 Foundation 0x7ff807880b84 __NSFireTimer + 67
12 CoreFoundation 0x7ff8068c466c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
13 CoreFoundation 0x7ff8068c421a __CFRunLoopDoTimer + 785
14 CoreFoundation 0x7ff8068c3e56 __CFRunLoopDoTimers + 285
15 CoreFoundation 0x7ff8068a8152 __CFRunLoopRun + 2104
16 CoreFoundation 0x7ff8068a7352 CFRunLoopRunSpecific + 557
17 HIToolbox 0x7ff8111499d9 RunCurrentEventLoopInMode + 292
18 HIToolbox 0x7ff8111497e6 ReceiveNextEventCommon + 665
19 HIToolbox 0x7ff811149531 _BlockUntilNextEventMatchingListInModeWithFilter + 66
20 AppKit 0x7ff809eb7885 _DPSNextEvent + 880
21 AppKit 0x7ff80a7ab348 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1304
22 AppKit 0x7ff809ea8dfa -[NSApplication run] + 603
23 AppKit 0x7ff809e7ce10 NSApplicationMain + 816
24 UnityPlayer.dylib 0x10c502891 PlayerMain(int, char const**) + 1265
25 dyld 0x7ff8064453a6 start + 1942
Tags:
Steps To Reproduce:
Run app
It loads a Start Match UI
Quit app
... crash
Additional Information:
Attached Files: StartMPGameViewModel.cs (4,343 bytes) 2023-11-22 19:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2028&type=bug
StartMPGameControl.xaml (11,217 bytes) 2023-11-22 19:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2029&type=bug
StartMPGameControl.xaml.cs (2,787 bytes) 2023-11-22 19:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2030&type=bug
DOANoesisCinemachine3.zip (741,271 bytes) 2023-11-22 20:27
https://www.noesisengine.com/bugs/file_download.php?file_id=2031&type=bug
Notes
(0008972)
jsantos   
2023-11-22 18:07   
What version of Noesis is this?

Is this reproducing in our examples on a clean project?
(0008973)
Kirkules   
2023-11-22 18:50   
3.2
I have not tried a clean project
(0008974)
jsantos   
2023-11-22 19:00   
3.2.2 ?
(0008975)
Kirkules   
2023-11-22 19:27   
Yes, 3.2.2, sorry.

Just confirmed happens in clean project with the same xaml files from original project.
I haven't tried a different xaml, so it could be something in the xaml I'm using.
I can delete the library folder and package up this clean project if you'd like, or just send my xaml files?
(0008976)
jsantos   
2023-11-22 19:36   
Could you please try with one of the examples included in the package? (HelloWorld, Buttons...)
(0008978)
Kirkules   
2023-11-22 19:47   
Buttons, Tic-Tac-Toe both worked, no crash in player after exit!
uploading my crashing files ...
(0008979)
jsantos   
2023-11-22 20:20   
Could you also create a minimal project reproducing this issue?
(0008980)
Kirkules   
2023-11-22 20:27   
Build for macOS, run
once StartMPGame xaml loads, Quit the app.
Crash!

Thank you
(0008981)
jsantos   
2023-11-22 20:31   
Thank you
(0008992)
Kirkules   
2023-12-01 14:16   
Is there anything I can do to fix this xaml so that it won't crash on exit every time?
(0008994)
jsantos   
2023-12-01 16:55   
Sorry I didn't have time to work on this yet.
(0009124)
jsantos   
2024-01-25 20:56   
(Last edited: 2024-01-25 20:56)
I am working on this now. I have just built a a standalone version of the game. When it launches I see the "Start New Game" screen, I click on the buttons and just close the app. No crashes.

Do I need to do something more specific?
(0009127)
Kirkules   
2024-01-26 02:16   
Perhaps try it a couple times
That was all I had to do, was just launch app (don't start)
Exit app.
Crash

I removed all of the styling and it stopped crashing.
(0009133)
jsantos   
2024-01-26 21:06   
Great, finally I am reproducing this. :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3047 [NoesisGUI] Studio minor have not tried 2024-01-25 18:55 2024-01-27 03:10
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when creating a RenderTransform translate keyframe
Description: As seen here: https://youtu.be/IWfoVuZF25w?feature=shared&t=2443
Dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TranslateCreateKeyframe.dmp (255,824 bytes) 2024-01-25 18:55
https://www.noesisengine.com/bugs/file_download.php?file_id=2111&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3049 [NoesisGUI] Inspector crash have not tried 2024-01-27 01:52 2024-01-27 01:53
Reporter: jsantos Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crashed the studio scrolling the properties panel
Description: I was scrolling the properties of a Path
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 20240127_014955.dmp (137,036 bytes) 2024-01-27 01:52
https://www.noesisengine.com/bugs/file_download.php?file_id=2114&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2704 [NoesisGUI] C# SDK minor always 2023-09-29 00:59 2024-01-26 20:16
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RaiseTextureChanged doesn't update image source with relative path
Description: Hi guys,
if I have a texture placed in a subfolder and reference it like this:
<Image Source="Images/Player.png" />

the texture reloading with RaiseTextureChanged doesn't work.
The workaround is to use the full path to the image file, e.g.:
<Image Source="/UI/Controls/Game/Map/Images/Player.png" />


Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008788)
jsantos   
2023-10-04 13:43   
Providers know nothing about relative paths. They always work in absolute paths (relatives to their own base root).

'RaiseTextureChanged' must provide the same path that was used when previously loading the resource.
(0008789)
ai_enabled   
2023-10-04 14:21   
Hi Jesus,
thank you for the clarification!
Right, I'm always calling RaiseTextureChanged with the absolute path (starting with the / slash) as I don't keep the original Uri provided by NoesisGUI (I convert it to the file path and use it to asynchronously load the texture, then build an absolute Uri from this file path).
I've expected that the absolute path will always work. Hmm.

So, the problem is that when I use the relative path (Source="Images/Player.png") I get this output:
LoadTexture: UI/Controls/Game/Map/Images/Player.png
RaiseTextureChanged: /UI/Controls/Game/Map/Images/Player.png
Apparently the path doesn't match due to the missing slash and the RaiseTextureChanged call has no effect.

For comparison, when I use the absolute path (Source="/UI/Controls/Game/Map/Images/Player.png") I get this output:
LoadTexture: /UI/Controls/Game/Map/Images/Player.png
RaiseTextureChanged: /UI/Controls/Game/Map/Images/Player.png
So it works properly.

I think it will be better if the TextureProvider provided an identical path in the both cases for the sake of consistency.

Regards!
(0008793)
jsantos   
2023-10-05 12:25   
You are totally right, this should be fixed.
(0009117)
jsantos   
2024-01-25 00:49   
(Last edited: 2024-01-25 00:51)
LoadTexture: UI/Controls/Game/Map/Images/Player.png
RaiseTextureChanged: /UI/Controls/Game/Map/Images/Player.png

I think this is happening because the XAML containing the texture has a URI that doesn't start with "/", for example: "Game/UI/Panel.xaml". If you change this to "/Game/UI/Panel.xaml" it should work. Relative texture URIs are just using the base URI of the XAML.

We normalize the URI as much as possible, but the first '/' is quite tricky to remove, because it changes the meaning of the path ("Game/UI/Panel.xaml" is a path relative to your provider, but "/Game/UI/Panel.xaml" may be interpreted as a global filesystem path.

Please, let me know if this makes sense to you.
(0009130)
ai_enabled   
2024-01-26 12:48   
Hi Jesús,
I thought about this but it doesn't make any sense to me regarding the TextureProvider—in particularly the part about "path relative to your provider".
As I see you're already resolving the path used in XAML: (as in my first example above)
XAML Source="Images/Player.png"
results in LoadTexture "UI/Controls/Game/Map/Images/Player.png" parameter
which is basically an absolute path (with missing "/" prefix). And my TextureProvider treat it as an absolute path.
Obviously I don't take into account the inner workings and can consider the situation only from my point of view so forgive me if I'm missing something. But I cannot simply comprehend why someone may treat this resolved path as a non-absolute path even if it's missing the "/" prefix.

I think it will be correct (and perfect) if TextureProvider always receives an absolute path in the LoadTexture method (and so the same absolute path is provided on RaiseTextureChanged). So, just add the "/" prefix and voila, the issue is resolved!

Regards!
(0009132)
jsantos   
2024-01-26 20:16   
(Last edited: 2024-01-26 20:16)
If the XAML is loaded with a 'prefix' (like for example /Game/UI/Panel.xaml) and it contains a "Images/Player.png", the texture provider should receive this uri = "/Game/UI/Images/Player.png". Could you verify this?

We can't add/remove automatically the prefix because it changes the meaning. Imagine I have my own provider with a root set at (/home/game/UI). If I receive a request for loading "Main.xaml" I will open the file at "/home/game/UI/Main.xaml" but if I receive the request "/Main.xaml" I should load (/Main.xaml, root of the filesystem, ignoring my root path).

Not sure if this is clear, I can train with a better example, but I first I want to understand if loading your XAMLs with prefix fixes the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2776 [NoesisGUI] Unity3D crash always 2023-10-26 15:02 2024-01-26 19:56
Reporter: Deineri Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Imagebrush rendertexture crash with D3X12
Description: Unity (and build) instantly crash when UI item is shown with rendertexture as its brush
Tested with several rendertexture settings

Unity version 2022.3.9f1 (tested on .11 also crashes)

D3X11 works as correctly
Tags: Unity URP
Steps To Reproduce: Add modified Noesis data binding example,
Change editor to D3X12
Run in editor
Additional Information:
Attached Files: RenderTexture.zip (1,389,647 bytes) 2023-10-26 15:02
https://www.noesisengine.com/bugs/file_download.php?file_id=2001&type=bug
Notes
(0009128)
jsantos   
2024-01-26 11:42   
The attached sample is missing a few scrips (one in the Camera, one in the light, two in the RenderTextureCamera)

Could you please add them?
(0009129)
jsantos   
2024-01-26 11:56   
Anyway, I am reproducing the crash, I don't need the scripts.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3037 [NoesisGUI] Studio minor have not tried 2024-01-23 15:43 2024-01-26 01:13
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Copy pasting a keyframe crashes the application
Description: As seen here: https://youtu.be/UvPFzHGwNyU?feature=shared&t=719
Dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CopyPasteKeyframe.dmp (276,421 bytes) 2024-01-23 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2099&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3034 [NoesisGUI] Studio crash always 2024-01-23 14:45 2024-01-26 01:12
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when Naming Two Layers the Same
Description: Noesis Studio crashes when two layers are named identically.

Image of occurence, and Dump attached.
Tags:
Steps To Reproduce: Repro Steps:

1) Create 2 layers in the layer hierarchy
2) Double-click on one of the layers, and give it a new name.
3) Double-click on the second other layer, and give it the exact same name.

Observe how a warning is thrown about not being able to register a Duplicate name, followed by an application crash.

Expected Results:
Either:
A) Studio throws a warning about not being able to support duplicate layer names, before reverting the conflicting layer name to it's original name.
B) Studio automatically renames the conflicting layer name to [layername]_1 (and continues to index up as each new duplicate is created).
Additional Information:
Attached Files: 20240123_083214.xaml (2,233 bytes) 2024-01-23 14:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2094&type=bug
20240123_083218.dmp (116,807 bytes) 2024-01-23 14:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2095&type=bug
DupeNameCrash.jpg (294,289 bytes) 2024-01-23 14:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2096&type=bug
Notes
(0009126)
dfranjic   
2024-01-26 01:12   
A toast will now be shown to notify the user that it's not possible to rename an object to the wanted name.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3025 [NoesisGUI] Studio crash always 2024-01-22 15:01 2024-01-26 01:11
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when Creating Render Transform Keyframe
Description: When attempting to create a Render Transform Keyframe within a Button's OnHover Visual state, Studio crashes when selecting the "Create Keyframe" option from the Render Transform menu.
Find Dump, and Video attached.
Tags:
Steps To Reproduce: Repro Steps:
1) Create a button template with a couple layers within.
2) In the Visual States panel, press the 'Record' animation button add a Render Transform animation to the MouseOver visual state by selecting a point in the timeline, clicking on the '3-dot' menu for the X-Axis adjustement, and select 'Create Keyframe'.

Observe the application crashing.

Note that this crash does not occur, if the transform is created by placing the playhead at the desired point on the timeline, and then simply editing the value with recording turned on.

Expected Result:
A keyframe for the Render Transform property appears on the timeline without crashing.
Additional Information:
Attached Files: 20240122_084738.dmp (139,033 bytes) 2024-01-22 15:01
https://www.noesisengine.com/bugs/file_download.php?file_id=2085&type=bug
TransformKeyframeCrash.mp4 (4,441,827 bytes) 2024-01-22 15:01
https://www.noesisengine.com/bugs/file_download.php?file_id=2086&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2995 [NoesisGUI] Studio minor always 2024-01-05 16:48 2024-01-26 00:05
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: RenderTransformOrigin not updating
Description: As seen here: https://youtu.be/_BVXMra08jo?feature=shared&t=753
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009070)
dfranjic   
2024-01-09 16:59   
This happens because RenderTransformOrigin property is under a FrameworkElement.RenderTransform property if it's a TransfromGroup.
The ElementTreeItem::FindProperty doesn't try to find "RenderTransformOrigin" under a "FrameworkElement.RenderTransform".
Because of that, the FindProperty returns a nullptr and thus a Property value cannot be refreshed after a UpdatePropertyCommand..

The TransformGroup::FindSubproperty implements a check for RenderTransformOrigin, but the request is never forwarded from ElementTreeItem::FindProperty to TransformGroup::FindSubproperty.
(0009094)
fllorens   
2024-01-19 17:02   
It keeps happening when the timeline is present, as seen here: https://youtu.be/hEsC0P0pmuA?feature=shared&t=101
(0009109)
fllorens   
2024-01-23 17:39   
(Last edited: 2024-01-23 17:40)
In the last video there was no problem at all. I think that we should be closing this.
(0009125)
dfranjic   
2024-01-26 00:05   
For me, it even updates when it's animated.. I am going to close this for the moment, but if you find it still happening, please do reopen it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2856 [NoesisGUI] C++ SDK minor always 2023-11-21 17:26 2024-01-25 20:29
Reporter: maherne Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: TextBlock and ShapingFull have different behaviour for handling empty InlineUIContainers
Description: InlineUIContainers, when empty, are stored as spaces in the TextBlock::TextProperty, but are entirely ignored in ShapingFull.

In ShapingFull::ShapeRuns, an InlineUIContainer with a child it is included in the const TextRun* runs parameter, with TextRun::Type Image. If an InlineUIContainer has no child then runs does not contain an entry for the InlineUIContainer.
Tags:
Steps To Reproduce: <TextBlock><InlineUIContainer/><InlineUIContainer><Button Width="100" Height="100"/></InlineUIContainer></TextBlock>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2965 [NoesisGUI] C++ SDK major always 2023-12-20 13:30 2024-01-25 20:28
Reporter: RevalSoft Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Bad font anti aliasing after upgrade from 3.1.2 to 3.2.2
Description: After jump from 3.1.2 to 3.2.2 font rendering have much lower quality, that more visible with Chinese symbols.

Detected in C++ SDK for Windows (x64) with OpenGL Backend.
In attachment Main.cpp from IntegrationGLUT example which can be used for reproduce.

Assets for reproduce (fonts / xaml):
https://mega.nz/file/645wha4I#4W7B6pqCK4N0SKpsAg1Zqqkdcq4Cc9xrhdeRHzjS_2k

Forum thread:
https://www.noesisengine.com/forums/viewtopic.php?t=3148
Tags: Fonts, Rendering, Text
Steps To Reproduce: 1. Put UI folder from assets in Bin output folder for both SDK (3.1.2 & 3.2.2)
2. Replace Main.cpp for IntegrationGLUT for both SDK
3. Complie both SDK IntegrationGLUT
4. Run both IntegrationGLUT for get illustrated different in rendering
Additional Information:
Attached Files: Screenshot 2023-12-20 090433.png (526,467 bytes) 2023-12-20 13:30
https://www.noesisengine.com/bugs/file_download.php?file_id=2066&type=bug
Main.cpp (7,145 bytes) 2023-12-20 13:30
https://www.noesisengine.com/bugs/file_download.php?file_id=2067&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2897 [NoesisGUI] Studio minor always 2023-11-27 17:11 2024-01-25 16:49
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when creating and selecting a colour resource inside a template
Description: As seen here: https://youtu.be/dbBgvtudFlg?feature=shared&t=1398
Tags:
Steps To Reproduce: 1. Create a template for a control
2. with an element selected open the brush editor
3. Create a color resource and click on it
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3011 [NoesisGUI] Studio minor always 2024-01-15 13:17 2024-01-25 16:00
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when using color resources in control templates
Description: as seen here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=2251
There's a crash when trying to select a color resource in a brush
Tags:
Steps To Reproduce: 1. Create a color resource+
2. Create a template for a control, e.g. a button
3. Edit the brush of an element inside and try to use the color resource in it
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3028 [NoesisGUI] Studio minor have not tried 2024-01-22 16:13 2024-01-25 16:00
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Clicking on RenderTransform tab crashed the Studio
Description: As seen here: https://youtu.be/k5WQa0cvw0Y?feature=shared&t=159
Attached the crash dump
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: RenderTransformTab.dmp (263,780 bytes) 2024-01-22 16:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2088&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2969 [NoesisGUI] Studio crash always 2023-12-21 19:50 2024-01-25 16:00
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash applying a Color resource inside a template
Description: 1. Add a button
2. Create a template
3. Go to the Background property and select a SolidColorBrush
4. Try to apply a Color resource defined in the page
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2710 [NoesisGUI] Unity3D major always 2023-10-03 21:17 2024-01-25 11:01
Reporter: samc Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Unable to localize ControlTemplate or DataTemplate that live in a ResourceDictionary
Description: We're using the localization extension:

https://www.noesisengine.com/docs/App.ApplicationLauncher._LocExtension.html

To localize our game. Some of the text we need to localize lives in Resource Dictionaries. This includes ControlTemplate and DataTemplate.

It's not clear how to use the localize extension to localize the text in these templates.

Reference thread: https://www.noesisengine.com/forums/viewtopic.php?p=16133#p16133
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: LocExtension.cs (9,422 bytes) 2023-10-05 10:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1971&type=bug
Notes
(0008791)
sfernandez   
2023-10-05 10:19   
The following patched file should fix the problem and allow using the Loc extension inside templates.
Could you give it a try?
(0008795)
samc   
2023-10-06 19:55   
Ah thank you, will give it a shot!

Is there any further direction on how to use this exactly? Do I add the LocExtension as a propety of the data trigger or is it on the resource dictionary itself?

thanks,
sam
(0008803)
sfernandez   
2023-10-11 10:26   
The Loc extension can be used normally in any element of the ControlTemplate or DataTemplate:
<ControlTemplate TargetType="Button">
  <StackPanel Background="Silver">
    <TextBlock Text="{noesis:Loc ButtonHeader}"/>
    <ContentPresenter/>
  </StackPanel>
</ControlTemplate>

Do you plan to use it in any other situations in the template?
(0008807)
samc   
2023-10-11 20:17   
Normally, in my user control, I need an additional line like this at the top:

[code]
  noesis:Loc.Resources="{Binding SelectedLanguage.Resources}"
[/code]

Is that not necessary for templates? Or does that belong in the resource dictionary somewhere? I just wasn't sure...
(0008808)
sfernandez   
2023-10-11 20:36   
When the template gets applied in a XAML, it will resolve the Loc extension against the Resources that are available in that XAML.
So you don't have to worry about the Loc.Resource in the dictionary, only in the XAML files where you are going to use the templates.
Will that be enough in your case?
(0008809)
samc   
2023-10-11 20:55   
Yes this should do - testing now! thanks!
(0008810)
samc   
2023-10-11 22:06   
totally works, you can close this. thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2585 [NoesisGUI] Unreal major always 2023-05-02 10:46 2024-01-25 01:40
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.3  
Platform: Any
Summary: Doesn't compile for PS5 with FreeType enabled
Description: If FreeType is enabled in an UE project using Noesis, the project won't compile for PS5 due to a conflict with a third party library 'HarfBuzz' used by UE.

The compiler throws several linker errors like this:

>prospero-lld : error : duplicate symbol: hb_buffer_t::clear_output()
8>>>> defined at HarfBuzz.cpp
8>>>> HarfBuzz.o:(hb_buffer_t::clear_output()) in archive ../../project/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Lib/ps5/Noesis.a
8>>>> defined at hb-buffer.cc

Adding the line "bCompileFreeType = false;" in the project's target file works as a temporary workaround.

Additional information about project and environment:
Visual Studio 2022
PS5 SDK version: 6.0.0
Engine version: 5.1.1
Noesis 3.2 UE5.1 plugin is integrated as a project plugin
Tags: C++, PS5, Unreal
Steps To Reproduce: 1. Add bCompileFreeType = true; to the target file of the project
2. Set the build config to 'Shipping Game PS5'
3. Try to compile
Additional Information:
Attached Files:
Notes
(0008466)
vmaurer   
2023-05-03 13:00   
Changed severity to major - as the suggested workaround has the side effect of UMG text not being rendered in a packaged build
(0009082)
vmaurer   
2024-01-12 14:08   
(Last edited: 2024-01-12 14:08)
It seems the issue got reintroduced in v. 3.2.2
Note: We also upgraded the engine to 5.3
(0009083)
jsantos   
2024-01-12 15:35   
This has been correctly solved in 3.2.3 (still not released), let us know if you want to try a preview of this version. Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3032 [NoesisGUI] C++ SDK minor always 2024-01-23 14:40 2024-01-25 01:30
Reporter: HateDread Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Natvis not working / PDBs missing
Description: As per thread https://www.noesisengine.com/forums/viewtopic.php?t=3193, the Natvis file/functionality is not working in a C++ build and may require the PDBs.
Tags:
Steps To Reproduce: 1. Set up some project using the publicly-available, non-PDB build
2. Attempt to debug the project
3. Observe the complete lack of symbols for Noesis types
Additional Information:
Attached Files: Noesis.natvis (4,403 bytes) 2024-01-25 01:12
https://www.noesisengine.com/bugs/file_download.php?file_id=2108&type=bug
Notes
(0009118)
jsantos   
2024-01-25 01:12   
Even with the PDB, it seems we are not linking the Natvis file (/NATVIS must be used as explained here https://learn.microsoft.com/en-us/cpp/build/reference/natvis-add-natvis-to-pdb?view=msvc-140).

I need to figure this out. Meanwhile I am attaching our latest natvis file here.
(0009119)
jsantos   
2024-01-25 01:30   
(Last edited: 2024-01-25 01:30)
https://developercommunity.visualstudio.com/t/c-library-natvis-not-loaded/136621

Additionally if you load a natvis embedded into a dll's pdb, the natvis only applies
when stepping through code in the dll (as opposed to when it's part of the project,
it will load for all stack frames).

So it seems, embedding the NatVis in the PDB is not going to work as we want and we are going to need to distribute the NatVis in the SDK.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2935 [NoesisGUI] Unity3D block always 2023-12-11 22:13 2024-01-24 21:33
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: NoesisWorldUI should not recreate or evict state on GameObject.Enable/Disable
Description: This isn't the correct behavior for Unity. In Unity, disabling a game object within the hierarchy should not mutate state -- or in this case, cause state to be evicted or reloaded. What would be more appropriate here is to just disable the renderer. I think what the developer is looking for is OnDestroy.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisWorldUI.cs (4,426 bytes) 2023-12-12 14:03
https://www.noesisengine.com/bugs/file_download.php?file_id=2058&type=bug
image.png (69,284 bytes) 2023-12-12 15:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2059&type=bug
NoesisWorldUI-2.cs (4,722 bytes) 2024-01-24 21:33
https://www.noesisengine.com/bugs/file_download.php?file_id=2107&type=bug
Notes
(0009007)
stonstad   
2023-12-11 22:14   
https://www.noesisengine.com/forums/viewtopic.php?p=16401#p16401
(0009008)
stonstad   
2023-12-11 22:38   
I am loading state in Awake(), and this is working well for me.
(0009014)
sfernandez   
2023-12-12 13:05   
Yes, it makes sense. We will study moving the loading/destruction to the Awake/OnDestroy methods, and leave Enable/Disable to just add/remove the loaded xaml to the View.
(0009017)
sfernandez   
2023-12-12 14:03   
I implemented it as mentioned above, could you try the attached script?
(0009018)
sfernandez   
2023-12-12 14:03   
(0009019)
stonstad   
2023-12-12 15:58   
Thank you Sergio. Very cool stuff. OK, I tried it out and it looks like View.Content? is null when FindContainer is called in Awake()

I believe the cause is that this particular game object is not active in the hierarchy when WorldSpaceUI.Awake() is initially called.
(0009021)
sfernandez   
2023-12-12 20:33   
This might be related to 0002586.
Could you try to add the following attribute to the NoesisWorldUI component to make sure it is executed after NoesisView loads its xaml:
[DefaultExecutionOrder(100)]
public class NoesisWorldUI : MonoBehaviour
{
 ...
}
(0009116)
jsantos   
2024-01-24 21:33   
Attaching latest version that is coming with 3.2.3


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2586 [NoesisGUI] Unity3D minor always 2023-05-02 18:54 2024-01-24 21:32
Reporter: Diego Chiodini Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Required execution order not embedded in source code
Description: In order to work correctly, the world UI needs to execute first NoesisView, then NoesisWorldUI.
In any case, where you create a hierarchy with the NoesisWorldUI element ('sphere' in the attached image) BEFORE a NoesisView ('Main Camera'), then there is a strong chance that the UI won't show.
This can be fixed by using the "Script execution order" panel but it's not intuitive for a Noesis novice user to understand why these things are related.
An alternative that would render the solution transparent to the user is to add a

 [DefaultExecutionOrder(n)] to NoesisView.cs
and a
 [DefaultExecutionOrder(n-1)] to NoesisWorldUI.cs
Tags: example, execution order, world ui
Steps To Reproduce: Please start with the example for World-UI.
Remove the execution order for NoesisView and NoesisWorldUI.
Recreate the hierarchy in the picture attached.
Run & observe.
Additional Information:
Attached Files: image.png (5,720 bytes) 2023-05-02 18:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1831&type=bug
Notes
(0008465)
jsantos   
2023-05-03 12:35   
Thank you for this great feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1684 [NoesisGUI] C++ SDK feature have not tried 2020-05-12 11:37 2024-01-24 15:28
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Support for BaseAlignment for Inline elements
Description: As described in this thread. https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1973#p11071

Support for BaseAlignment for inline elements.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files: Capture.PNG (96,186 bytes) 2021-11-25 12:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1544&type=bug
Capture-2.PNG (54,763 bytes) 2021-11-25 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1545&type=bug
Notes
(0007613)
nikobarli   
2021-11-25 09:35   
I think we also need this to support superscript/subscript text on TextBlock.
If there is workaround, please let us know.
(0007614)
sfernandez   
2021-11-25 11:12   
As a workaround you can use a InlineUIContainer containing a TextBlock with the appropriate size and margin:

  <TextBlock FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Run Text="Text with"/>
    <InlineUIContainer><TextBlock FontSize="12" Text="superscript" Margin="0,-12,0,0"/></InlineUIContainer>
    <Run Text="and"/>
    <InlineUIContainer><TextBlock FontSize="12" Text="subscript" Margin="0,4,0,0"/></InlineUIContainer>
  </TextBlock>

(0007615)
nikobarli   
2021-11-25 12:13   
Tried the workaround here. Seems to work for superscript but not the subscript. And somehow I need to add top margin of -20 to make the superscript looks nice.
Please see the attachment.
(0007616)
sfernandez   
2021-11-25 12:21   
Please try using a negative bottom margin for the subscript:

<TextBlock FontSize="12" Text="subscript" Margin="0,0,0,-10"/>

I have to check why our InlineUIContainers are not behaving like WPF regarding to the margins.
(0007618)
nikobarli   
2021-11-25 12:34   
Thanks. Negative bottom margin seems to work.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2849 [NoesisGUI] Unity3D crash always 2023-11-20 13:56 2024-01-24 11:28
Reporter: Feldruebe Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Unity crashes on xaml import
Description: Unity crashes on import/reload of the xaml (see steps to reproduce).

Unity: 2022.2.20f1
Tags:
Steps To Reproduce: <UserControl x:Class="Testing.Test"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Name="Root">
    <UserControl.Resources>
        <ControlTemplate x:Key="Template.CharacterViewSkillButtonControl" TargetType="ButtonBase">
            <Grid x:Name="TemplateRoot" RenderTransformOrigin="0.5,0.5">
                <Grid>
                    <ContentPresenter x:Name="PART_ContentPresenter"
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                    <Popup x:Name="TTT" IsOpen="True">
                        <TextBlock Text="ABCD" />
                    </Popup>
                </Grid>
            </Grid>
        </ControlTemplate>
        <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
            <Setter Property="Template" Value="{StaticResource Template.CharacterViewSkillButtonControl}" />
        </Style>
    </UserControl.Resources>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Content="Click me" Style="{StaticResource ButtonStyle1}" Click="Button_Click" />
        <TextBlock Text="{Binding Counter, ElementName=Root, StringFormat='Button clicked {0} time(s)'}"
                   Margin="5,0,0,0" VerticalAlignment="Center" />
    </StackPanel>
</UserControl>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3040 [NoesisGUI] Unity3D minor always 2024-01-23 17:10 2024-01-24 10:13
Reporter: Otter Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: InvalidOperationException: Native type 'TypeConverter' is not registered
Description: When using Type property in MarkupExtension:
[code]
public class SomeExtension : MarkupExtension
{
        public Type Type { get; set; }
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            // Do something with Type
        }
 }
[/code]

and using it like this:

[code]
<namespace:Some Type="{x:Type namespace:SomeType}"/>
[/code]

It throws: InvalidOperationException: Native type 'TypeConverter' is not registered
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TypePropertyBug.patch (870 bytes) 2024-01-23 17:48
https://www.noesisengine.com/bugs/file_download.php?file_id=2102&type=bug
Notes
(0009110)
sfernandez   
2024-01-23 17:48   
Could you please try with the following patch.
(0009112)
Otter   
2024-01-24 08:51   
The patch fixed the bug and now it works as expected, thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3007 [NoesisGUI] C++ SDK minor have not tried 2024-01-12 16:08 2024-01-23 19:08
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Issues with -Wno-maybe-uninitialized
Description: Trying to build the linux amd64 samples and failing on this option, gcc back to 9.5.0 doesn't have this option and searching the clang options, I've also tried clang 15-17, comes up blank.

Also, can you archive linux sources with tar so it preserves all the file/directory permissions properly, zip messes them up
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?t=3111
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3033 [NoesisGUI] C++ SDK minor always 2024-01-23 14:43 2024-01-23 18:46
Reporter: HateDread Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Event raises incorrect warning/error when trying to remove non-existent handler
Description: As per https://www.noesisengine.com/forums/viewtopic.php?p=16545#p16530, when attempting to remove a handler from an event, i.e. 'FrameworkElement*->SizeChanged() -= NameOfHandlerHere;', Noesis raises a warning/error:

Event 'SizeChanged' has no handlers registered

This is a behavioral divergence from WPF, which does not have any such emission.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2773 [NoesisGUI] VSCode minor always 2023-10-25 19:44 2024-01-23 14:10
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: LangServer: Incorrect autocompletion when using namespaces
Description: The following XAML declares the "local" namespace this way:

<Window x:Class="HelloWorld.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:HelloWorld"
        mc:Ignorable="d"
        FontFamily="./#Aero Matics"
        FontSize="36"
        Background="#FF124C7A"
        Title="NoesisGUI - Hello, World!">

Inside the XAML I have a custom image source (registered in the factory as "HelloWorld.RenderTargetBitmap")

<Image Width="100" Height="100">
    <Image.Source>
        <local:RenderTargetBitmap/>
    </Image.Source>
</Image>

The language server is incorrectly suggesting "<helloWorld:RenderTargetBitmap/>" when autocompleting
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2732 [NoesisGUI] Unity3D major always 2023-10-19 13:35 2024-01-23 13:59
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Default ComboBox Style cannot rendered.
Description: When I create a combobox in my xaml code then run my Unity app. I see a purple color on it and it doesn't work properly.

On Blend I can see Noesis Default style appied but in Unity I can't see it.
Tags:
Steps To Reproduce: Create a combobox add some items in it. Save and run unity.
Additional Information:
Attached Files: Screenshot 2023-10-19 131603.png (22,065 bytes) 2023-10-19 13:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1988&type=bug
Screenshot 2023-10-19 131619.png (60,566 bytes) 2023-10-19 13:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1989&type=bug
Notes
(0008852)
sfernandez   
2023-10-19 14:51   
Do you have a Theme set in the Application Resources (under NoesisGUI Settings)?
By default when our plugin is installed we set one of our theme dictionaries (NoesisTheme.DarkBlue.xaml), did you change that?
Do you have a local style (https://www.noesisengine.com/docs/Gui.Core.StylingTutorial.html#local-styles) set in the ComboBox without the BasedOn property?
(0008858)
jsantos   
2023-10-20 12:21   
Could you please share a XAML reproducing the issue?
(0008868)
aliagha.huseynli   
2023-10-24 09:29   
Sorry for the delayed reply.
I have changed already my style. But the answer to your question is yes. Theme set default I even opened a new proj to test this issue and I think v3.2.2 cannot apply the default ComboBox style(Noesis)
You should just create same, just try to open new project and add ComboBox there. Default Noesis theme won't apply to ComboBox
(0009097)
sfernandez   
2024-01-22 11:56   
I think the problem was that you were using a local style without setting the BasedOn (so it was defaulting to the internal pink template).
Should we close this ticket?
(0009105)
aliagha.huseynli   
2024-01-23 09:46   
Yes sir, you can close this ticket. thank you


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3018 [NoesisGUI] Unity3D minor always 2024-01-17 14:00 2024-01-23 13:56
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Collapsed element margins are used in spacing calculation
Description: The description captures pretty much everything.
Tags:
Steps To Reproduce: Create a stack panel with an icon on the left and some text, give the icon a right margin spacing of 20.
Set the visibility of the button to collapsed.

Spacing on the right of icon will be off.
Additional Information:
Attached Files:
Notes
(0009091)
sfernandez   
2024-01-18 12:48   
Hi,

When an element is Collapsed, all the space used by that element (including its Margin) won't count for the layout. This is how it is intended to work.
What is what you were expecting?

<StackPanel HorizontalAlignment="Left" Orientation="Horizontal">
  <Rectangle Width="80" Margin="0,0,20,0" Visibility="Collapsed"/>
  <Rectangle Width="100"/>
</StackPanel>


Previous stack will measure 100px because only the second rectangle is taken into account for the layout, as the first one is collapsed.
(0009092)
Josh Campbell   
2024-01-18 14:52   
I'm seeing some offset in a textblock that should be collapsed. In blend it renders with the correct spacing but in unity it appears like the margin does not collapse.
(0009108)
sfernandez   
2024-01-23 13:56   
Could you please attach the xaml corresponding to that piece for me to test?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2989 [NoesisGUI] Studio minor always 2024-01-03 12:56 2024-01-23 11:29
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Cursor Disappears over Input Fields
Description: The mouse cursor completely disappears when hovering over input fields in the colour picker. It makes it incredibly difficult to track the mouse.
Video attached.
Note that I had to take a video camera recording, because oddly, the arrow is visible in a screen recording �, just not to the human eye.
Tags:
Steps To Reproduce: Select any element on the canvas, and open the Colour Picker.
Hover the mouse over the Hex input field, and/or the 'Search Color' field.
Observe how the mouse pointer disappears.
Expected result: mouse cursor remains visible, as either an Arrow, or an I-Beam pointer.
Additional Information:
Attached Files: 20240103_064716_1.mp4 (3,921,956 bytes) 2024-01-03 12:56
https://www.noesisengine.com/bugs/file_download.php?file_id=2072&type=bug
Notes
(0009067)
sfernandez   
2024-01-09 13:33   
I'm not able to reproduce this situation, in my computer with latest 0.0.59 is showing the I-Beam cursor when hovering those text boxes.
Does it happen only with the Color Picker, or on any text box (Assets search box, Properties panel search box...)?
Is happening only when recording or always?
(0009107)
dstewart   
2024-01-23 11:21   
Hey Sergio, apologies on the delay - did not get a notification of your reply! I am now unable to repro this as well.
I tried with both the recording program (OBS) running, and closed, and the I-Beam now appears in all cases.
So, if we didn't touch anything in Studio, it's possible that either a Windows Update, or an Nvidia update may have resolved this. I think we can close this for now until/if it reappears.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3024 [NoesisGUI] Studio minor always 2024-01-22 13:59 2024-01-22 22:29
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Elements Panel Contents Jiggle When Panel Width Decreased
Description: When reducing the width of the Elements panel with categories expanded, certain subcategories contents jiggle around. See attached video.
Tags:
Steps To Reproduce: 1) Open any Noesis file.
2) Navigate to the Elements Tab.
3) Expand all Elements subcategories.
3) Reduce the width of the Elements panel by half.
Observe how the Collections subcategory in particular jiggles. (This sometimes also happens to the Miscellaneous subcategory on occasions)

Expected result. Elements in the subcategory maintain a fixed position.
Additional Information:
Attached Files: 2024-01-22 07-54-52.mp4 (893,319 bytes) 2024-01-22 13:59
https://www.noesisengine.com/bugs/file_download.php?file_id=2084&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3027 [NoesisGUI] Studio tweak N/A 2024-01-22 15:38 2024-01-22 22:28
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: [Suggestion] Convert Cursor Properties into Dropdown Menu
Description: Currently, applying a cursor to an element requires the designer to either know, or look up a reference of the available WPF cursor types, and manually type them in.
As (with the exception of the Custom cursor option) there is a set amount of Cursor options that can be applied, it makes sense for us to include the cursor types in a dropdown rather than as a text input field.

Attached, you will find two suggestions. A cheap 'text-only' version, and a slightly more involved 'plus' version which exceeds what Blend and VS offer, which would give the designer a visual preview of the different cursor types if they aren't familiar with what each looks like.
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files: CursorProperties.jpg (109,715 bytes) 2024-01-22 15:38
https://www.noesisengine.com/bugs/file_download.php?file_id=2087&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3029 [NoesisGUI] Studio minor have not tried 2024-01-22 16:22 2024-01-22 22:27
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when animating panel width
Description: As seen here: https://youtu.be/k5WQa0cvw0Y?feature=shared&t=912
Attached crash dump.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: AnimatingWidth.dmp (262,860 bytes) 2024-01-22 16:22
https://www.noesisengine.com/bugs/file_download.php?file_id=2089&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3030 [NoesisGUI] Studio minor have not tried 2024-01-22 16:26 2024-01-22 22:26
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when moving a selection of keyframes
Description: As shown in https://youtu.be/k5WQa0cvw0Y?feature=shared&t=1044
Crash dump attached
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MovingMultiSelectionKeyframes.dmp (262,596 bytes) 2024-01-22 16:26
https://www.noesisengine.com/bugs/file_download.php?file_id=2090&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2946 [NoesisGUI] C++ SDK major always 2023-12-14 13:52 2024-01-22 16:29
Reporter: S.Harelysh Platform:  
Assigned To: jsantos OS:  
Priority: high OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Linux
Summary: NoesisGUI allocates 4GB for system fonts
Description: NoesisGUI traverses the system (Ubuntu22.04) font directory ("/usr/share/fonts") and attempts to register fonts using subdirectory paths as font file paths. It turned out that the file Stream could not get the correct length for directories and returned (uint32_t)-1 (https://man7.org/linux/man-pages/man3/ftell.3p.html). So HB::BlobCreate() tries to allocate (uint32_t)-1 (4GB) memory.

Please consider revising the system font directory traversal to avoid using subdirectory paths as font file paths. Probably dirent::d_type can be checked (https://man7.org/linux/man-pages/man3/readdir.3.html).

frame and backtrace:
(lldb) frame variable
(Noesis::Stream *) stream = 0x000002003a4ccac0
(noesis_hb_blob_t *) blob = 0x00000000ffffffff
(const char *) base = 0x0000000000000000
(uint32_t) length = 4294967295
(lldb) bt
* thread #29, name = 'Main Thread', stop reason = step over
  * frame #0: libNoesis.so`Noesis::HB::BlobCreate(stream=0x000002003a4ccac0) at HarfBuzz.cpp:156:5
    frame #1: libNoesis.so`Noesis::EnumFontFaces(stream=<unavailable>, callback=0x00007fff9a7f6720)> const&) at VGLFontFace.cpp:29:32
    frame #2: libNoesis.so`Noesis::CachedFontProvider::RegisterFont(this=0x000002003a1f5000, folder=<unavailable>, filename=<unavailable>) at CachedFontProvider.cpp:41:22
    frame #3: libNoesis.so`Noesis::SystemFontProvider::ScanSystemFonts(this=0x000002003a1f5000, root="") at SystemFontProvider.cpp:321:33
Tags: Fonts
Steps To Reproduce: 1) It should be sub-folder inside inside the system fonts directory ("/usr/share/fonts"). Like "/usr/share/fonts/X11".
2) Call Noesis::GUI::SetFontFallbacks().
Additional Information:
Attached Files:
Notes
(0009030)
jsantos   
2023-12-15 10:36   
Interesting, thanks for the detailed report.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2756 [NoesisGUI] Unity3D major always 2023-10-24 09:53 2024-01-22 14:06
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: My Color style didn't work on Unity
Description: My style code:
<!--#region Colors-->
<SolidColorBrush x:Key="TextColor_FFFDEF" Color="#FFFDEF" />
<SolidColorBrush x:Key="TextColor_E1E1E1" Color="#E1E1E1" />
<SolidColorBrush x:Key="TextColor_D9D9D9" Color="#D9D9D9" />
<SolidColorBrush x:Key="TextColor_FFB629" Color="#FFB629" />
<SolidColorBrush x:Key="TextColor_86A5A1" Color="#86A5A1" />
<SolidColorBrush x:Key="TextColor_1FEFDB" Color="#1FEFDB" />
<SolidColorBrush x:Key="TextColor_B3AD88" Color="#B3AD88" />
<SolidColorBrush x:Key="TextColor_FFFFFF" Color="#FFFFFF" />
<SolidColorBrush x:Key="TextColor_1C9E92" Color="#1C9E92" />
<SolidColorBrush x:Key="TextColor_B3B3B3" Color="#B3B3B3" />
<SolidColorBrush x:Key="TextColor_D04545" Color="#D04545" />
<SolidColorBrush x:Key="TextColor_FFFDF1" Color="#FFFDF1" />
<SolidColorBrush x:Key="TextColor_9A9A9A" Color="#9A9A9A" />
<!--#endregion-->
<Style x:Key="Josefin_Regular_28" TargetType="{x:Type TextBlock}">
    <Setter Property="FontSize" Value="28" />
    <Setter Property="FontFamily" Value="Josefin Sans" />
    <Setter Property="FontWeight" Value="Regular" />
    <Setter Property="Width" Value="Auto" />
    <Setter Property="Height" Value="Auto" />
    <Setter Property="TextAlignment" Value="Center" />
    <Setter Property="LineHeight" Value="28" />
    <Setter Property="LineStackingStrategy" Value="BlockLineHeight" />
    <Setter Property="Foreground" Value="{StaticResource TextColor_E1E1E1}" />
    <Setter Property="Opacity" Value="100" />
    <Setter Property="HorizontalAlignment" Value="Left" />
    <Setter Property="VerticalAlignment" Value="Top" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, Path=IsMouseOver}" Value="True">
            <Setter Property="FontWeight" Value="Regular" />
        </DataTrigger>
    </Style.Triggers>
</Style>
Here is my view xaml code:
<TextBlock
    Foreground="{StaticResource TextColor_FFB629}"
    Style="{StaticResource Josefin_Regular_28}"
    Text="SHIP SELECTION" />
Tags:
Steps To Reproduce: To reproduce it please follow my codes I shared above.
Add styles and apply it textblock
every style will apply unless my yellow color. I tried different colors(Red, Black, Green, Blue etc) as well and they work properly, I didn't get why this piece of hex color didn't work.
Please be advised that I am able to see this color in WPF runtime. But I can't see in my Unity project
Additional Information:
Attached Files: Screenshot 2023-10-24 115116.png (18,789 bytes) 2023-10-24 09:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1996&type=bug
Screenshot 2023-10-24 115147.png (30,515 bytes) 2023-10-24 09:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1997&type=bug
Notes
(0008874)
aliagha.huseynli   
2023-10-24 13:07   
Also, this color is not seen on the Unity scene: #86A5A1
(0008875)
sfernandez   
2023-10-24 13:43   
I was able to identify the source of the problem, it is related to the Opacity property setter.
It has a value of 100 when the valid range should be from 0 to 1, and because of how our shaders interpret the alpha the color gets burned (becomes white).
We need to coerce that value to the valid range in order to avoid this problem, we will fix it.
(0008880)
aliagha.huseynli   
2023-10-25 08:58   
Thanks, great. Your solution helped me. ))


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2722 [NoesisGUI] C# SDK minor always 2023-10-11 12:44 2024-01-22 13:41
Reporter: utf8x Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: macOS
Summary: Noesis.GUI NuGet missing a natives folder for osx-arm64
Description: The Noesis.GUI NuGet package is missing a `runtimes/osx-arm64` folder resulting in the natives for this platform (`Noesis.dylib`) not being correctly copied on build
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2705 [NoesisGUI] Unreal major have not tried 2023-09-29 14:34 2024-01-22 12:01
Reporter: DavidJefferies Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Async NoesisXAML loading results in texture loading errors
Description: In Unreal we've moved the loading of the Xaml files from disk to be asynchronous. This is because we want to be able to load/unload them during gameplay - the motivation here is that unloading the Xaml means its textures get unloaded as well.

We initiate the async load like this:

StreamableManager.RequestAsyncLoad(XamlObject.ToSoftObjectPath(), FStreamableDelegate::CreateRaw(this, &FViewLoader::OnXamlLoaded),
                                    FStreamableManager::AsyncLoadHighPriority, false, false, "ViewLoader");

Then when its loaded we call LoadXaml on it

void FViewLoader::OnXamlLoaded()
{
    UNoesisXaml* XamlFile = XamlObject.Get();
    const Ptr<BaseComponent> Component = XamlFile->LoadXaml();
    ..
}
The issue we're having is sometimes the textures for the Xaml fail to load with the error message:

LogNoesis: Warning: Error loading '/Game;component/MyGame/Images/image_8.png', using fallback texture
Stepping through the code we can see that CreateTexture is failing because InTexture->GetResource() returns nullptr

Noesis::Ptr<Noesis::Texture> FNoesisRenderDevice::CreateTexture(UTexture* InTexture)
{
    if (!InTexture || !InTexture->GetResource())
        return nullptr;
..
}
The issue only occurs in a standalone build - never in editor - and seems to be timing related, sometimes it works fine sometimes it fails.

It looks like the textures haven't finished loading when CreateTexture tries to access them - the UTexture object exists but texture data doesn't yet

Any ideas what we can do to resolve it?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (355,295 bytes) 2023-10-20 12:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1993&type=bug
Notes
(0008842)
hcpizzi   
2023-10-18 13:11   
I'm having trouble reproducing this issue.

First, just calling LoadXaml doesn't trigger Texture creation. That happens in the render thread while drawing. So, in my async load callback, I'm creating a NoesisInstance and adding it to the viewport.

Even adding this, all textures are loaded by the time the callback is called. I'm using a few pretty large textures, and I've tried both referencing directly from the XAML and from a ResourceDictionary, and both ways work fine. There must be something else that is different.

Where do those CreateTexture calls come from in your case?

I'm doing my testing with Unreal 5.3 (GitHub 5.3.0-release) and Noesis 3.2.2.
(0008859)
DavidJefferies   
2023-10-20 12:42   
We have a custom ContentControl that loads the Xaml from disk in an OnPropertyChanged function.
The Xaml is added to the view by calling SetContent()
    UNoesisXaml* XamlFile = XamlObject.Get();
    const Ptr<BaseComponent> Component = XamlFile->LoadXaml();
    SetContent(Component);

The CreateTexture calls come from the Rendering Thread as you say - I've attached an image of the debugger breaking on the line that returns failure
We're currently on Unreal 5.3 and Noesis 3.2.1. We've applied a patch you provided to get those two versions to work together
We're upgrading to 3.2.2 in the next day or so - when that's finished I'll repro the issue again


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2906 [NoesisGUI] Unreal major always 2023-11-29 13:36 2024-01-22 11:56
Reporter: vogelLightword Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unreal controller navigation broken
Description: We use Noesis to navigate in menus and other navigable user interfaces. When having a list of buttons and trying to navigate through it, we can no longer use the gamepad to do it. Keyboard navigation works fine.
It feels like that problem appeared with the EnhancedInput-support for noesis, but that's a blind guess as we're not able to trace back long enough.
We're using unreal engine 5.2 and noesis plugin 3.2.2.
Reproducable also with the BrushShaders sample (we didn't try any other).

The code in which the problem seems to lie is in NoesisInstance.cpp line#1495.
Please let us know if we're missing anything, we just can't spot the problem on our side! It's a major problem for us that recently came to surface as we're working on implementing the ui and controller-support.
Thanks in advance!
Tags: controller, Navigation, Unreal
Steps To Reproduce: 1: Start unreal engine (5.2 f.e.) with the BrushShaders sample (or probably any other with native navigation)
2: use keyboard to navigate through interactable objects
3: use controller (d-pad or left thumbstick) to navigate through the interactable objects

Problem: Controller doesn't do anything as KeyToNoesisKey returns nullptr
Fix: Controller navigation works just as well native as keyboard navigation
Additional Information:
Attached Files: gamepad_setup.png (113,138 bytes) 2024-01-08 15:11
https://www.noesisengine.com/bugs/file_download.php?file_id=2073&type=bug
image.png (1,922,018 bytes) 2024-01-09 08:50
https://www.noesisengine.com/bugs/file_download.php?file_id=2075&type=bug
image-2.png (48,065 bytes) 2024-01-09 08:50
https://www.noesisengine.com/bugs/file_download.php?file_id=2076&type=bug
image-3.png (62,462 bytes) 2024-01-09 10:22
https://www.noesisengine.com/bugs/file_download.php?file_id=2077&type=bug
Notes
(0009055)
sfernandez   
2024-01-08 12:57   
In order to use the gamepad in Unreal you need to do a couple of things as explained in the Unreal tutorial: https://www.noesisengine.com/docs/Gui.Core.UnrealTutorial.html#gamepad

1. Go to the Level Blueprint and configure the Enhanced Input to use the Noesis Controller config (or any one other actions configuration you want to use).
2. Enable Actions in the View to use them as input.

I've just did that in the Materials sample you mentioned and the gamepad works as expected to move the focus between the buttons and click them. Could you please try that?
(0009056)
ttermeer-rcg   
2024-01-08 15:11   
Unlike vogelLightword , we are on Unreal 5.3.2. I tried the same Materials sample and also experience the same issue.
On Unreal 5.3, there is no "Add Player Mappable Config" in the Enhanced Input - those have been deprecated (see https://www.noesisengine.com/bugs/view.php?id=2919). So I used "Add Mapping Context" (see attached image)
As we are unable to make it work I thought this was the same issue as reported by vogelLightword but maybe it is different.
(0009057)
ttermeer-rcg   
2024-01-08 15:19   
My bad, I forgot the footnote where it says the "Enable Action" in the view blueprint!
It works now.
(0009058)
sfernandez   
2024-01-08 16:55   
Can we close this ticket then?
(0009064)
vogelLightword   
2024-01-09 08:50   
(Last edited: 2024-01-09 08:58)
In our code we can't make it work, no matter what we set up (unless we actually modify the KeyToNoesisKey function). We have added an appropriate mapping context and it's added in game, the action (up in this case) does fire but it doesn't navigate up. The view has actions enabled and navigating the buttons with the arrow-keys on keyboard works just fine. As you can see in my attached screenshot, the mapping-context is added, OneNoesisControllerMapping action Up is triggered by the gamepad but it just doesn't navigate to the above buttons (same for navigating down).
Second image shows the view-setup. We add the mapping context via AddMappingContext as well. We also set the keyboard focus on the new widget (where "w" is the new widget):
UWidgetBlueprintLibrary::SetInputMode_GameAndUIEx(this->PCRef, w, EMouseLockMode::LockAlways, false, true);
w->SetKeyboardFocus();
Can you see anything we might be doing wrong/differently; anything I'm missing?
(0009065)
vogelLightword   
2024-01-09 10:22   
Okay managed to find the issue. The path of input-actions that are responded to are hard-coded (inside UNoesisInstance::InitInstance()), we duplicated them and had them in a different folder (so inside the project, not inside the plugins folder). Removing the hard-coding helped.
Another issue that arose from this is that we want to react to the "up"-action (which also refers the up-arrow-key). If we now add the up-arrow to the mappingcontext (for action up) it works fine in that case but now navigation is triggered twice (so instead of moving up one button, we move up two buttons). I attached a screenshot of what I mean. It's a different issue though, navigation now works after we realized the inputAction-paths are hard-coded (might be important for the documentation?). Thanks for the help!
(0009066)
vogelLightword   
2024-01-09 13:06   
that is now fixed as well (not a bug), we had to disable keyboard in the view. Ticket can be closed, thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2892 [NoesisGUI] Unreal crash sometimes 2023-11-23 19:34 2024-01-22 11:55
Reporter: IISkullsII Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Rive XAML import crashes unreal
Description: I've created a .riv file via Rive, and if i try to import the XAML file, unreal crashes.

I also took another .riv and .xaml file from another bug report and aplied the changes of that report to the .xaml file, and that worked perfectly fine. (glitchriv.riv; glitch.xaml)
As im using the trial of Rive, i cant open the .riv and look into more differences, to figure out the issue by myself.

As im not aware of what further information might help, i would provide any further information by request.

Tags: Rive, Unreal
Steps To Reproduce: Import the file "Import_HeroInfoUI.xaml"
Additional Information:
Attached Files: heroinfoui.riv (830,147 bytes) 2023-11-23 19:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2032&type=bug
Import_HeroInfoUI.xaml (383 bytes) 2023-11-23 19:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2033&type=bug
glitchriv.riv (18,940 bytes) 2023-11-23 19:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2034&type=bug
glitch.xaml (232 bytes) 2023-11-23 19:34
https://www.noesisengine.com/bugs/file_download.php?file_id=2035&type=bug
Crash_Summary.log (2,536 bytes) 2023-11-24 09:02
https://www.noesisengine.com/bugs/file_download.php?file_id=2036&type=bug
Notes
(0008986)
IISkullsII   
2023-11-24 09:02   
I've done some more testing, and i figured, that by removing the texts in the .riv file, im then able to import the riv.
Otherwise the editor crashes if i try to import the file with the appended log:


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2990 [NoesisGUI] C# SDK minor always 2024-01-03 15:06 2024-01-22 11:47
Reporter: nadjibus Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: BindingExpression get evaluated like a normal Binding
Description: BindingExpression should not be evaluated. In WPF it does not, unlike Noesis.

Forum post for more info:
https://www.noesisengine.com/forums/viewtopic.php?t=3174
Tags:
Steps To Reproduce: Create an attached property of type BindingExpression. Set it's value on any object to a Binding (ap:AttachedProperty = "{Binding PathToBind}"). The Binding will be evaluated as soon as the control is loaded.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2863 [NoesisGUI] Unity3D crash always 2023-11-21 18:21 2024-01-22 11:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: BaseUICollection.Insert Crash
Description: StackPanel.Children.Insert(0, new TextBlock() { Text = "Helllo" }); causes a crash. Behavior is reproducible.

at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:BaseUICollection_Insert <0x00121>
      at Noesis.BaseUICollection:Insert <0x00122>
      at StellarConquest.Presentation.Unity.UI.BuildControl:ShowToolTipLegacy <0x02e52>
      at <>c__DisplayClass34_0:<CreateSubmenuBuildingIconLegacy>b__1 <0x00082>
      at Noesis.MouseEventArgs:InvokeHandler <0x001b3>
      at Noesis.EventManager:InvokeHandler <0x0020b>
      at Noesis.EventHandlerStore:RaiseRoutedEvent <0x0050a>
      at Noesis.EventHandlerStore:RaiseRoutedEvent <0x0012a>
      at <unknown> <0xffffffff>
      at Noesis.View:Noesis_View_Update <0x0010c>
      at Noesis.View:Update <0x00192>
      at NoesisView:UpdateInternal <0x0062a>
      at NoesisView:LateUpdate <0x000da>
      at System.Object:runtime_invoke_void__this__ <0x00187>
Tags:
Steps To Reproduce: Encl. log and crash dump.
Additional Information:
Attached Files: Crash_2023-11-21_171855132.zip (859,682 bytes) 2023-11-21 18:21
https://www.noesisengine.com/bugs/file_download.php?file_id=2023&type=bug
Notes
(0008966)
stonstad   
2023-11-21 18:25   
Calling Add() works without problem. It is just Insert(0, ...) which fails.
(0008983)
sfernandez   
2023-11-23 14:06   
I'm not able to reproduce it, could you provide an example in an empty project?
If not I will provide a debug library to get a bit more information from the crash dump.
(0008984)
stonstad   
2023-11-23 16:20   
Let’s go with the debug library route. This is actually easier for me.
(0008985)
sfernandez   
2023-11-23 16:46   
Here you are: https://drive.google.com/file/d/1IM4K2gpFUsRaRd_z7gR-m6Ttgi-U4TIA/view?usp=sharing
(0008987)
stonstad   
2023-11-28 19:04   
Hey Sergio -- I revisited this code and I changed all Adds to Insert(0, ...). Nothing crashes for me using the non-instrumented library. Other code and layouts might have slightly changed. I am sorry -- I don't have a great way to reproduce this behavior. The exact code which failed wasn't checked in, and once I got what I needed using .Add(), I moved on. The crash dump above is all that I have for this one.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2848 [NoesisGUI] Unity3D minor always 2023-11-18 01:16 2024-01-22 11:47
Reporter: peanut Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: ComboBox popup placement & animation
Description: There is a discrepancy between Blend and Unity when using ComboBox popup placement (Top) and animation (Slide).

In attached recording from unity you can see that it slides in wrong direction. In Blend it slides like it should, from bot to top.

https://www.dropbox.com/scl/fi/6ml9j7ruil9wz3xtjsflr/Main-Windows-Mac-Linux-Unity-2022-3-10f1-_DX11_-2023-11-17-12-14-57.mp4?rlkey=0w9fy1kr7fny8gqgnt58zapf9&dl=0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2847 [NoesisGUI] C# SDK minor always 2023-11-17 21:01 2024-01-22 11:47
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: ChangePropertyAction to change localized text
Description: We're trying to do this:

<b:ChangePropertyAction TargetName="Status" PropertyName="Text" Value="{noesis:Loc Text.FrontEnd.AddFriend.Label.InvalidFormat}"/>

but it seems to set the string to an empty string.

Ref: https://www.noesisengine.com/forums/viewtopic.php?t=3135
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2793 [NoesisGUI] Unity3D major always 2023-10-30 06:02 2024-01-22 11:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Noesis Unloading UserControls
Description: Noesis "holds onto" an instance of a user control during Unity Editor play, stop, and play cycles. On a subsequent play, "Unloaded" is called during playback. See details below, which stores the time the user control was made. You'll notice that an old instance is unloaded, noted by the following log line: UIStateMachine Unloaded 10/29/2023 11:56:13 PM. This is an instance from a previous playback run within the editor.

This user control is stored to a static singleton get accessor. However, it is released via UserControl.Instance = null during script OnDestroy.

Calling dispose on the instance within MonoBeahvior.OnDestroy causes a crash, documented here: https://www.noesisengine.com/bugs/view.php?id=2792

On subsequent runs (without an app domain unload), these errors occur: https://www.noesisengine.com/bugs/view.php?id=2791

It appears to be related.

Tags:
Steps To Reproduce: Noesis appears to be holding onto user control instances across AppDomain unload boundaries. Eventually, the control is released but it happens during subsequent playback.

1. App Domain Unload.
2. First Run

UIStateMachine CTOR 10/29/2023 11:56:13 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:.ctor () (at Assets/User Interface/UIStateMachine.cs:53)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:5711)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/NoesisGUI.cs:292)
NoesisXaml:Load () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisXaml.cs:17)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:535)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

UIStateMachine InitializeComponent 10/29/2023 11:56:13 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:InitializeComponent () (at Assets/User Interface/UIStateMachine.cs:130)
StellarConquest.Presentation.Unity.UI.UIStateMachine:.ctor () (at Assets/User Interface/UIStateMachine.cs:57)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:5711)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/NoesisGUI.cs:292)
NoesisXaml:Load () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisXaml.cs:17)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:535)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

UIStateMachine OnInitialized10/29/2023 11:56:13 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:OnInitialized (object,Noesis.EventArgs) (at Assets/User Interface/UIStateMachine.cs:71)
Noesis.EventArgs:InvokeHandler (System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/EventArgs.cs:51)
Noesis.EventManager:InvokeHandler (string,System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:660)
Noesis.EventHandlerStore:RaiseEvent (intptr,intptr,string,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:407)
Noesis.View:CreateCPtr (System.Type,bool&) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:562)
Noesis.BaseComponent:.ctor () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/BaseComponentExtend.cs:16)
Noesis.DispatcherObject:.ctor () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/DispatcherObject.cs:30)
Noesis.View:.ctor (System.Runtime.InteropServices.HandleRef) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:546)
Noesis.View:.ctor (Noesis.FrameworkElement) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:519)
NoesisView:CreateView (Noesis.FrameworkElement) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1850)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:543)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

1. No App Domain Unload.
2. Second Run

UIStateMachine CTOR 10/29/2023 11:56:54 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:.ctor () (at Assets/User Interface/UIStateMachine.cs:53)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:5711)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/NoesisGUI.cs:292)
NoesisXaml:Load () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisXaml.cs:17)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:535)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

UIStateMachine InitializeComponent 10/29/2023 11:56:54 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:InitializeComponent () (at Assets/User Interface/UIStateMachine.cs:130)
StellarConquest.Presentation.Unity.UI.UIStateMachine:.ctor () (at Assets/User Interface/UIStateMachine.cs:57)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:5711)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/NoesisGUI.cs:292)
NoesisXaml:Load () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisXaml.cs:17)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:535)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

UIStateMachine OnInitialized10/29/2023 11:56:54 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:OnInitialized (object,Noesis.EventArgs) (at Assets/User Interface/UIStateMachine.cs:71)
Noesis.EventArgs:InvokeHandler (System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/EventArgs.cs:51)
Noesis.EventManager:InvokeHandler (string,System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:660)
Noesis.EventHandlerStore:RaiseEvent (intptr,intptr,string,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:407)
Noesis.View:CreateCPtr (System.Type,bool&) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:562)
Noesis.BaseComponent:.ctor () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/BaseComponentExtend.cs:16)
Noesis.DispatcherObject:.ctor () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/DispatcherObject.cs:30)
Noesis.View:.ctor (System.Runtime.InteropServices.HandleRef) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:546)
Noesis.View:.ctor (Noesis.FrameworkElement) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:519)
NoesisView:CreateView (Noesis.FrameworkElement) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1850)
NoesisView:LoadXaml (bool) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:543)
NoesisView:OnEnable () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:723)

************** HERE
UIStateMachine Unloaded 10/29/2023 11:56:13 PM
UnityEngine.Debug:LogWarning (object)
StellarConquest.Presentation.Unity.UI.UIStateMachine:UIStateMachine_Unloaded (object,Noesis.RoutedEventArgs) (at Assets/User Interface/UIStateMachine.cs:65)
Noesis.RoutedEventArgs:InvokeHandler (System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/RoutedEventArgs.cs:50)
Noesis.EventManager:InvokeHandler (intptr,System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:578)
Noesis.EventHandlerStore:RaiseRoutedEvent (intptr,intptr,intptr,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:267)
Noesis.BaseComponent:Release (intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/BaseComponent.cs:62)
Noesis.Extend:ReleasePending () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:6110)
Noesis.Extend:Update () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Extend.cs:6119)
Noesis.View:Update (double) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1461)
NoesisView:LateUpdate () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1362)









Additional Information:
Attached Files:
Notes
(0008902)
sfernandez   
2023-10-30 11:47   
When you say that domain is not reloaded, is because you disabled "Reload Domain" in Project Settings > Editor > Enter Play Mode Settings?
I will do some experiments with those settings and come back to you.

Because Noesis does not have control over assembly reload, we are just hooked to DomainUnload to dispose all the native proxies corresponding to the managed objects.
(0008903)
stonstad   
2023-10-30 16:16   
Yes, that's right. I can confirm Reload domain is disabled. If I have a static singleton instance to a Noesis user control and the editor stops, should I call Dispose on it, or set it to null, or just leave it alone? If I leave it, the instance will persist between play cycles in the editor.
(0008906)
stonstad   
2023-10-30 16:29   
Given two Unity editor play cycles A, and B, if a user control created in A is disposed during playback of B, could this affect common XAML resources referenced by both A and B? Or is the memory isolated somehow?
(0008910)
stonstad   
2023-10-30 17:43   
This may be a non-issue and it is a candidate for closure. If you could just confirm memory isolation, and what the desired approach is for freeing a static singleton instance. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2792 [NoesisGUI] C# SDK crash always 2023-10-30 05:24 2024-01-22 11:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Noesis Crashes Unity during App Domain Unload
Description: After editing XAML and alt-tabbing back to the Unity editor, Noesis crashes the editor during app domain unload.


=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:BaseComponent_Release <0x000db>
      at Noesis.BaseComponent:Release <0x00082>
      at Noesis.Extend:ReleasePending <0x00212>
      at Noesis.Extend:Shutdown <0x00c82>
      at Noesis.Extend:OnDomainUnload <0x00082>
      at <Module>:invoke_void_object_EventArgs <0x002d4>
      at System.AppDomain:DoDomainUnload <0x00099>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Crash!!!
Tags:
Steps To Reproduce: ========== OUTPUTTING STACK TRACE ==================

0x00007FFE63B3DECB (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007FFE63B3DF25 (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007FFE63B3AC82 (Noesis) InertiaExpansionBehavior_DesiredExpansion_get
0x00007FFE63B30AD1 (Noesis) Boxed_Point_GetStaticType
0x00007FFE63B30CA4 (Noesis) Boxed_Point_GetStaticType
0x00007FFE639A2493 (Noesis) BaseComponent_GetStaticType
0x000001EC75C0C9DC (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x000001EC75C0C883 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Proxies\BaseComponent.cs:62] Noesis.BaseComponent:Release (intptr)
0x000001ECBEABE343 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:6110] Noesis.Extend:ReleasePending ()
0x000001EC71CF1B43 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:83] Noesis.Extend:Shutdown ()
0x000001EC71CF04D3 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.2\Runtime\API\Core\Extend.cs:36] Noesis.Extend:OnDomainUnload (object,System.EventArgs)
0x000001EC71CEF435 (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_object_EventArgs (object,System.EventArgs)
0x000001EC71CEF0FA (Mono JIT Code) System.AppDomain:DoDomainUnload ()
0x000001EC6621B658 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFE63064B6E (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\mini\mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007FFE62F9D204 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\object.c:3066] do_runtime_invoke
0x00007FFE62E746D5 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\appdomain.c:3485] mono_domain_try_unload
0x00007FFE6304DF1A (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\unity-utils.c:765] mono_unity_domain_unload
0x00007FF685524910 (Unity) UnloadDomain
0x00007FF68551487B (Unity) MonoManager::CreateAndSetChildDomain
0x00007FF6855133EC (Unity) MonoManager::BeginReloadAssembly
0x00007FF68551E4A8 (Unity) MonoManager::ReloadAssembly
0x00007FF6864BA3CD (Unity) Internal_ADB_Only_ReloadAllUsedAssemblies
0x00007FF68697091A (Unity) DomainReloadIfAllowed
0x00007FF68696EA6B (Unity) CompileAndDomainReload
0x00007FF68698D602 (Unity) RefreshInternalV2
0x00007FF68699585F (Unity) StopAssetImportingV2Internal
0x00007FF68698F2BC (Unity) RefreshV2
0x00007FF6869033F0 (Unity) AssetDatabase::Refresh
0x00007FF68618A31B (Unity) Application::AutoRefresh
0x00007FF68663B153 (Unity) ContainerWindow::ContainerWndProc
0x00007FFFCBFC8241 (USER32) DispatchMessageW
0x00007FFFCBFC7EFC (USER32) DispatchMessageW
0x00007FFFCBFD302D (USER32) GetClassLongW
0x00007FFFCDFD3434 (ntdll) KiUserCallbackDispatcher
0x00007FFFCB4214D4 (win32u) NtUserPeekMessage
0x00007FFFCBFD1B4F (USER32) PeekMessageW
0x00007FFFCBFD1A1C (USER32) PeekMessageW
0x00007FFE572FA084 (gameoverlayrenderer64) OverlayHookD3D3
0x00007FF6866174AD (Unity) MainMessageLoop
0x00007FF68661D170 (Unity) WinMain
0x00007FF687A003EE (Unity) __scrt_common_main_seh
0x00007FFFCBD2257D (KERNEL32) BaseThreadInitThunk
0x00007FFFCDF8AA78 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
Additional Information:
Attached Files: Crash_2023-10-29_202332678.zip (4,692,351 bytes) 2023-10-30 05:25
https://www.noesisengine.com/bugs/file_download.php?file_id=2008&type=bug
Notes
(0008898)
stonstad   
2023-10-30 05:39   
This is user error, I think. I was disposing a Noesis control -- and disposing it is not necessary.
(0008905)
stonstad   
2023-10-30 16:23   
The stack traces and dumps are in the zip file, if it is useful to you.
(0008909)
stonstad   
2023-10-30 17:43   
This behavior is now mitigated by NOT calling Dispose on the static singleton instance of a Noesis user control during Unity Editor OnDestroy. It is assigned null, and not disposed and this works fine. Can you confirm this is the correct approach? Otherwise, this is a candidate for closure.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2733 [NoesisGUI] Unity3D crash always 2023-10-19 13:45 2024-01-22 11:47
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Unity crashes when I use the custom style.
Description: Unity crashes when I use the custom style.
I tried to right-click on my ComboBox and create an edit style then tried to edit it.
Everything looks fine and it works on Blend WPF when I run on it.
But it crashes on the Unity side.

I fixed this issue after 2 hours and found out where is the wrong style issue in my style code.
It is so bad solution. Noesis must raise the error log instead of crashing my Unity project.
Because it is an uncatchable issue, at least hard to find out.
Tags:
Steps To Reproduce: Create a custom combobox style and also add items in ComboBox itself, and save and run Unity, When you hover combobox it works nice, when you press on the combobox it will crash.
Additional Information:
Attached Files: 2023-10-18 18-42-19.mp4 (2,856,797 bytes) 2023-10-19 13:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1990&type=bug
Notes
(0008851)
sfernandez   
2023-10-19 14:47   
Do you mean that using any custom style in a ComboBox will crash Unity?
Or is it using your specific custom style? Could you please attach it here?

You also mention that you found what was wrong and fixed the issue, could you please share those details?
(0008869)
aliagha.huseynli   
2023-10-24 09:43   
(Last edited: 2023-10-24 09:44)
Sorry for my delayed reply,
According to my experiment, I reason for that using custom WPF based style. I mean to create an editable for example button style I just come over on Blend -> Objects and Timeline-> right click on Button->Edit Template->Edit copy.
It creates a style that conflicts with Noesis's warnings on the Unity console. The weird thing is I can't see any difference, unlike console errors. For example, it says abc text couldn't find but I can see it on Unity runtime when I play it.
I fixed it using my previous project ComboBox style xaml code. And I modify it carefully, I don't wanna crash my project again. As I said, I don't know the reason, it is just crashing.
Btw in WPF side I could play/run my app, only Unity has the problem with showing me UI.
Anyway, it shouldn't be like that. It could be better. At least you can try every possibility Unity can crash cuz of Noesis.
I hope NoesisGUI will be better place and much more stable than now. I am waiting for that day.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2731 [NoesisGUI] Unity3D minor always 2023-10-18 10:31 2024-01-22 11:47
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Wrong TextBox visible cursor position and GetRangeBounds values when TextAlignment is not Left
Description: I'm trying to implement "droplets" for text selection and I've noticed some errors in TextBox behaviour when its TextAlignment property is set to Right or Center and the text ends with newline (that's important).

When TextAlignment is set to Right, visible cursor position is positioned outside of textBox, when TextAlignment is Center, cursor is not on center. If I try to use TextBox.GetRangeBounds to obtain last character bounds, I end up with invalid Rect instance, having negative Width and Height properties and negative infinity in several other properties.

It the text ends with any printable character, everything works fine.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2730 [NoesisGUI] Unity3D major always 2023-10-16 17:41 2024-01-22 11:47
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: AssociatedObject is null while detaching Behaviours
Description: This bug may be related to https://www.noesisengine.com/bugs/view.php?id=2498

I have a behaviour that subscribes on some event in OnAttached method and unsubscribes from it in OnDetaching. The implementation of AttachableObject has been changed in 3.2.0, and now Detach method is called when an AssociatedObject is destroyed. Problem is that when the object is destroyed, the AssociatedObject becomes null and I get a NullReferenceException in Detach method.

Note: I'm using a Noesis.dll library posted in https://www.noesisengine.com/bugs/view.php?id=2693
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2727 [NoesisGUI] Unity3D crash always 2023-10-13 18:25 2024-01-22 11:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Stack Overflow and Crash from Player and Unity Editor When Button Clicked
Description: Clicking certain buttons causes both the Unity Editor and built Player to crash due to a stack overflow. The only change is that we upgraded to 3.2.2.

I am not seeing a crash dump or error logs. When attached to the Editor process, I am getting this error:

(Filename: D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisUnity.cs Line: 363)
Exception thrown at 0x00007FFD65EEE96B (Noesis.dll) in Unity.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x00000066168D3FF0).
Unhandled exception at 0x00007FFD65EEE96B (Noesis.dll) in Unity.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x00000066168D3FF0).

I am enclosing a minidump w/ heap from Visual Studio (when attached to Unity editor).

Please let me know what else I can do to assist.



Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Unity.dmp (1,154,452 bytes) 2023-10-13 18:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1983&type=bug
image.png (64,173 bytes) 2023-10-13 18:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1984&type=bug
Unity2.dmp (1,154,688 bytes) 2023-10-13 18:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1985&type=bug
image-2.png (176,865 bytes) 2023-10-18 17:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1987&type=bug
Base Layer Blur With Secondary Blur-.png (2,564,528 bytes) 2023-10-28 18:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2005&type=bug
Base Layer Blur.png (1,661,300 bytes) 2023-10-28 18:13
https://www.noesisengine.com/bugs/file_download.php?file_id=2006&type=bug
Notes
(0008817)
stonstad   
2023-10-13 18:30   
Top of stack trace.
(0008818)
stonstad   
2023-10-13 18:32   
If I hit continue in the debugger, it starts reading invalid memory....

nhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Exception thrown at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.

Unhandled exception at 0x00007FFD65FAC121 (Noesis.dll) in Unity.exe: 0xC0000005: Access violation writing location 0x00000066168D0FF0.
(0008820)
stonstad   
2023-10-13 18:49   
I can't reliably reproduce it. Clicking on buttons *may* cause the stack overflow. Because it is not consistent and I'm having trouble isolating it to a single line of code. This is high priority for me because if I can't get the PC version to run OK, I have to roll back to 3.2.1, and that impacts XBOX work, which has the corrupt texture issue in 3.2.1.
(0008828)
sfernandez   
2023-10-16 18:27   
I'm not able to open the attached crash dumps. Could you open them fine in your Visual? Which version?
(0008829)
stonstad   
2023-10-16 18:33   
They came from VS 2022 17.5.2. I tried opening them and they don't work for me either. :( I kept getting VS errors when I tried to save dump. Assuming that is still broken, when retesting with PDBs help?
(0008835)
jsantos   
2023-10-16 20:58   
I don't think PDBs will help. Let's try again to generate dumps. because without them we are unable to get enough information.

I also assume you are not able to reproduce this in our Buttons example right?
(0008843)
stonstad   
2023-10-18 17:04   
Understood. I'm working to understand why VS isn't properly exporting dumps. That's correct -- the button sample does not reproduce this behavior.
(0008844)
jsantos   
2023-10-18 17:16   
Thanks!
(0008845)
stonstad   
2023-10-18 17:58   
(Last edited: 2023-10-18 17:58)
Still working on getting a dump exported. I keep getting an error message. I receive this error when I export from Unity and the built binary.... I'll try changing VS versions.
(0008850)
jsantos   
2023-10-19 11:07   
(Last edited: 2023-10-27 21:11)
Thanks for the dump!

@Sergio This is seems to be related to an infinite loop generating offscreen nodes for visual brushes

Noesis.dll!Noesis::RenderTreeHelper::AccumNode() Line 1541	C++
>	Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 482	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 523	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateVisualBrush() Line 800	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateVisualBrushes() Line 668	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateOffscreenNodes() Line 518	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateVisualBrush() Line 800	C++
Noesis.dll!Noesis::RenderTreeHelper::GenerateVisualBrushes() Line 668	C++

(0008860)
stonstad   
2023-10-20 21:07   
If you have any test assemblies you would like us to try, we are ready and available. Or if there is a proposed work-around, thank you!
(0008861)
stonstad   
2023-10-20 21:18   
Separately, we're seeing a hang when the game launches on Xbox and the build is release/master. We're thinking it could be related to the above behavior.

Thanks,
Shaun
(0008864)
stonstad   
2023-10-23 14:30   
Good afternoon. I'm just reaching out to see if there are any updates? Thank you.
(0008865)
jsantos   
2023-10-23 14:53   
Hello, we haven't had time to work on this
(0008877)
stonstad   
2023-10-24 20:14   
How can I help to provide the diagnostic data needed to resolve this behavior? This bug prevents us from upgrading to 3.2.2. 3.2.1 is showing texture issues on Xbox and we are stuck between two worlds. Thanks, Shaun.
(0008881)
jsantos   
2023-10-25 11:48   
Right now, we have all the needed information, we will come back as soon as possible.

By the way, 3.2.1 should work in Xbox is you disable "Linear" rendering.
(0008884)
stonstad   
2023-10-26 16:17   
Understood. Switching to gamma rendering creates a different set of problems for us. If the issue is related to visual brushes, perhaps I can arrange my XAML resourced dictionaries differently?
(0008891)
sfernandez   
2023-10-27 21:23   
Hi,

The crash is definitely related to VisualBrushes.
What is happening is that there is an element A with a VisualBrush that targets an element B with another VisualBrush that targets an ancestor of element A.
We should detect that circularity, show an error message and avoid any stack overflow.

In the meantime could you please check your usage of VisualBrushes and maybe disable them?
(0008892)
stonstad   
2023-10-28 00:43   
Your feedback as helpful. OK, the cause is the use of BackgroundEffectBehavior (shown in style below) in combination with a pop-up window. Usage is shown below the style.

<Style x:Key="BorderControlHero" TargetType="local:BorderControlHero">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:BorderControlHero">
                <Grid HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <!-- Bottom Shape -->
                    <Grid Grid.Row="1">
                        <Path x:Name="_BottomPanelBlur">
<!-- disabled to prevent stackoverflow behavior in 3.2.2 -->
                            <!--<b:Interaction.Behaviors>
                                <noesis:BackgroundEffectBehavior x:Name="_BottomPanelBackgroundEffect" Source="{Binding ElementName=_BackgroundBlurSource}">
                                    <BlurEffect Radius="{Binding Radius, Source={StaticResource BottomBlurRadius}}"/>
                                </noesis:BackgroundEffectBehavior>
                            </b:Interaction.Behaviors>-->
                        </Path>
                        <Path x:Name="_BottomPanelColor" Fill="{StaticResource DefaultUI.Brush.Bottom.Gradient}" Stroke="{StaticResource DefaultUI.Brush.Border}" Margin="0,-1,0,0" Opacity="0.5">
                            <Path.Effect>
                                <DropShadowEffect Direction="270" Opacity="0.365" BlurRadius="20" ShadowDepth="18"/>
                            </Path.Effect>
                        </Path>
                        <Path x:Name="_DecorLeft" Fill="{StaticResource DefaultUI.Brush.Decor.BottomLeft.Gradient}" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="-1,0,0,0" Opacity="0.7"/>
                        <Path x:Name="_DecorRight" Fill="{StaticResource DefaultUI.Brush.Decor.BottomRight.Gradient}" VerticalAlignment="Bottom" HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Opacity="0.7">
                            <Path.RenderTransform>
                                <ScaleTransform ScaleX="-1"/>
                            </Path.RenderTransform>
                        </Path>
                    </Grid>

                    <!-- Content -->
                    <ContentPresenter Grid.Row="1" ContentSource="Content" />

                    <!-- Top Shape -->
                    <Grid Grid.Row="0">
                        <Path x:Name="_TopPanelBlur" >
                            <!--<b:Interaction.Behaviors>
                                <noesis:BackgroundEffectBehavior x:Name="_TopPanelBackgroundEffect" Source="{Binding ElementName=_BackgroundBlurSource}">
                                    <BlurEffect Radius="{Binding Radius, Source={StaticResource TopBlurRadius}}"/>
                                </noesis:BackgroundEffectBehavior>
                            </b:Interaction.Behaviors>-->
                        </Path>
                        <Path x:Name="_TopPanelColor" Fill="{StaticResource DefaultUI.Brush.Top.Gradient}" Stroke="{StaticResource DefaultUI.Brush.Border}" Opacity="0.7">
                            <Path.Effect>
                                <DropShadowEffect Direction="270" Opacity="0.35" ShadowDepth="8" BlurRadius="20"/>
                            </Path.Effect>
                        </Path>
                        <Path x:Name="_DecorTop" Fill="{StaticResource DefaultUI.Brush.Decor.Gradient}" VerticalAlignment="Top"/>

                        <Ellipse x:Name="_LineHighlight" Fill="{StaticResource DefaultUI.Brush.Decor.Gradient}" Height="1" VerticalAlignment="Bottom" Width="500"/>
                    </Grid>


                    <!-- Top Content -->
                    <Grid Grid.Row="0" HorizontalAlignment="Center" Effect="{StaticResource DefaultUI.Effect.TextShadow}">
                        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0, 0, 0, -12">
                            <ContentControl Template="{StaticResource logo_template}" Background="{StaticResource DefaultUI.Brush.LogoBlueBg}" Width="45" Height="45"
                                  Visibility="{Binding LogoVisibility, RelativeSource={RelativeSource AncestorType={x:Type local:BorderControlHero}}}" />
                            <TextBlock x:Name="_LogoText" HorizontalAlignment="Center" FontFamily="{StaticResource TekoMedium}" FontSize="40"
                                               VerticalAlignment="Center" Foreground="White" noesis:Text.CharacterSpacing="90"
                                               Margin="18, 0, 0, 0"
                                               Text="{Binding TitleText, RelativeSource={RelativeSource AncestorType={x:Type local:BorderControlHero}}}"
                                               Visibility="{Binding TitleVisibility, RelativeSource={RelativeSource AncestorType={x:Type local:BorderControlHero}}}"
                                               />
                        </StackPanel>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

_BackgroundBlurSource is created as a top-level element within the game's visual tree:

<!-- game's top level visual tree -->

<Grid>
    <Grid x:Name="_BaseLayerBlurSource">
        <Grid x:Name="_BackgroundBlurSourceContainer" Opacity="0">
            <Border x:Name="_BackgroundBlurSource" Background="{DynamicResource DefaultUI.Brush.Background}"/>
        </Grid>
        <Grid x:Name="_BaseLayer"/>
    </Grid>
   <local:OverlayLayer x:Name="_OverlayLayer"/>
</Grid>

_BackgroundBlurSource and OverlayLayer exist within separate trees to prevent a stackoverflow. This works successfully in 3.2.1.
(0008893)
stonstad   
2023-10-28 17:43   
(Last edited: 2023-10-28 17:44)
It works in 3.2.1 all the time. And in 3.2.2 it works most of the time. When it fails, I am not seeing my code in the call stack. I am thinking this is a Noesis race condition.
(0008894)
stonstad   
2023-10-28 18:13   
- The camera renders to a texture which is saved in Resources["DefaultUI.Brush.Background"]
- This texture is then used as a background for _BackgroundBlurSource.
- The style shown uses _BackbroundBlurSource as a background for BackgroundEffectBehavior
- BaseLayerBlurSource is saved in Resource["BaseLayerBlurSource"]. This resource contains _BackgroundBlurSource and base layer U layers (_BaseLayer).
- Pop-up layers use BaseLayerBlurSource for their BackgroundEffectBehavior.

The visual result is as follows:
- Base Layer Blur.png. BackgroundEffectBehavior uses _BackgroundBlurSource.
- Base Layer Blur with Secondary Blur.png BackgroundEffectBehavior uses _BackgroundBlurSource _BaseLayerBlurSource.

It works well except in 3.2.2 sometimes.
(0008895)
stonstad   
2023-10-28 18:54   
(Last edited: 2023-10-28 19:14)
I don't really understand what is happening or why. I may not share more detail for a while until I can understand what is happening.
(0008899)
stonstad   
2023-10-30 06:11   
I can stop the crashes by disabling the visual brush used by BackgroundEffectBehavior.

After careful analysis I do not believe there is a cyclic dependency with visual brushes. With the functionality disabled, I'm now seeing other behaviors during subsequent rounds of editor playback. The strange behaviors are resolved by an app domain reload.

Some of these behaviors are documented in https://www.noesisengine.com/bugs/view.php?id=2791 and https://www.noesisengine.com/bugs/view.php?id=2793 Other behaviors are visual, such as UIs appearing differently based on the order of invocation within the visual tree.

If there truly was a cyclic dependency in visual brushes, wouldn't 3.2.1, by necessity, also experience a stack overflow?

I think the process for reloading app domains in Noesis changed.
(0008901)
sfernandez   
2023-10-30 11:40   
If this error was not happening always it might be related to your other posts 0002791 and 0002793.
It seems that some elements in the UI tree are not correctly released from play to play and are somehow mixed or misused in subsequent plays.
(0008908)
stonstad   
2023-10-30 17:41   
The previously described crash behavior is now resolved by changing the binding approach.

Previously, binding BackgroundEffectBehavior.Source was accomplished as follows:

// code-behind:

public static readonly DependencyProperty BlurLayerProperty = DependencyProperty.Register("BlurLayer", typeof(FrameworkElement), typeof(BorderControlTitle), new PropertyMetadata(null));

public FrameworkElement BlurLayer
{
   get { return (FrameworkElement)GetValue(BlurLayerProperty); }
   set { SetValue(BlurLayerProperty, value); }
}

public override void OnApplyTemplate()
{
   base.OnApplyTemplate();
   if (Template != null && BlurLayer != null)
   {
      BackgroundEffectBehavior _BottomPanelBackgroundEffect = GetTemplateChild("_BottomPanelBackgroundEffect") as BackgroundEffectBehavior;
      BackgroundEffectBehavior _TopPanelBackgroundEffect = GetTemplateChild("_TopPanelBackgroundEffect") as BackgroundEffectBehavior;

      if (_BottomPanelBackgroundEffect != null)
         _BottomPanelBackgroundEffect.Source = BlurLayer;
      if (_TopPanelBackgroundEffect != null)
         _TopPanelBackgroundEffect.Source = BlurLayer;
   }
}

Binding is now accomplished as follows:

public static readonly DependencyProperty BlurLayerProperty = DependencyProperty.Register("BlurLayer", typeof(FrameworkElement), typeof(BorderControlTitle), new PropertyMetadata(null));

public FrameworkElement BlurLayer
{
   get { return (FrameworkElement)GetValue(BlurLayerProperty); }
   set { SetValue(BlurLayerProperty, value); }
}

// XAML:
 <b:Interaction.Behaviors>
     <noesis:BackgroundEffectBehavior Source="{Binding RelativeSource={RelativeSource AncestorType=local:BorderControlHero}, Path=BlurLayer}">
         <BlurEffect Radius="{Binding Radius, Source={StaticResource BottomBlurRadius}}"/>
     </noesis:BackgroundEffectBehavior>
 </b:Interaction.Behaviors>

All error messages and crashes are now resolved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2690 [NoesisGUI] C++ SDK crash always 2023-09-14 20:56 2024-01-22 11:47
Reporter: dsrour Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: No reliable to recreate views with their contents
Description: More context on this forum post: https://www.noesisengine.com/forums/viewtopic.php?p=16044#p16044

We integrated Noesis into our engine. A bunch of systems make use of Noesis. At anytime, the engine's renderer could reset itself (due to modifying rendering settings or changing graphics API at runtime). When such a reset occurs, we would like to update all view's renderer. However this isn't possible.

In Renderer::Shutdown(), there's a specific comment saying:
// mInitialized is left to true because we only support one Init()/Shutdown() cycle for now

To work around this, when the renderer resets, we do the following for all views:
- GetContent() from a view
- Call Shutdown on the view's renderer and release the view
- Create a new view using the content from GetContent()

This works ok for some views, but for some others (for ex. ones that have animation content), we get an assert in TimeManager::AddMasterClock(...) where the target pointer member is NULL. Ignoring this assert leads to an eventual crash in

Attached are screenshots of the callstack when the assert occurs and when the crash occurs after ignoring the asserts.
Tags: C++
Steps To Reproduce: Create a view with some content and try to recreate it:
- GetContent() from a view
- Call Shutdown on the view's renderer and release the view
- Create a new view using the content from GetContent()

I'm unsure exactly why specific views are having issues with this specific logic. I assume it's related to the content having some animations since the assert occurs when transferring animations, which eventually leads to the assert in TimeManager::AddMasterClock(...). Please refer to the screenshots for callstacks.
Additional Information:
Attached Files: noesis_crash_assert.png (96,194 bytes) 2023-09-14 20:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1946&type=bug
noesis_assert_callstack.png (29,365 bytes) 2023-09-14 20:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1947&type=bug
Notes
(0009081)
jsantos   
2024-01-12 12:22   
(Last edited: 2024-01-12 12:22)
Revisions r13182 and r13185 implemented (experimental) support for grabbing RenderDoc captures. This requires hot-swapping the render context, the same scenario that you are trying to solve here. We are doing something similar, creating a new view with the same root content.

The code for recreating the view is this one (Window::RecreateView)

    mView = GUI::CreateView(this);
    mView->SetScale(mDisplay->GetScale());
    mView->SetTessellationMaxPixelError(TessellationMaxPixelError::HighQuality());
    mView->SetEmulateTouch(emulateTouch);
    mView->SetFlags(mViewFlags);
    mView->SetSize(mDisplay->GetClientWidth(), mDisplay->GetClientHeight());
    mView->Update(0.0f);

    mView->GetRenderer()->Init(context->GetDevice());

In my tests, animations are working fine. Could you please try this when 3.2.3 is released and in case you are still getting an assert attach a XAML here) ?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2347 [NoesisGUI] Unity3D minor always 2022-05-12 17:14 2024-01-22 11:47
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.2.4  
Platform: Any
Summary: MultiBinding shows error messages when removing target from the visual tree
Description: From forum post https://www.noesisengine.com/forums/viewtopic.php?t=2602
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008968)
sfernandez   
2023-11-21 20:46   
Reopening, it seems to be a regression on 3.2.2 version (or some earlier version).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2721 [NoesisGUI] Unity3D major always 2023-10-11 08:59 2024-01-22 11:46
Reporter: Otter Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: ToolTip is not affected by WorldSpaceUI scale
Description: When adding a tooltip to a WorldSpaceUI, with a scale less than 1, the tooltip does not get scaled properly.
Also when tooltip is visible the text is upside down.

The issue is not there when rendering to texture.

Forum: https://www.noesisengine.com/forums/viewtopic.php?t=3092
Tags:
Steps To Reproduce: Import Assets.zip

or

1. Create a button with ToolTip property
2. Add it to WorldSpaceUI and change the scale of WorldSpaceUI to 0.1
3. Hover over it (tooltip is not in the proper scale)
Additional Information:
Attached Files: Assets.zip (12,453 bytes) 2023-10-11 08:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1978&type=bug
ToolTip3.png (158,606 bytes) 2023-10-11 08:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1979&type=bug
ToolTip2.png (154,541 bytes) 2023-10-11 08:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1980&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2717 [NoesisGUI] C++ SDK major always 2023-10-10 06:36 2024-01-22 11:46
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Scroll position after the focus is lost and returned
Description: Scroll position broken after the focus is lost and returned.

Please see the attached video and steps to reproduce.

This is quite problem in our software. We'd appreciate if you can provide us with a patch to fix it. Thank you.
Tags:
Steps To Reproduce: 1. Apply the attached patch to Noesis sample (Hello-world)
2. Run HelloWorld sample
3. Click and select the bottom-most box
4. Scroll to the top
5. Click any other window to make the Noesis window lost focus
6. Click the top most box
// The content scrolls uncontrolled and a wrong box is made selected
Additional Information:
Attached Files: repro.mp4 (385,164 bytes) 2023-10-10 06:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1974&type=bug
ScrollProblem.patch (22,635 bytes) 2023-10-10 06:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1975&type=bug
Notes
(0008799)
sfernandez   
2023-10-10 13:01   
Are you still on 3.1.3 version?

The code that produces this situation is in FrameworkElement::OnGotFocus(), it is bringing into view the element when it gets focused.

In 3.2 we have implemented the FocusManager so we can now differentiate between logical and keyboard focus. I verified that in WPF when a window loses focus, the logical focus remains, so when returning the focus to the window, the logical focus does not change and that code in FrameworkElement is not exectuted. We will fix it for 3.2 version, but in 3.1 it will require a bit more of a hack, let me think about it to provide a patch.
(0008801)
nikobarli   
2023-10-11 01:46   
(Last edited: 2023-10-11 01:49)
Hi Sergio,

Thank you for looking into this issue immediately.

We plan to shift to 3.2.x in our next development branch. But the currently active branch is still using 3.1.3 (cannot upgrade because of risk management).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2716 [NoesisGUI] Unity3D minor always 2023-10-07 10:05 2024-01-22 11:46
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Text in TextBox is converted to float when bound to double
Description: When writing the exact number in the field, the text is truncated to 5 digits after the decimal point. Apparently, internally it is converted to float, and then back to the double property of the model.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2713 [NoesisGUI] Unity3D major always 2023-10-04 15:16 2024-01-22 11:46
Reporter: Otter Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: DropShadowEffect has artifacts when close to the edges of screen
Description: When moving to the edge of the screen drop shadow effect gets artifacts.

Forum: https://www.noesisengine.com/forums/viewtopic.php?t=3072
Tags:
Steps To Reproduce: Import Assets.zip

or

1. Create a button
2. Add DropShadowEffect
3. Rotate the camera so the shadow starts to touch edge of the screen
Additional Information:
Attached Files: Assets.zip (14,917 bytes) 2023-10-04 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1966&type=bug
DropShadowArtifactRightCorner.png (43,989 bytes) 2023-10-04 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1967&type=bug
DropShadowArtifactBottomLeft.png (38,712 bytes) 2023-10-04 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1968&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2711 [NoesisGUI] C# SDK crash always 2023-10-04 11:48 2024-01-22 11:46
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Application crash with AccessViolationException
Description: I'm using Unity 2021.3.21f1 with Noesis 3.1.4. At random intervals my application crashes (call stack below). I was able to reliably cause a crash by creating MultiBinding objects in a cycle - then releasing these objects after some time causes a crash. This error may be related to https://www.noesisengine.com/bugs/view.php?id=2693, although the Noesis version there is 3.2.1, but the sympthoms are the same. I've created a reproduction project on https://github.com/ChernyshevDS/NoesisCrashRepro, hope it'll be useful.

0x000001BAD22D008A (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x000001BACF4AFF1B (Mono JIT Code) Noesis.BaseComponent:Release (intptr)
0x000001BAFB6D593B (Mono JIT Code) Noesis.Extend:ReleasePending ()
0x000001BAFB6D4CFB (Mono JIT Code) Noesis.Extend:Update ()
0x000001BAFB6D4BB3 (Mono JIT Code) Noesis.View:Update (double)
0x000001BAFB6C7A9B (Mono JIT Code) NoesisView:ExternalUpdateInternal ()
0x000001BAFB6C78FB (Mono JIT Code) NoesisView:LateUpdate ()
0x000001BA648FEF08 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFF90B0FEB4 (mono-2.0-bdwgc) mono_jit_set_domain
0x00007FFF90A4E764 (mono-2.0-bdwgc) mono_object_get_virtual_method
0x00007FFF90A4E8FC (mono-2.0-bdwgc) mono_runtime_invoke

I was able to get a crash dump with the following details:

CONTEXT: (.ecxr)
rax=00007fff8e1ea860 rbx=0000000000000000 rcx=000001bad3987918
rdx=00000075e0d2e8d0 rsi=000001bad3987918 rdi=000001ba1d26cf90
rip=0000000000007463 rsp=00000075e0d2e8e8 rbp=00000075e0d2e980
 r8=0000000000000000 r9=0000000000000001 r10=0000000000008000
r11=00007fff90917200 r12=00000075e0d2f030 r13=00000075e0d2f250
r14=000001ba1cd32d20 r15=000001bacc8cbde0
iopl=0 nv up ei pl nz na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
00000000`00007463 ?? ???

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 0000000000007463
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000008
   Parameter[1]: 0000000000007463
Attempt to execute non-executable address 0000000000007463
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2700 [NoesisGUI] C++ SDK block always 2023-09-26 04:24 2024-01-22 11:46
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Width of element inside Virtualizing Stack Panel is not resized correctly
Description: Width of element inside Virtualizing Stack Panel is not resized correctly.

Please see the attached video that compares the behavior of Noesis compared to WPF.

# Please note that the video shows our test programs, but we also prepared the a demo patch for Noesis sample programs as described in the "Steps To Reproduce" below.
Tags:
Steps To Reproduce: Please apply the attached patch to NoesisGUI sample codes.
Then run and compare the behavior of HelloWorld and HelloWorld-blend.

Additional Information:
Attached Files: bug.mp4 (295,358 bytes) 2023-09-26 04:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1953&type=bug
VirtualizingStackPanel.patch (24,581 bytes) 2023-09-26 04:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1954&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2698 [NoesisGUI] Unity3D minor random 2023-09-25 07:39 2024-01-22 11:46
Reporter: ckfinite Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: MediaState-related issue causes editor CTD while idle
Description: Had a weird one - a C# recompilation caused the editor to CTD with the following error


(Filename: Packages/NoesisGUI/Runtime/NoesisUnity.cs Line: 360)

[NOESIS/E] Component 'Converter<NoesisApp.MediaState> ()' already registered
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at Packages/NoesisGUI/Runtime/NoesisUnity.cs:360)
Noesis.Extend:RegisterNativeType (System.Type,bool) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:1313)
Noesis.Extend:EnsureNativeType (System.Type,bool) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:1823)
Noesis.Extend:EnsureNativeType (System.Type) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:1815)
Noesis.Extend:Box (object) (at Packages/NoesisGUI/Runtime/API/Core/ExtendBoxing.cs:125)
Noesis.Extend:GetInstanceHandle (object) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6017)
Noesis.PropertyMetadata:SetDefaultValueHelper (object) (at Packages/NoesisGUI/Runtime/API/Proxies/PropertyMetadata.cs:53)
Noesis.PropertyMetadata:set_DefaultValue (object) (at Packages/NoesisGUI/Runtime/API/Proxies/PropertyMetadata.cs:36)
Noesis.FrameworkPropertyMetadata:.ctor (object) (at Packages/NoesisGUI/Runtime/API/Proxies/FrameworkPropertyMetadataExtend.cs:29)
NoesisApp.MediaElement:.cctor () (at Packages/NoesisGUI/Runtime/API/MediaElement/MediaElement.cs:116)
NoesisUnity:Init () (at Packages/NoesisGUI/Runtime/NoesisUnity.cs:71)
NoesisLangServer/<>c:<.cctor>b__0_0 () (at Packages/NoesisGUI/Editor/NoesisLangServer.cs:14)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

(Filename: Packages/NoesisGUI/Runtime/NoesisUnity.cs Line: 360)


=================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:PropertyMetadata_SetDefaultValueHelper <0x0011b>
      at Noesis.PropertyMetadata:SetDefaultValueHelper <0x0011a>
      at Noesis.PropertyMetadata:set_DefaultValue <0x0008a>
      at Noesis.FrameworkPropertyMetadata:.ctor <0x000ca>
      at NoesisApp.MediaElement:.cctor <0x002b2>
      at System.Object:runtime_invoke_void <0x00184>
      at <unknown> <0xffffffff>
      at NoesisUnity:Init <0x007ca>
      at <>c:<.cctor>b__0_0 <0x000a2>
      at UnityEditor.EditorApplication:Internal_CallUpdateFunctions <0x00327>
      at System.Object:runtime_invoke_void <0x00184>
=================================================================
Received signal SIGSEGV
Obtained 2 stack frames
RtlLookupFunctionEntry returned NULL function. Aborting stack walk.
<Missing stacktrace information>

I've gotten used to editor CTDs while editing XAML using the VSCode extension, but C# is a new one. Haven't seen this one before and can't reproduce it, so don't have a good idea of what actually caused this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008765)
sfernandez   
2023-09-25 11:13   
Could you please attach the crash dump and editor log?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2685 [NoesisGUI] Unity3D crash always 2023-09-08 23:22 2024-01-22 11:46
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: When special characters for keybindings unity crashes
Description: Alphabetical characters and numeric characters work but special characters like ! cause a unity crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008714)
sfernandez   
2023-09-11 11:35   
Can you attach the XAML you use for the key binding?
Do you get any error message when the XAML is imported?
(0008776)
sfernandez   
2023-09-27 11:30   
Any chance to get a crash dump for this? I wasn't able to reproduce the issue.
(0008783)
Josh Campbell   
2023-09-27 19:01   
(Last edited: 2023-09-27 19:02)
This is the info the dev provided me with. Please let me know what else we can get for you, I can try to get a crash log later this week.


"So in the keyboard it was that"

<Grid Width="740" >
        <Grid.InputBindings>
            <KeyBinding Command="{Binding ExclamationPointCommandBinding}" Key="Oem1" />
        </Grid.InputBindings>
.... (edited)

It broke for other keys too... pretty much every Oem and some button between caps, shift and ctrl but can't remember which one

and was not able to use any modifier but binding with all letters was ok

<KeyBinding Command="{Binding ExclamationPointCommandBinding}" Key="1" Modifiers="Shift" />


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2679 [NoesisGUI] C# SDK crash always 2023-09-06 02:47 2024-01-22 11:46
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Crashes after NoesisGUI reloading
Description: Hi guys,
so a property in a ViewModel returns an array of strings. It's then bound to ItemsControl to display the list of text entries.
There is no crash if it's returning "new string[0]" each time.
There is a 100% crash if it's returning a cached/singleton instance instead (such as Array.Empty<string>()) — but this crash happens only after NoesisGUI was reloaded (which in our case means a call to GUI.UnregisterNativeTypes() as we cannot shutdown NoesisGUI completely, if you remember).

I've debugged it and clearly the root of the issue is the _weakExtends in NoesisExtend.cs which stores the weak references to the outdated pointers after GUI.UnregisterNativeTypes(). After checking 0002424 it seems this is a relatively new code so some issues are expected...

I've put a very simple workaround for it — I'm doing _weakExtends = new(); in the end of UnregisterNativeTypes() method (inside ClearTables() method actually, which I think makes sense).

This workaround has resolved the issue as I no longer get the crash in the scenario which I've described above. The property is properly returned and data binding properly works.

However, now NoesisGUI simply crashes with MemoryAccessViolation in UnregisterNativeTypes() after the second reloading.
The exception stack trace is as following:
   at Noesis.NoesisGUI_PINVOKE.BaseComponent_Release(IntPtr jarg1)
   at Noesis.BaseComponent.Release(IntPtr cPtr)
   at Noesis.Extend.ReleasePending()
   at Noesis.Extend.Shutdown()
   at Noesis.Extend.UnregisterNativeTypes()
  
So there is some component which is released incorrectly. Alas I cannot debug it further so please help.
Please let me know if you need a debug build to investigate this issue.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008703)
ai_enabled   
2023-09-06 03:16   
(Last edited: 2023-09-06 03:32)
Ok, I've found a fix for the second crash as well.

My first fix is not perfect as assigning a new instance of the ConditionalWeakTable _weakExtends = new(); still keeps the referenced ExtendNotifier instances alive. They will eventually reach GC finalization and ask NoesisGUI to release itself (which 100% happens during the second reloading which always results in a crash; BTW, I've tried and it's NOT helpful to call GC.Collect() + GC.WaitForPendingFinalizers() to force collecting these references right after _weakExtends = new(); — some entries still remained in heap memory).

Apparently I just need to ensure that no ExtendNotifier instances will ever invoke its finalizer if its parent _weakExtends is replaced with a new instance.
Obviously it would be great if I can simply foreach references stored in _weakExtends and release each of them manually before creating a new instance of _weakExtends table. However ConditionalWeakTable doesn't support enumeration on .NET Framework (this is new API added in .NET Standard 2.1).

The second idea was to store a WeakReference on the current _weakExtends... but apparently it's NOT supported — the WeakReference always replies NOT alive no matter whether _weakExtends is alive or not. (Ha-ha, so there is simply too much weakness for .NET to handle!)

The third idea is simply to store the current version number of the _weakExtends instance:
private static byte _latestWeakStorageId;

So when I create a new _weakExtends instance in the ClearTables() method I simply increment the version number.
I've put a simple check in ExtendNotifier finalizer:
if (currentWeakStorageId != _latestWeakStorageId)
{
    // storage for this weak reference is destroyed, no need to release
    return;
}

(of course, the field currentWeakStorageId in ExtendNotifier is assigned in its constructor)

And it works! No more crashes.
I think the only downside is that there are still some pointers (ExtendNotifier) stored in NoesisGUI native library which will be never released. (again, we cannot simply enumerate _weakExtends to release them all) But probably it's harmless and will not result in any major leak.

Regards!
(0008704)
sfernandez   
2023-09-06 12:19   
Thanks for the detailed info, I'm going to analyze it and see what would be the best option to fix this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2638 [NoesisGUI] Unity3D crash always 2023-07-03 10:19 2024-01-22 11:46
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Geometry.Parse: Native type 'BaseObject' is not registered
Description: If you call Geometry.Parse before using the resource dictionary in your code, a "Native type 'BaseObject' is not registered" exception will be thrown.

Source: https://www.noesisengine.com/forums/viewtopic.php?p=15711#p15711
Tags:
Steps To Reproduce:
Additional Information: It is happening because if you don't load any xaml before using Noesis API, our plugin does not get correctly initialized.
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2623 [NoesisGUI] Unity3D crash random 2023-06-12 17:47 2024-01-22 11:46
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Domain Reload Crash - Attempt to access invalid address
Description:  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFDE6162973)
0x00007FFDE6162973 (Noesis) (function-name not available)
0x00007FFDE61CE5C8 (Noesis) Rect_GetStaticType
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFDE6162973)
0x00007FFDE6162973 (Noesis) (function-name not available)
0x00007FFDE62E26D3 (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007FFDE626A564 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFDE617C03B (Noesis) Boxed_String_GetStaticType
0x00007FFDE644D0D4 (Noesis) FreeString
0x00007FFDE62EA1CF (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007FFDE617BF51 (Noesis) Boxed_String_GetStaticType
0x00007FFDE644D0D4 (Noesis) FreeString
0x00007FFDE62EA1CF (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007FFDE63AD408 (Noesis) Extend_XamlProvider
0x00007FFDE617BF51 (Noesis) Boxed_String_GetStaticType
0x00007FFDE6201026 (Noesis) Rect_GetStaticType
0x00007FFDE61F93E9 (Noesis) Rect_GetStaticType
0x00007FFDE639A5C4 (Noesis) FormattedText_Init
0x00007FFDE617C03B (Noesis) Boxed_String_GetStaticType
0x00007FFDE63A8910 (Noesis) SizeChangedInfo_PreviousSize_get
0x000002481B05D44C (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x000002481B05D313 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.1\Runtime\API\Proxies\BaseComponent.cs:62] Noesis.BaseComponent:Release (intptr)
0x000002495799D5B3 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.1\Runtime\API\Core\Extend.cs:6110] Noesis.Extend:ReleasePending ()
0x000002482CB03393 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.1\Runtime\API\Core\Extend.cs:83] Noesis.Extend:Shutdown ()
0x000002482CB026B3 (Mono JIT Code) [D:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.2.1\Runtime\API\Core\Extend.cs:36] Noesis.Extend:OnDomainUnload (object,System.EventArgs)
0x000002482CB01D75 (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_object_EventArgs (object,System.EventArgs)
0x000002482CB01A3A (Mono JIT Code) System.AppDomain:DoDomainUnload ()
0x00000247EE3EF668 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFDE5730394 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\mini\mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007FFDE566EB44 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\object.c:3066] do_runtime_invoke
0x00007FFDE55523C0 (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\appdomain.c:3485] mono_domain_try_unload
0x00007FFDE571A61A (mono-2.0-bdwgc) [C:\build\output\Unity-Technologies\mono\mono\metadata\unity-utils.c:757] mono_unity_domain_unload
0x00007FF7CB59ABC0 (Unity) UnloadDomain
0x00007FF7CB58B42B (Unity) MonoManager::CreateAndSetChildDomain
0x00007FF7CB589F9C (Unity) MonoManager::BeginReloadAssembly
Tags:
Steps To Reproduce: On DomainReload, Noesis crashed the Unity editor. I have fixed the prior issues related to singletons. I'm not seeing any Stellar Conquest code in this stack trace. It does not show an access to a Noesis resource. This appears to be a different issue.
Additional Information:
Attached Files: Crash_2023-06-12_154337515.zip (1,128,769 bytes) 2023-06-12 17:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1866&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2611 [NoesisGUI] Unity3D crash sometimes 2023-05-29 13:32 2024-01-22 11:46
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Crash using singleton instance after reloading xaml
Description: Following the callstack and the code attached in ticket 0002579 I see this is related to a UIStateMachine which is used like a singleton.

It seems that after reloading of a xaml that instance points to a proxy with its native pointer already set to null.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2598 [NoesisGUI] Unity3D major always 2023-05-15 11:50 2024-01-22 11:46
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Inheritance from StackPanel is incorrect
Description: If you inherit your element from StackPanel, then it will not work correctly in Unity. Without specifying an explicit width, it will not automatically match the width of the child elements.

A source: https://www.noesisengine.com/forums/viewtopic.php?t=2935
Tags: Unity, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2596 [NoesisGUI] C# SDK major always 2023-05-12 11:47 2024-01-22 11:46
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: OnVisualChildrenChanged not found
Description: The method is not implemented in C#
Tags: C#, Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2595 [NoesisGUI] C# SDK major always 2023-05-12 11:43 2024-01-22 11:46
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: GetLayoutClip not found
Description: The method is not implemented in C#.
Source: https://www.noesisengine.com/forums/viewtopic.php?t=2936
Tags: C#, Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2589 [NoesisGUI] Unity3D major always 2023-05-05 23:17 2024-01-22 11:46
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Android
Summary: Opacity is fully opaque or fully transparent
Description: Any UI element with opacity value less than 100% is not rendered in VR (Android Build) but shows up fine when tested in Unity editor.
Tags:
Steps To Reproduce: Create a xaml element with an opacity less than 1.0 (Reporting Dev Tested for Both ContentControl and Button elements.)

Building for android device, load the XAML onto the Quest headset, the element with opacity less than 100% should be invisible.

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2577 [NoesisGUI] C++ SDK feature N/A 2023-04-21 19:09 2024-01-22 11:46
Reporter: christyjquinn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Extend GamepadTrigger to include option to handle events
Description: See https://www.noesisengine.com/forums/viewtopic.php?p=15499#p15499
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2569 [NoesisGUI] Unity3D feature always 2023-04-13 14:03 2024-01-22 11:46
Reporter: ismael_aheartful Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: InputActionTrigger not supported on Unity
Description: The "noesis:InputActionTrigger" element is not supported for Unity to be used with the new Input System. Only "GamepadTrigger" is recognized, and it constrains how can you implement your actions in an InputActionAsset, as this element only binds to a preset of actions defined by Noesis.

InputActionTrigger should be supported as it is currently in Unreal, so full control of the actions is posible for implementing an input template.

https://www.noesisengine.com/forums/viewtopic.php?p=15488
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2543 [NoesisGUI] C# SDK minor random 2023-03-25 19:01 2024-01-22 11:46
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: UI explicitly freezing on 3.2.
Description: I have never experienced this before 3.2. Noesis will freeze Unity for 10 - 15 seconds before working again. This only happens when using the in-game UI. I've noticed it when hovering over elements, but it also happened once or twice during navigation. What is the best way for me to help you track this? Is there anything I can do while it's frozen to send to you?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008366)
sfernandez   
2023-03-27 20:15   
If you can attach Visual Studio to the Unity process, click pause and then save a mini dump it might indicate if it is stuck inside Noesis.
Could you send us the dump to check it?
(0008377)
asusralis   
2023-03-29 11:59   
It seemed this stopped once I restarted my computer. If it happens again I will do this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2515 [NoesisGUI] C# SDK minor always 2023-02-20 13:01 2024-01-22 11:46
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.7  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: Dispatcher.BeginInvoke does not accept object[] as argument
Description: WPF Dispatcher.BeginInvoke calls not accept object[] as params and pass that to the callbacks as arguments. Noesis equivalent call only accepts an object and not object[] and so no callback is invoked because of parameter count mismatch.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2002 [NoesisGUI] C++ SDK feature have not tried 2021-05-06 12:46 2024-01-22 11:46
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: Implement RelativePanel
Description: https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.relativepanel?view=winrt-19041

This panel in conjunction with interactivity triggers is very useful to create responsive UI.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1512 [NoesisGUI] Unity3D feature always 2019-07-02 21:41 2024-01-22 11:46
Reporter: SIMU-ctortman Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Any
Summary: ValidateValueCallback Not Available In Unity SDK
Description: We needed to implement the DependencyProperty's ValidateValueCallback. It is listed as a support component of the class in the documentation (https://www.noesisengine.com/docs/2.1/Gui.DependencySystem.DependencyProperty.html). However when trying to hook into it, the property does not appear to be available in the DependencyProperty constructor or as a property within the class.
Tags: Unity
Steps To Reproduce: 1) Download NoesisGUI Unity 2.2.2 plugin
2) Attempt to write code to initialize or modify a DependencyProperty object
3) Observe that no ValidateValueCallback is available
Additional Information:
Attached Files:
Notes
(0005806)
sfernandez   
2019-07-05 12:51   
You're right, ValidateValueCallback is not exposed in C# API, we will include in a future release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3009 [NoesisGUI] Unity3D minor always 2024-01-15 07:35 2024-01-22 11:45
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.4  
Platform: Windows
Summary: One way binding on checkbox to a bool breaks if the checkbox is clicked
Description: Simple scenario is having one bool of data and two check boxes. Bind both IsChecked too the bool. One TwoWay and one OneWay. Clicking the two way checkbox will work as expected but after clicking the OneWay the box will toggle but the data will naturally not change and now the binding is broken. Clicking the TwoWay checkbox after that will no longer have any effect on the OneWay checkbox.

Running the same code in windows works. The behavior there is when the OneWay binding checkbox is clicked, it still visually gets checked (without changing the data) but the binding remains so checking the TwoWay binded checkbox will still effect the one way checkbox.

Naturally my use case is more complicated and I need the binding to be intact.

Tags:
Steps To Reproduce: <CheckBox Margin="40,5" x:Name="x_onlyAllsowPitch_CheckBox" Content=" temp" FontSize="36" IsChecked="{Binding Temp, Mode=OneWay}"/>

<CheckBox Margin="40,5" x:Name="x_onlyAllsowPitch_CheckBox2" Content=" temp2" FontSize="36" IsChecked="{Binding Temp, Mode=TwoWay}"/>


bool temp;
public bool Temp{ get { return temp; } set { temp = value; NotifyPropertyChanged("Temp"); } }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2636 [NoesisGUI] Unity3D major always 2023-06-30 18:18 2024-01-22 11:40
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Grid.Children.Add() Infinite Loop / Hang
Description: The following incorrect code causes Noesis to enter an infinite loop:

Grid grid = new Grid();
Rectangle r1 = new Rectangle;
grid.Children.Add(r1);
grid.Children.Add(r1); // obviously wrong, but should not cause infinite loop/hang
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008777)
sfernandez   
2023-09-27 13:05   
I'm not able to reproduce this issue with the given code. I just get an error saying: "Child already has a logical parent"
Could you try in an empty project to see if you can make it enter an infinite loop/hang?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2949 [NoesisGUI] Studio minor have not tried 2023-12-15 11:03 2024-01-19 20:06
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: When animating just switching between TransfromGroup tab is recording keyframes
Description: - Create a Storyboard and start recording
- Set a TransformGroup in any element
- Just switching tabs in the TransformGroup will create keyframes for the first property in the selected tab
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3019 [NoesisGUI] Studio trivial always 2024-01-17 19:13 2024-01-18 21:28
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: F2 shortcut not working for Asset Panel asset renaming
Description: as seen here: https://youtu.be/6iouSTq37aM?feature=shared&t=146
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3021 [NoesisGUI] Unreal minor always 2024-01-18 15:19 2024-01-18 21:18
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: LogClass warnings regarding unproper pathnames on start up
Description: It seems this problem only occurs in UE 5.3

LogClass: Warning: Property StructProperty UNoesisSettings::ApplicationResources defines MetaData key "AllowedClasses" which contains short type name "NoesisXaml". Suggested pathname: "/Script/NoesisRuntime.NoesisXaml". Module:NoesisRuntime File:Classes/NoesisSettings.h
LogClass: Warning: Property ArrayProperty UNoesisSettings::DefaultFonts defines MetaData key "AllowedClasses" which contains short type name "FontFace". Suggested pathname: "/Script/Engine.FontFace". Module:NoesisRuntime File:Classes/NoesisSettings.h
LogClass: Warning: Short type name "NoesisXaml" provided for TryFindType. Please convert it to a path name (suggested: "/Script/NoesisRuntime.NoesisXaml"). Callstack:
LogClass: Warning: Short type name "NoesisXaml" provided for TryFindType. Please convert it to a path name (suggested: "/Script/NoesisRuntime.NoesisXaml"). Callstack:
Tags: Unreal
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2868 [NoesisGUI] Studio minor always 2023-11-21 18:34 2024-01-18 19:34
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Show ControlStoryboardAction Storyboard as a dropdown selector
Description: We should show the Storyboard property for the ControlStoryboardAction as a dropdown with the available storyboards.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009093)
dfranjic   
2024-01-18 19:34   
A dropdown is now shown with the implementation of ResourceProperty


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2940 [NoesisGUI] Studio minor have not tried 2023-12-12 17:40 2024-01-18 17:21
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Content clipped in control's dummy editor
Description: as seen here: https://youtu.be/RDyPfWjnrrk?feature=shared&t=1814
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3013 [NoesisGUI] Studio minor always 2024-01-16 16:10 2024-01-17 15:14
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Selected Element RenderTransform is applied to HoverAdorner
Description: HoverAdorner should not be affected by the selected element's RenderTransform. Calculate width, height, and zoom scale instead.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2951 [NoesisGUI] Studio tweak have not tried 2023-12-15 11:25 2024-01-17 14:19
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Show only TransformGroup in transform properties
Description: Simplify the UX of transform properties by only using TransformGroup as value

Automatically set RenderTransformOrigin to (0.5, 0.5) when anything is changed in the TransformGroup for the first time, and the property has its default value.
The handler shown in the adorner it always starts at (0.5, 0.5) so it makes sense.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3014 [NoesisGUI] Studio crash always 2024-01-16 17:33 2024-01-17 00:29
Reporter: jsantos Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash removing element in the navigator
Description: Removing an element that was added before another one is crashing the studio
Tags:
Steps To Reproduce: 1. Create a new Page
2. Add a StackPanel to the root Grid
3. Add a new StackPanel as child of the first one
4. Now add a new StackPanel before the last one (so both has the same parent, but the the last one goes first)
5. Delete the StackPanel created in 4.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2988 [NoesisGUI] C++ SDK minor always 2024-01-03 08:00 2024-01-16 18:25
Reporter: saji8k Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support tvOS in the Native C++ SDK
Description: While tvOS is supported in Unity, it is not currently supported in the Native C++ SDK.
This is because the application framework has not been implemented yet for tvOS.
Please implement the application framework for tvOS, so that you can add support for tvOS to the native C++ SDK.
Tags:
Steps To Reproduce: Open the Mac SDK. There are no tvOS workspaces or project files.
Additional Information:
Attached Files:
Notes
(0009051)
jsantos   
2024-01-04 14:28   
I can send you binaries of the core library for tvOS. Please, let me know what Noesis version you need. Thank you!

Glad to accept changes to the app framework.

Regarding visionOS, I will check that too, but we haven't tried this platform yet and probably more important changes are needed.
(0009052)
saji8k   
2024-01-04 15:07   
If you could send the tvOS binaries for the latest version, 3.2.2, that would be great.

Thank you for checking into visionOS. Since visionOS is based off of iOS, I am hoping the changes to the core library will be slim to none.
(0009090)
jsantos   
2024-01-16 18:24   
(Last edited: 2024-01-16 18:25)
Please, download binaries for tvOS (aligned with 3.2.2 version) at

https://drive.google.com/file/d/1_bog5WrTssKiuDLrIfPIBAAY4eEZzKDm/view?usp=sharing

Thanks for having a look at this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3015 [NoesisGUI] Studio minor always 2024-01-16 17:39 2024-01-16 17:39
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: "Save Changes" dialog not showing when closing TAB
Description: If you close a TAB that is not active (middle mouse button for example) with unsaved changes, you lose them without a warning dialog
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3012 [NoesisGUI] Studio minor always 2024-01-15 13:35 2024-01-15 16:00
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when selecting Visual States
Description: as seen here: https://youtu.be/TLlMEd3NqBM?feature=shared&t=306
The Studio crashes when selecting an element and then a Visual State while editing a control's new template
Tags:
Steps To Reproduce: 1. Create a control template
2. Select an element of the template
3. Try to select a Visual state
Additional Information:
Attached Files:
Notes
(0009085)
dfranjic   
2024-01-15 14:33   
Already fixed. The fix will be available in 0.0.62

It's due to the motion path adorner, it's not checking whether a Storyboard exists (in case of visual states it doesn't exist until first animation).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3010 [NoesisGUI] Studio minor always 2024-01-15 12:59 2024-01-15 15:53
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when editing a path with the pen tool
Description: as seen here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=1722
Tags:
Steps To Reproduce: 1. Create an open path with the pen tool
2. Deselect it and select it again with the direct selection tool
3. Select the Pen tool and try to click on an open end to resume the path creation.
Additional Information:
Attached Files: Page0.xaml (357 bytes) 2024-01-15 14:50
https://www.noesisengine.com/bugs/file_download.php?file_id=2081&type=bug
Page0-2.xaml (615 bytes) 2024-01-15 14:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2082&type=bug
Notes
(0009086)
dfranjic   
2024-01-15 14:44   
I can't seem to reproduce this. It seems that some step is either missing or some action before corrupted the document.
(0009088)
fllorens   
2024-01-15 14:50   
(Last edited: 2024-01-15 14:51)
Here is a open path I just did right now, select the path and click on the path tool, then try to click on the top end vertex
(0009089)
fllorens   
2024-01-15 14:58   
Sorry, this is the good one:


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2839 [NoesisGUI] Studio minor always 2023-11-16 21:36 2024-01-15 14:34
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Animating SolidColorBrush Opacity resets Color
Description: When animating SolidColorBrush, changing Opacity resets any Color change.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2434 [NoesisGUI] Unity3D minor always 2022-09-27 13:58 2024-01-15 11:41
Reporter: jetjalopy Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Windows
Summary: ToggleButton with one way binding
Description: I have a ToggleButton in a view, its IsChecked property is bound to the computed property in OneWay mode. I call the PropertyChanged event if one of the elements is changed. It works fine if I don't click toggle button. But if I click on it, property will not reading anymore.

Forum discussion: https://www.noesisengine.com/forums/viewtopic.php?t=2731
Tags: Unity
Steps To Reproduce: 1. Create a toggle button in a xaml with a one way binding.
2. Create a computed property.
3. Raise a property changed event.
4. Click on the toggle button.
5. Raise a property changed event.
Additional Information:
Attached Files: Main.xaml (1,074 bytes) 2022-09-27 13:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1690&type=bug
Main.xaml.cs (3,135 bytes) 2022-09-27 13:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1691&type=bug
Notes
(0008690)
spadapet   
2023-09-01 08:14   
I'm hitting this same issue, a fix would be nice.
(0008695)
sfernandez   
2023-09-04 16:03   
Is this happening to you with NoesisGUI 3.2.1?
(0008696)
spadapet   
2023-09-04 18:44   
For me I'm using NoesisGUI 3.2.1 on Windows (not Unity). This issue seemed related although I may be hitting something similar.
I tried RadioButton and ToggleButton with OneWay and TwoWay bindings, but whenever I clicked a button, the IsChecked binding stopped working. I ended up styling a ListBox to look like radio buttons.
If I'm hitting a different issue I can log a new bug, I'd rather use RadioButtons instead of a ListBox.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3006 [NoesisGUI] Unity3D minor always 2024-01-12 12:52 2024-01-12 20:00
Reporter: kristoffer Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unity FillRule Nonzero vs NonZero
Description: I have XAML with an element like:
<PathGeometry Figures="..." FillRule="Nonzero"/>

While using that in Unity 3D 2022.3.16 with Noesis 3.2.2 an error is shown in the Unity log:
[NOESIS/E] ...: Cannot set value for 'PathGeometry.FillRule', unable to convert 'Nonzero' to a valid value
That error can be removed simply by changing Nonzero to NonZero, so it's not a biggy.

However External\NoesisGUI\Runtime\API\Proxies\FillRule.cs specifies it as Nonzero so I guess it should be changed in one place or the other for consitency?

(Copied over from https://www.noesisengine.com/forums/viewtopic.php?t=3186)
Tags: Unity, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009084)
jsantos   
2024-01-12 20:00   
Fixed in r 13188

There was a typo in the reflection of the FillRule enumeration.

Also, EnumConverters are now case-insensitive (as in WPF)

Thanks for the feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3008 [NoesisGUI] Studio minor always 2024-01-12 18:10 2024-01-12 19:55
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Merged dictionary brush resource not shown
Description: As seen here: https://youtu.be/z2pIHjyD0dU?feature=shared&t=101
Tags:
Steps To Reproduce: 1. Merge a dictionary with some brush resource
2. Create and select an element and apply resource to a brush
3. Notice how the brush is not updating in the viewport
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2724 [NoesisGUI] Unity3D major always 2023-10-12 14:57 2024-01-12 11:58
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.3  
Platform: Any
Summary: UI Non-Responsive When Deployed to XBOX
Description: Both my game and the Noesis Buttons sample does not respond to gamepad input when deployed to the XBOX. The Buttons Sample works in the Unity Editor if Gamepad actions are enabled on the NoesisView, but still does not work when deployed to XBOX.

Noesis 3.2.2
Unity 2022.3.5f1.
Latest GDK


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008812)
jsantos   
2023-10-12 15:55   
I think you need to install the xbox specific plugin for the Unity input system and remap the actions in the view.

I am not sure if we can have this properly configured by default in our package (without having dependencies to consoles plugins).

I will have a look at this ASAP.
(0008813)
stonstad   
2023-10-12 18:06   
Thank you. I'm going to test this out and will reply back here.
(0008816)
stonstad   
2023-10-13 16:07   
Awesome. All good! Thank you! I didn't understand and thought it was for XBOX specific APIs, like haptic/rumble motor APIs. Thank you!
(0008826)
stonstad   
2023-10-16 15:28   
Thank you. Please feel free to close this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3005 [NoesisGUI] Studio minor unable to reproduce 2024-01-11 17:26 2024-01-12 11:53
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when editing a TabItem template
Description: As seen here: https://youtu.be/7aHHWI3tYD4?feature=shared&t=2068
I'm attaching the crash dump.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: App.StudioTool.dmp (245,882 bytes) 2024-01-11 17:26
https://www.noesisengine.com/bugs/file_download.php?file_id=2080&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3004 [NoesisGUI] Studio minor always 2024-01-11 17:19 2024-01-12 11:53
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicating elements inside a template will not copy TemplatedParent bindings
Description: As seen here: https://youtu.be/7aHHWI3tYD4?feature=shared&t=1821 a brush TemplatedParent binding is not duplicated correctly.
'Foreground="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" ' is copied as 'Foreground="{Binding Path=Foreground}"' in the duplicated element.

Tags:
Steps To Reproduce: 1. Create a control template and edit it
2. Create an element inside with a TemplatedParent binding
3. Duplicate it
Additional Information:
Attached Files:
Notes
(0009079)
dfranjic   
2024-01-11 19:24   
Serialization of RelativeSource wasn't implemented. It should be fixed with r13178.

Though, an issue I noticed is that the binding isn't applied when alt+dragging it, but only when I release the mouse button.
But, at least it's properly written down in XAML and displayed after the mouse release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3002 [NoesisGUI] Studio minor always 2024-01-11 13:38 2024-01-11 20:30
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: xaml file not opening after closing it
Description: As shown here: https://youtu.be/7JC-fKEYk7k?feature=shared&t=681 a file is saved, closed and then can't be opened again
Tags:
Steps To Reproduce: 1. Create a new page with the Assets panel
2. Save and close it
3. Click on it again to try to reopen it.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3003 [NoesisGUI] Studio minor always 2024-01-11 15:46 2024-01-11 17:32
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Image brush editor not available inside button style
Description: As shown here: https://youtu.be/7aHHWI3tYD4?feature=shared&t=1821
Image and gradient brush editors are not shown inside a button style placed inside another control template
Tags:
Steps To Reproduce: 1. Create a template for a control and place inside a repeatbutton or a button
2. create and edit a style for the button
3. Try to show the Image or gradient brush editor for a brush property
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2871 [NoesisGUI] Studio feature have not tried 2023-11-21 18:42 2024-01-11 14:15
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Animated translation should show a motion path
Description: Animated elements with translation should show a motion path while editing the timeline.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2999 [NoesisGUI] C++ SDK minor have not tried 2024-01-09 17:16 2024-01-10 11:30
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Ambiguous symbol in Interaction.cpp in Unity builds
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?t=3183

'TriggerCollection': ambiguous symbol
2>(compiling source file 'CMakeFiles/NoesisUtils.dir/Unity/unity_3_cxx.cxx')
2>C:\_Development\Repositories\rtg\third_party\Noesis\Include\NsGui\FrameworkElement.h(43,35):
2>could be 'Noesis::UICollection<Noesis::BaseTrigger> Noesis::TriggerCollection'
2>C:\_Development\Repositories\rtg\libs\NoesisUtils\Public\NsApp\TriggerCollection.h(27,32):
2>or       'NoesisApp::TriggerCollection'


We need to properly disambiguate the TriggerCollection references by using the namespace always.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2998 [NoesisGUI] Studio minor always 2024-01-09 12:58 2024-01-10 11:18
Reporter: fllorens Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Jagged stroke on TextBlock with small StrokeThickness
Description: Small stroke values assigned to textblocks (any font family) result in a jagged outline
Tags:
Steps To Reproduce: 1. Create a textblock
2. Add a Stroke color and StrokeThickness with a small value
Additional Information:
Attached Files: JaggedStrokeTextBlock.jpg (107,683 bytes) 2024-01-09 12:58
https://www.noesisengine.com/bugs/file_download.php?file_id=2078&type=bug
JaggedTextBlock.xaml (543 bytes) 2024-01-09 17:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2079&type=bug
Notes
(0009068)
sfernandez   
2024-01-09 16:40   
Can't reproduce, can you paste the XAML here that reproduces it?
(0009072)
fllorens   
2024-01-09 17:04   
Yes, here you are:


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2864 [NoesisGUI] Studio minor always 2023-11-21 18:22 2024-01-10 02:58
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't scroll the timeline more than the visible seconds
Description: The number of seconds visible in the Storyboard timeline depends on the Studio window size.
And when the timeline is totally zoomed out, you cannot scroll horizontally to see more time.
This makes impossible to add keyframes further away from the initial visible seconds.

We should see how other software deal with this situation and allow to scroll at least for the Duration of the Storyboard.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009029)
sfernandez   
2023-12-14 18:07   
As discussed we should allow to move the time marker past the end of the timeline, in that case it should continue scrolling as if the timeline is infinite.

I think we should also allow ctrl + mouse wheel to zoom in-out the timeline. That way we can easily move to far away times.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2746 [NoesisGUI] Studio feature have not tried 2023-10-20 14:54 2024-01-10 02:58
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Allow selection animation timelines in the navigator and delete
Description: It would be good if we could select an animation timeline (for a single property or for a group of properties that share part of the path) and delete everything by just pressing the Delete key.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2853 [NoesisGUI] Studio minor sometimes 2023-11-20 15:17 2024-01-10 02:57
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Timeline scrollbar right end is cropped
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=810 sometimes the right end of the scrollbar disappears under the properties panel
Tags:
Steps To Reproduce: 1. Open a timeline and carefully resize the scrollbar until the scrollbar background appears to extend to the right
2. move the entire scrollbar to the right
Additional Information:
Attached Files:
Notes
(0009073)
dfranjic   
2024-01-10 02:57   
This happened because TimelineItem and time indicator would sometimes be to the right of timeline control area which would then cause the TimelineControl to protrude.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2981 [NoesisGUI] Studio minor always 2024-01-02 12:52 2024-01-10 02:55
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Timeline broken when zooming out and scrolling
Description: As seen here https://youtu.be/Fsz0uIoyxjo?feature=shared&t=213 the timeline breaks apart zooming out ans scrolling.
Tags:
Steps To Reproduce: 1. Open a storyboard
2. Zoom in and place or create a keyframe in a random time point, not a round number.
3. Zoom out, place the timeline pointer at the start and scroll.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2992 [NoesisGUI] Studio minor always 2024-01-05 16:19 2024-01-09 19:38
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: New color resource not shown in Solid Color Brush editor
Description: as seen here: https://youtu.be/_BVXMra08jo?feature=shared&t=76 color resource is created (with the page selected) but not shown.
Tags:
Steps To Reproduce: 1. Create or open a file
2. select root page and click on the background brush - solid color brush
3. select a color and save it as a resource using the plus icon
Additional Information:
Attached Files:
Notes
(0009071)
dfranjic   
2024-01-09 17:03   
This only happens for the root element (Page), because I assume the logic for gathering the available color resources doesn't check the element itself, but only parents, and since Page is the one containing the color resources, it doesn't show them.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2977 [NoesisGUI] Studio minor always 2023-12-28 12:04 2024-01-09 14:34
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: [ApplicationTutorial] [Buttons] [Detroit] App.xaml crashes the Studio
Description: as seen here: https://youtu.be/zEjD7YHOmQE?feature=shared&t=23 trying to open App.xaml crashes the app.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2991 [NoesisGUI] Studio crash always 2024-01-04 14:25 2024-01-08 19:09
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio Crashes when creating a New Page without a Noesis File loaded.
Description: Studio allows the user to create a New Page, even without a Noesis project file loaded. This action causes Studio to crash.

If no Noesis File is loaded in the application, the "New Page" menu option should be disabled, greyed out, and ideally with a tooltip stating "An open project is required to create a new page".
Tags:
Steps To Reproduce: 1) Open Noesis Studio, but do not load a Noesis File via the 'Open File hamburger menu item.
2) From the hamburger menu in the upper lefthand corner of the application, select File-->New page
Observe the application crashing.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2993 [NoesisGUI] Studio minor always 2024-01-05 16:43 2024-01-08 14:04
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Grouping canvas children inside stackpanel creates unnecessary margins
Description: as seen here: https://youtu.be/_BVXMra08jo?feature=shared&t=318 grouping canvas children inside a stackpanel makes the stackpanel inherit the first child top and left properties, but creates unnecessary margins to the stackpanel elements.
Tags:
Steps To Reproduce: 1. Create a canvas and place a pair of elements inside
2. Select the elements and group them inside a Stackpanel
3. Notice the margins
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2994 [NoesisGUI] Studio minor always 2024-01-05 16:46 2024-01-08 11:05
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Creating a TextBlock style crashes the Studio
Description: As shown here: https://youtu.be/_BVXMra08jo?feature=shared&t=580
Tags:
Steps To Reproduce: 1. Create a textblock
2. With the adorner or the context menu try to create a style
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2970 [NoesisGUI] Studio minor always 2023-12-22 11:00 2024-01-05 12:37
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Problems working with MediaElements
Description: - Select a MediaElement in the "Add Element" panel, and draw it in the viewport. The draw rectangle will move weird and placed in wrong positions when crossing the snapping guides (it happens also for the Image element)
- To select the Source (video/audio) you need to write the path manually in the properties panel. We should show the available media assets with a dropdown as we do for images
- We should also allow dragging and dropping videos to the viewport and automatically create the MediaElement
- When the Source video is selected it starts playing automatically. We should create the MediaElement used in edition mode scope so it doesn't play (setting LoadingBehavior to Manual maybe?)
- Although the MediaElement gets updated every frame, it doesn't produce any render commands, so the viewport is not updated when playing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009053)
sfernandez   
2024-01-05 12:37   
[DONE] We should also allow dragging and dropping videos to the viewport and automatically create the MediaElement


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2987 [NoesisGUI] C++ SDK feature have not tried 2024-01-03 07:48 2024-01-04 14:29
Reporter: saji8k Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Use Multi-Channel Signed Distance Fields to get Sharper Text Corners
Description: When displaying text with NoesisGUI, the corners of each character are rounded and not sharp.

This is occurring because text in NoesisGUI is rendered using (Single-Channel) Signed Distance Fields.

Please add support using Multi-Channel Signed Distance Fields to rendering text. This would allow for sharp corners while still maintaining good performance.

Pretty much every bespoke engine uses MSDF these days
Godot - https://docs.godotengine.org/en/stable/tutorials/ui/gui_using_fonts.html
Evergine - https://evergine.com/new-font-and-text-feature/
Hazel - https://github.com/TheCherno/Hazel

Introduction to MSDF Text Rendering Video by TheCherno
https://www.youtube.com/watch?v=J26hm7r-k6A
Tags:
Steps To Reproduce: Create a TextBlock with the Arial FontFamily and a huge FontSize (like 300).
Compare the visual output of Blend and NoesisGUI renderers.
In the Blend renderer, the corners of each character are sharp. In the NoesisGUI renderer, the corners of each character are rounded.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2984 [NoesisGUI] Unity3D trivial always 2024-01-02 17:21 2024-01-03 15:06
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: [BackgroundBlur] [CustomAnimation] [Rive] font not found
Description: as seen here: https://youtu.be/IpzgMZRyOmU?feature=shared&t=113 opening BackgroundBlur sample with Unity 2022.2.10f1 throws the following error: Font not found: './#Rajhdani SemiBold'
Also missing font error in Rive and CustomAnimation samples.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2980 [NoesisGUI] Unity3D crash always 2024-01-02 11:14 2024-01-03 11:05
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Crash clicking TextBox used in ItemsControl item template
Description: From forums post: https://www.noesisengine.com/forums/viewtopic.php?t=3176
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CrashTextBox.zip (439,186 bytes) 2024-01-02 11:14
https://www.noesisengine.com/bugs/file_download.php?file_id=2068&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2985 [NoesisGUI] C++ SDK minor always 2024-01-02 17:22 2024-01-02 19:55
Reporter: xueyan.mu@zwift.com Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Selected Item in Combobox does not have updated display text when its content changes
Description: Hello!

I currently have a ComboBox where, when I change the language of my game, the current value that is shown does not change language.

Then I received a response from sfernandez:
I've just tried and this works as expected in WPF: when selected item changes its Content, it automatically updates the parent ComboBox display text. So it is clearly a bug in Noesis, no need to create any custom ComboBox. Could you please report it in our bugtracker?

Tags:
Steps To Reproduce: this is the xaml and c++ code I used:

XAML:

                <StackPanel>
                  <TextBlock Text="{DynamicResource title}"/>
                  <ComboBox
                    SelectedIndex="{Binding SelectedItemIndex, Mode=TwoWay}">
                    <ComboBoxItem Content="{DynamicResource ex1}"/>
                    <ComboBoxItem Content="{DynamicResource ex2"/>
                    <ComboBoxItem Content="{DynamicResource ex3}"/>
                  </ComboBox>
                </StackPanel>


C++:

int ExampleViewModel::GetSelectedItemIndex() const {
    return mItemIndex;
}

void ExampleViewModel::SetSelectedItemIndex(int index) {
    mItemIndex = index;
    OnPropertyChanged("SelectedItemIndex");
    UpdateFilteredList();
}
...
    NsProp("SelectedItemIndex", &ExampleViewModel::GetItemIndex,
        &ExampleViewModel::SetItemIndex);
Additional Information:
Attached Files:
Notes
(0009050)
sfernandez   
2024-01-02 19:55   
Fixed in changeset 13135


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2983 [NoesisGUI] Studio minor always 2024-01-02 17:21 2024-01-02 17:30
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Unable to Create Grid Definitions when Child of an Auto Row
Description: There appears to be a bug where you are unable to create rows in an auto-proportioned. grid element which is child to another grid.

This sentence is not very clear, so the best way is to follow the repro steps below.
Tags:
Steps To Reproduce: 1) Create a Parent 3-Row Grid, with the topmost row definition set to "Auto'. The two bottom rows can be set to 1* each.

2) Place a child Grid inside the 3-Row Grid created in Step 1, and assign it to Row 0 (the first row from the top of the screen)

3) Place a text Block inside this Child Grid element.
Normally, at this point, the first Row of the Parent Grid should resize to the height of the text block.

4) Now, attempt to create 3 rows, of 1 Star each, inside of this Child Grid.

Observe how the rows do not render as three equally-sized rows.

5) Change the Parent's Row 0 Value from Auto, to any fixed size, either in Pixels of Stars.
Observe how the Rows render properly.

Expected results:
Proportional Star Grid's rows should render even if inside of an Auto-Sized row.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2982 [NoesisGUI] Studio minor have not tried 2024-01-02 14:43 2024-01-02 14:47
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Grid Definition Unable to be set to a star value
Description: I'm not entirely sure how to reproduce this, but attached you will find a video of this in action.
Row 3 is not accepting to be set to a Star Value, and also shows numbers without a unit attached to it.
Tags:
Steps To Reproduce: N/A - sorry :(
Additional Information:
Attached Files: 2024-01-02 08-39-53.mp4 (4,095,165 bytes) 2024-01-02 14:43
https://www.noesisengine.com/bugs/file_download.php?file_id=2069&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2944 [NoesisGUI] Studio minor always 2023-12-13 18:41 2024-01-02 13:42
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging an image to the viewport renders it without size
Description: as seen here https://youtu.be/38NboknWlLk?feature=shared&t=1193
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2895 [NoesisGUI] Studio feature have not tried 2023-11-24 15:46 2024-01-02 13:37
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Show "margins" for children inside Canvas
Description: We should show the "margins" (left/right and top/bottom) applied to the child inside the Canvas.
Also, it would be nice to have a similar behavior as with the Grid when dragging a child, so it updates Canvas.Left or Canvas.Right properties depending if the element is near the left or right edges.
And in that case, we should have a "lock" toggle to allow the user to anchor the child to one of the sides, so dragging the child will always update the locked property.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2860 [NoesisGUI] Studio crash have not tried 2023-11-21 17:56 2024-01-02 13:14
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash using a BitmapImage in design DataContext
Description: 1. Create a dynamic class in Data panel.
2. Add an object property with type BitmapImage
3. Assign data context to root object
4. Edit image property and assign a BitmapImage object
5. Choosing from the UriSource combo box an image will crash the Studio
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009043)
sfernandez   
2023-12-21 16:11   
I think it is with BitmapSource instead
(0009044)
dfranjic   
2023-12-21 17:58   
Have you been able to reproduce this bug lately? I can't reproduce it following the given steps (with BitmapSource or BitmapImage). If it's not fixed, I feel like something has to be done before these steps.

With r13123 I fixed an issue where XamlUndoRedoCommand would try to access design data context objects NodeObject as if they're part of the XAML document you're viewing, but since they're handled differently it caused a crash.
Fix for the 0002956 I committed a week ago could've also fixed this bug, it could've been the same cause.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2979 [NoesisGUI] C++ SDK minor always 2024-01-02 04:53 2024-01-02 10:55
Reporter: saji8k Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: VS Warning that Variable 'Noesis::QueryCursorEventArgs::cursor' is uninitialized
Description: I keep getting the following warning when compiling.
Warning C26495 Variable 'Noesis::QueryCursorEventArgs::cursor' is uninitialized. Always initialize a member variable (type.6). \Include\NsGui\UIElementEvents.inl 147
https://learn.microsoft.com/en-us/cpp/code-quality/c26495?view=msvc-170

Changing Line 479 in UIElementEvents.h from:
mutable Cursor* cursor;

to:
mutable Cursor* cursor = nullptr;

removes the warning.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009049)
sfernandez   
2024-01-02 10:55   
Thanks a lot for reporting this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2978 [NoesisGUI] Studio minor always 2023-12-28 12:40 2023-12-29 11:17
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: [ApplicationTutorial] Elements missing when opening with Studio
Description: As seen here https://youtu.be/zEjD7YHOmQE?feature=shared there are elements missing in the Studio.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2976 [NoesisGUI] Studio feature N/A 2023-12-28 11:53 2023-12-29 11:12
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Loaded Triggers should be disabled when the viewport is not in play mode
Description: As we have seen in a lot of tests, animations started by triggers are distracting and interfere with layout and asset work.
The triggers should be somewhat disabled when in normal mode, to prevent this problems.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2973 [NoesisGUI] Studio feature N/A 2023-12-27 13:04 2023-12-27 13:12
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: WYSIWYG Properties for MediaElement
Description: We are looking to add the following controls to the MediaElement:
Features marked with asterisks (**) denote new, or modified features.
----------------------------------------------------------------------------------------------------

Position: [Input Field] -- (Default: Current Timestamp)

**Source: [Dropdown] -- { Media File List } -- (Default: None)

Stretch: [Dropdown] -- { None | Fill | Uniform | UniformToFill } -- (Default: UniformToFill)

Stretch Direction: [Dropdown] -- { UpOnly | DownOnly | Both } -- (Default: Both)

**Start Playback at: [Dropdown] -- {Start of File | Custom Timestamp} -- (Default: Start of File)

**Custom Start Timestamp: [Input Field] -- (Default: Empty. If user inputs a value, it changes the Start Playback to 'Custom Timestamp')

**End Playback at: [Dropdown] -- {End of File | Custom Timestamp} -- (Default: Start of File)

**Custom End Timestamp: [Input Field] -- (Default: Empty. If user inputs a value, it changes the End Playback to 'Custom Timestamp')

**Media End Behavior: [Dropdown] -- { Loop From Start | Freeze End Frame | Unload File | Jump to Timestamp | Load New Media } -- (Default: Freeze Final Frame)

**Media End Restart Timestamp: [Input Field] -- (Default: Empty. If user inputs a value, it changes the Media End Behavior to "Jump to Timestamp")

**Media End Next Media Source: [Dropdown] -- { Media File List } -- (Default: None. If user selects a file from the dropdown, it changes the Media End Behavior to "Load New Media", and clears the Media End Restart Timestamp Input Field to Empty)

SpeedRatio: [Input Field] -- (Default: 1)

IsMuted: [Checkbox] -- (Default: Off)

Volume: [Input Field] -- (Default: 0.5)

Balance: [Input Field] -- (Default: 0)

LoadedBehavior: [Dropdown] -- { Close| Stop| Manual | Play |Pause } -- (Default: Play)

UnloadedBehavior: [Dropdown] -- { Close| Stop| Manual | Play |Pause } -- (Default: Close)

Scrubbing Enabled: [CheckBox] -- (Default: Off)
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2630 [NoesisGUI] C# SDK feature N/A 2023-06-21 13:01 2023-12-26 19:52
Reporter: dauthleikr Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: C# SDK Vulkan RenderContext support
Description: Please provide the vulkan render device via the .NET SDK.

See: https://github.com/Noesis/Managed/issues/6
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009047)
dauthleikr   
2023-12-26 11:50   
Hi, are you guys able to provide an ETA here? Is there any way we can help (open source contributions?)
(0009048)
jsantos   
2023-12-26 19:51   
Following our C++ implementation (available in the C++ SDK) you could build your own version in C#. This what we are going to do (and what we did with the other renderers).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2971 [NoesisGUI] Studio minor always 2023-12-22 12:53 2023-12-26 13:08
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: No root grid on DataTemplate
Description: There's no grid shown in the navigator panel of a newly created DataTemplate
Tags:
Steps To Reproduce: 1. In resources panel create a new DataTemplate
2. Edit it and look at the Navigatot panel
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2964 [NoesisGUI] Studio major always 2023-12-20 13:05 2023-12-22 18:17
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging the RGBA textbox values in the brush editor updates the value in preview but doesn't write it down in XAML
Description: Dragging the NumericInputs of a color picker in a SolidColorBrush will change the color in the preview but it won't be written down in the XAML.

Entering RGBA values in the textbox and then pressing Enter key works, as does using the color picker control directly.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2967 [NoesisGUI] Studio minor have not tried 2023-12-20 19:09 2023-12-22 16:29
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when trying to edit foreground of a style
Description: as seen here: https://youtu.be/uJoLl116edE?feature=shared&t=855
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009046)
dfranjic   
2023-12-22 16:29   
The crashes would occur because Studio assumed the Style must have a <Setter/> for that property (Foreground in this case) when in fact it didn't have the <Setter/> because it came from the BasedOn Style object.
Should be fixed with r13127.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2972 [NoesisGUI] Studio minor always 2023-12-22 15:41 2023-12-22 16:06
Reporter: dfranjic Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when deleting a font file from a project
Description: To reproduce this, make sure that the font file is not open in the Noesis Studio and then try deleting the font.

This happens because Project::HandleFileRemove() expects the ProjectFile::GetData() to host the value of FontDocument type.
But, since the FontDocument isn't open in the Studio, ProjectFile::GetData() will return nullptr.

Clarification: the font data is needed to get the actual font family name from it (arialn.ttf -> "Arial Narrow")
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009045)
dfranjic   
2023-12-22 16:06   
Fixed with r13126 by using Project::mProjectFonts list to get the font family name from a font file path.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2877 [NoesisGUI] Studio minor always 2023-11-23 12:09 2023-12-21 18:33
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: No way to draw elements in a parent grid with children panels
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=1129 there's no way to draw to a parent grid if there's another child panel blocking it.
The panel's adorner inform the user of the action but it can't be bypassed holding Ctrl key.
Tags:
Steps To Reproduce: 1. Create a panel inside another one
2. Try to draw an element over the child panel, holding Ctrl key
Additional Information:
Attached Files:
Notes
(0008982)
sfernandez   
2023-11-23 12:56   
There is a way to draw to a parent panel when it has other child panels. You can "lock" the child panel so it can't be a target of the added/drawn elements.

Anyway, I've seen that Blend keeps the selection as parent of the newly created elements. So if you have a Grid selected, and that grid has another panel covering it entirely, any new added/dreawn elements are still added to the selected Grid. If the selected element doesn't allow adding children, then its parent will be the target of the newly added elements. We should do something like that.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2966 [NoesisGUI] Studio minor have not tried 2023-12-20 16:07 2023-12-20 19:56
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Opening a color resource list for the Color property in a brush editor triggers a ApplyColorResource command
Description: Just clicking on the toggle to show all the available color resources for a brush property is going to trigger an EventTrigger which calls ApplyColorResource command.
This makes the Studio modify the XAML even though no resource was clicked.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2813 [NoesisGUI] Studio minor always 2023-11-02 13:42 2023-12-20 14:23
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Cancelling action with Esc key locks Navigator
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=3680 cancelling an element's translation makes the Navigator panel locked and unselectable.
Tags:
Steps To Reproduce: 1. Select and move an element
2. While moving hit the Esc key
3. Try to select an element on the NAvigator panel
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2884 [NoesisGUI] Studio minor have not tried 2023-11-23 13:33 2023-12-20 12:36
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Grid reverting to RowSpan=3 even after resizing
Description: Weird behavior seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=4010 with a grid that seems to revert to a Grid.RowSpan=3 after reinitializing the Studio.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009042)
sfernandez   
2023-12-20 12:36   
It looks like this was happening because xaml was malformed with Grid attached properties being set multiple times.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2947 [NoesisGUI] Studio minor have not tried 2023-12-14 15:04 2023-12-20 12:32
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when reordering grid element
Description: as seen here: https://youtu.be/38NboknWlLk?feature=shared&t=3033
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2958 [NoesisGUI] Studio minor always 2023-12-15 18:16 2023-12-20 12:31
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Selecting a Textblocks's child crashes the Studio
Description: as seen here: https://youtu.be/38NboknWlLk?feature=shared&t=3248
Tags:
Steps To Reproduce: 1. Add a textblock to the Navigator
2. Add a grid as a child of the textblock
3. Save, close and open it again
4. Try to select the grid
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2957 [NoesisGUI] Studio minor have not tried 2023-12-15 18:13 2023-12-20 12:05
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when dragging an image to the navigator
Description: as seen here: https://youtu.be/38NboknWlLk?feature=shared&t=3067
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009040)
fllorens   
2023-12-20 11:46   
Crash seems fixed in 0.00.55
(0009041)
maherne   
2023-12-20 12:05   
Fixed in an earlier commit.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2925 [NoesisGUI] Studio minor always 2023-12-11 15:33 2023-12-19 22:06
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Exception while editing an element name in the Navigator
Description: While editing an element name in the Navigator, if you press the Delete key until the caret is at the end of the name, and then press Delete again, you'll hit a read access violation exception in \Gui\Editor\Src\SetElementNameCommand.cpp, line 32. It seems that Node is deleted before the name is set.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2942 [NoesisGUI] Studio feature N/A 2023-12-12 19:54 2023-12-19 20:59
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Properties panel rework
Description: - Show attached properties based on the selected element, and it's parent.
- Rework property categories, priority/ordering, and importance (primary/secondary). Include categories for specific controls.
- Display non-important/secondary properties in an expander within each category.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2963 [NoesisGUI] Studio minor always 2023-12-19 19:08 2023-12-19 20:59
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicated textblocks don't copy FontFamily property
Description: as seen here: https://youtu.be/VYOW_P9AfhA?feature=shared&t=2675
Tags:
Steps To Reproduce: 1. Create a textblock and set some properties and a FontFamily
2. Duplicate the textblock
3. Close the page and open it again
Additional Information:
Attached Files:
Notes
(0009039)
dfranjic   
2023-12-19 20:59   
The serializer was saving the duplicated TextBlock's FontFamily as following:

<TextBlock>
  <TextBlock.FontFamily>
    <FontFamily/>
  </TextBlock.FontFamily>
</TextBlock>


It didn't save the source of the font family, thus why no font was applied. It should be fixed with r13110.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2960 [NoesisGUI] Studio minor always 2023-12-19 11:04 2023-12-19 19:07
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Typed Input for Opacity Does Not Register
Description: The Opacity property on elements can currently be adjust by mouse (by either dragging the slider, or clicking on the value input field, and using the mouse wheel).
However, the Opacity cannot be adjusted by typing in a new value in the input field.
Tags:
Steps To Reproduce: 1A) Create a Grid element on the canvas.
1B) In the Properties panel for the Grid element, under the 'Appearance' section, click the Opacity numerical value, and type in a different value between 0 and 100.
Observe how the opacity does not change.
Expected results: Typed value saves, and takes effect.

2A) Create a Grid element on the canvas.
2B) In the Properties panel for the Grid element, under the 'Appearance' section, open the 'Background' colour picker.
2C) Under the tab for 'Solid Color Brush', click the Opacity numerical value, and type in a different value between 0 and 100.
Observe how the opacity does not change.
Expected results: Typed value saves, and takes effect.
Additional Information:
Attached Files: OpacityBug.jpg (86,718 bytes) 2023-12-19 11:04
https://www.noesisengine.com/bugs/file_download.php?file_id=2063&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2961 [NoesisGUI] Studio major always 2023-12-19 12:25 2023-12-19 19:07
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: New Colours Are Not Registered During Animation Recordings
Description: When attempting to perform an operation of having a text colour change from a Button "Normal" to "MouseOver" state, the colour cannot be changed.
Marking this as "Major" because without this, it's going to be very difficult to do even the simplest of demos of Button Interactive styles.
Tags:
Steps To Reproduce: 1) Place any Button on the canvas, and set it's size to 800x400
2) Right-Click on the Button, and under the 'Template' menu, select 'Create'.
3) Create a new TextBlock element within the button, and in the Properties panel, under the TextBlock Header - set the Text Property to be a Binding of type: Relative | Mode: Templated Parent | Path: Content.
4) Whilst inside the Template of the Button, under the Animations/Visual States, navigate to the 'MouseOver' CommonState.
5) Press "Record" on the Animation Timeline for this state.
6) Attempt to change the colour of the TextBlock to a specified RGB, HSL, or Hex value.
Observe how the colours input do not match the colours reproduced on-screen.

7) Press the "Record" button again to end the recording.
8) Click back and forth between the 'Normal' and 'MouseOver' states and notice how the colour changes have not applied as expected.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2815 [NoesisGUI] Studio minor always 2023-11-02 13:59 2023-12-19 18:06
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Group into Viewbox is adding weird size and margins
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=4120
And also here: https://youtu.be/nyaiHuqcR08?feature=shared&t=386
Tags:
Steps To Reproduce: 1. Create a grid and draw a button inside
2. Reset the grid's layout
3. Using the context menu, group the grid into a Viewbox
4. Look at the Height, Width and Margin values
Additional Information:
Attached Files:
Notes
(0008962)
jsantos   
2023-11-21 16:07   
There are similar issues when grouping into Grid


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2962 [NoesisGUI] Studio minor have not tried 2023-12-19 15:00 2023-12-19 18:05
Reporter: dstewart Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Bound Elements Display In-Editor, but not when Running
Description: When Binding Data to an Element (eg: a TextBlock), when in-Editor, the output displayed is correct, and matches the ViewModel data.
However, when pressing "Start" and running the UI, all elements with bindings lose their content.
Tags:
Steps To Reproduce: 1) Create a TextBlock on the Canvas of a new Page.
2) Create a Dynamic Class containing a Text String field.
3) Create a ViewModel Object containing the Text String field.
4) Assign the ViewModel to the entire Page.
5) Assign the ViewModel's text string to the TextBlock.
Generate Data for the entire page.
Observe how the TextBlock is populated with the ViewModel's data.
6) Press 'Start' to run the Interface.
Observe how the TextBlock loses its content.

Expected Results: ViewModel content is present both in-editor and when running.
Additional Information:
Attached Files:
Notes
(0009038)
dfranjic   
2023-12-19 15:41   
This happens when starting the play mode from within the template/style scope. It's still a bug though and has been fixed with r13103.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2920 [NoesisGUI] Studio minor have not tried 2023-12-05 17:44 2023-12-19 12:21
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Page brush not updating
Description: as seen here: https://youtu.be/Q6D2MOPir84?feature=shared&t=124
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2917 [NoesisGUI] Studio minor always 2023-12-04 19:18 2023-12-19 12:20
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Editing an asset name shows a hovering adorner
Description: as seen here https://youtu.be/Q6D2MOPir84?feature=shared&t=13
Tags:
Steps To Reproduce: 1. Edit an asset's name (f2)
2. Click with the caret to deselect
3. Click and drag to select text. A hovering adorner will appear.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2878 [NoesisGUI] Studio minor always 2023-11-23 12:16 2023-12-19 12:09
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Image elements are created with no size
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=1759 creating an Image element by dragging results in a width/height 0 element.
Tags:
Steps To Reproduce: 1. Drag an image element from the Add Element panel to the viewport
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2875 [NoesisGUI] Studio minor unable to reproduce 2023-11-23 11:46 2023-12-19 12:08
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Oversized selection outline for paths
Description: as seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=741 selecting some paths grouped into canvas and viewbox shows an oversized selection outline
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2959 [NoesisGUI] Studio minor always 2023-12-18 18:59 2023-12-19 11:09
Reporter: dstewart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Windows
Summary: Hex Value Input Does not Register in Colour Picker
Description: Typing Hex Values, or Copy-Pasting Hex Values into the Colour Picker does not produce a new colour for an element.
Tags:
Steps To Reproduce: Repro Steps:

1) Add, or Select any Grid element on a page.
2) Attempt to change the background colour of the Grid by either typing:
a) #FFFFFFFF
or
b) Copy-Pasting #FFFFFFFF
into the Hex value text input field.
3) Press [Enter] to confirm.

Observe how the colour reverts to the hex value that was entered prior to inputting the newest value.
Note that the same error does *not* occur when editing RGB or HSB values.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2771 [NoesisGUI] Studio crash always 2023-10-25 12:48 2023-12-19 11:09
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Clearing SolidColorBrush.Color value causes a crash
Description: When the SolidColorBrush is stored inline in XAML, such as:
<Border Background="#FFFFFF"/>

the Studio crashes when clearing the Color property of the Background Brush.

That's because the ColorProperty doesn't have a owner NodeObject (<SolidColorBrush/>) which the ClearLocalValue method expects.
Studio expected the following code:
<Border>
  <Border.Background>
    <SolidColorBrush Color="#FFFFFF"/>
  </Border.Background>
</Border>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2956 [NoesisGUI] Studio minor always 2023-12-15 15:12 2023-12-15 21:04
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when editing Design Data in a Collection
Description: When trying to edit the Design Data value of a property inside of a collection, an exception read access violation (this is nullptr) is thrown:

Gui.Editor.dll!Editor::DocumentObjectTreeItem::GetDocument() Line 70
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\DocumentObjectTreeItem.cpp(70)
Gui.Editor.dll!Editor::Helper::FindPropertyPath(Editor::XamlDocument * doc, Noesis::NodeObject * node, unsigned int * parents, Editor::DocumentObjectTreeItem * customTreeItem) Line 599
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\PropertyHelper.cpp(599)
Gui.Editor.dll!Editor::Helper::FindProperty(Editor::DocumentObjectTreeItem * treeItem, Noesis::NodeObject * node, Noesis::Symbol owner, Noesis::Symbol prop) Line 713
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\PropertyHelper.cpp(713)
Gui.Editor.dll!Editor::UpdateDataContextPropertyCommand::Execute() Line 222
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\UpdateDataContextPropertyCommand.cpp(222)
Gui.Editor.dll!Editor::ObjectPropertySource::ApplyValue(const Noesis::ArrayRef<Editor::PropertyUpdateRequest> & props, bool isLocalOnly, bool canAnimate) Line 431
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\ObjectPropertySource.cpp(431)
Gui.Editor.dll!Editor::Property::OnSetValue(Noesis::BaseComponent * param) Line 643
    at C:\Source\Noesis\NoesisEditor\NoesisSDK\Native\Src\Packages\Gui\Editor\Src\Property.cpp(643)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2955 [NoesisGUI] Studio minor always 2023-12-15 15:07 2023-12-15 21:03
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Dynamic Type Backup Issues
Description: - Adding/changing Dynamic Types are only saved on a manual save, a crash will cause all changes to be lost.
- Instances of Dynamic Type data are only saved on a manual save, a crash will cause all changes to be lost.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2880 [NoesisGUI] Studio minor always 2023-11-23 12:26 2023-12-15 10:54
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: transformGroup's Flip Y/X axis buttons do nothing
Description: as seen here: https://youtu.be/nyaiHuqcR08?feature=shared&t=2206
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2654 [NoesisGUI] Unity3D feature always 2023-07-24 14:14 2023-12-14 20:09
Reporter: picpic2006 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Rive input two way binding
Description: it would be very helpful to have my rive animation updating this input on my view model when mouse interaction on it, when in two way binding.
Today i can set it from my view model, but clic on animation doesn't update the rive input.
Tags: C#, Rive
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2858 [NoesisGUI] Studio minor random 2023-11-21 17:40 2023-12-14 14:38
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Mouse wheel scrolling the viewport instead of zooming
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=1841 it happens randomly, behaving as if the Ctrl key is held. It starts to work again after reinitializing the Studio.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008963)
sfernandez   
2023-11-21 18:14   
More wrong behaviors because of this issue:
- Clicking in the Navigator will extend the selection (multiple selection) instead of changing the selection to the clicked element


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2943 [NoesisGUI] C++ SDK feature have not tried 2023-12-13 16:00 2023-12-14 13:40
Reporter: Phodopus Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Implement iOS-like rubberband (bounce) and inertia effect in Scrollviewer
Description: It would be nice for mobile games/apps if NoesisGUI would natively support an iOS-like inertia and bounce effect for a Scrollviewer as discused here: https://www.noesisengine.com/forums/viewtopic.php?t=1234
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2945 [NoesisGUI] Studio minor have not tried 2023-12-13 18:48 2023-12-14 13:39
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Deleting asset from assets panel don't remove it
Description: as seen here: https://youtu.be/38NboknWlLk?feature=shared&t=1272
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2562 [NoesisGUI] C++ SDK feature always 2023-04-12 16:50 2023-12-14 13:08
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: RiveControl: add support for images
Description: Add support for rendering images embedded in rive files.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2707 [NoesisGUI] Unity3D feature always 2023-10-03 07:36 2023-12-14 13:08
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: NoesisGUI cannot handle raster files and in the .riv file in Unity
Description: Hey noesisGUI team,
I have a problem with Noesis.

I use RiveApp for my game project's main menu. I used some raster files and some vector files in it.
When I export the RiveApp file (.riv) and bring it to noesisGUI when I start my Unity app to see the result. I see only vector files and don't see raster image files.
Is this a bug or it should be like that? Please reply to me asap.

Thanks in advance
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2708 [NoesisGUI] Unity3D crash always 2023-10-03 07:40 2023-12-14 13:05
Reporter: aliagha.huseynli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Unity crash because of Noesis cannot handle RiveApp text feature
Description: Basically, I used new text feature of RiveApp in my .riv file and try to import it in my Unity by xaml. Every single time it crashes.
Tags:
Steps To Reproduce: Try to create rive file with just text
then export it as .riv
then add it in xaml file source
then save it and start unity or just open the unity window don't touch anything it will crash anyway.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2563 [NoesisGUI] C++ SDK feature always 2023-04-12 16:52 2023-12-14 13:05
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: RiveControl: add support for meshes
Description: Implement rendering of meshes (requires support for images first).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2913 [NoesisGUI] Studio minor have not tried 2023-12-01 18:28 2023-12-13 20:40
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Keyframe property values change randomly
Description: as seen here: https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=4036
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2876 [NoesisGUI] Studio minor always 2023-11-23 11:57 2023-12-13 20:12
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Resource item drag adorner stuck over brush property
Description: As seen here https://youtu.be/nyaiHuqcR08?feature=shared&t=943 the adorner doesn't disappear when the brush has been updated
Tags:
Steps To Reproduce: 1. Create a brush resource
2. From the resources panel drag the item to a brush property
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2740 [NoesisGUI] Studio minor always 2023-10-20 14:23 2023-12-13 19:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Adding element to the Navigator places it outside the parent container bounds
Description: If you have selected a design size like 720p (anything different from Free Aspect), and try to add an element (a Rectangle for example) to a panel like Grid, it places the element outside the bounds of the Grid.

It should add the new element centered in the parent container.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2810 [NoesisGUI] Studio minor always 2023-11-02 12:57 2023-12-13 18:59
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Black viewport when clearing a TransformGroup Scale value
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=2220 the viewport gets black whenever the user clears or uses backspace on a TransformGroup Scale value.
Tags:
Steps To Reproduce: 1. Select an element
2. Go to Properties > Transform > RenderTransform > TransformGroup > Scale
3. Select a Scale property value and hit backspace
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2806 [NoesisGUI] Studio trivial always 2023-11-02 10:18 2023-12-13 18:58
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: New Page shortcut not working
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=26 hitting Ctrl+N doesn't create a new page.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2941 [NoesisGUI] Studio major always 2023-12-12 17:57 2023-12-12 18:14
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Texture and font providers are not able to load the assets when the XAML is in a subdirectory
Description: Let's say we have this kind of organization of files
/ProjectRoot
  /Menu
    Main.xaml
    background.png
    font.ttf


If the Main.xaml references background.png, it's going to look something like this:
<Image Source="background.png"/>


When loading the Main.xaml file on the next startup, the project global texture provider will try to load "/background.png" (from the project root) rather than relative to the Main.xaml ("/Menu/background.png")
Tags:
Steps To Reproduce: 1. Create a XAML file in a subdirectory and open the said XAML file
2. Put an image file or a font file in the same subdirectory
3. Reference that image/font file in the XAML file
4. Close the XAML file
5. Open the XAML file
6. Observe how the image/font file isn't applied to the element that references it
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2939 [NoesisGUI] Studio minor have not tried 2023-12-12 17:36 2023-12-12 18:12
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't use resource brushes inside visual states
Description: as seen here https://youtu.be/RDyPfWjnrrk?feature=shared&t=1814
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2053 [NoesisGUI] Unreal major always 2021-06-28 16:28 2023-12-12 11:34
Reporter: maxnt Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: ComboBox Selected Index not updating when selecting first item
Description: In UE4 when selecting a combobox's first item (Index 0) a property that is bound to SelectedIndex does not trigger the set UFUNCTION to be called. However, selecting other items works fine (Index > 0).
Tags:
Steps To Reproduce: Add a Combobox to xaml with more than 1 CombBoxItem and bind SelectedIndex to a ViewModel property
Create Get and Set UFUNCTIONs in C++
Add breakpoint or logging to Set function
Run project and change Combobox selected item
Notice Set not being called when selecting first item

WPF
<ComboBox SelectedIndex="{Binding TestSelectedIndex, Mode=TwoWay}" >
    <ComboBox.Items>
        <ComboBoxItem Content="1"></ComboBoxItem>
        <ComboBoxItem Content="2"></ComboBoxItem>
        <ComboBoxItem Content="3"></ComboBoxItem>
    </ComboBox.Items>
</ComboBox>

C++
UFUNCTION()
void GetTestSelectedIndex(UPARAM(ref) int32 OutTestSelectedIndex) const;

UFUNCTION()
void SetTestSelectedIndex(int32 Index);

Additional Information:
Attached Files:
Notes
(0007315)
maxnt   
2021-06-30 18:40   
Update

This is not a bug I have a typo in my Get function

UFUNCTION()
void GetTestSelectedIndex(UPARAM(ref) int32& OutTestSelectedIndex) const;

With this change everything works as expected!
(0007316)
hcpizzi   
2021-07-02 11:20   
On top of supporting native getters with an out ref parameter, we now support getters with return values too.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2934 [NoesisGUI] Studio minor random 2023-12-11 19:43 2023-12-12 02:32
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version: Studio_A1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Undo sometimes fails due to a Node byte index mismatch
Description: Randomly, when undoing the deletion of an element or the changing it's parent, the byte index stored in the undo momento will not match any current node, leading to an exception.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2926 [NoesisGUI] Studio minor always 2023-12-11 15:37 2023-12-11 17:52
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: When duplicating a container with named numbers items, all items get the same name
Description: When duplicating a container where the elements have the same name, but different numbers, the duplicated container will contain elements with the same name and number.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Duplicated.PNG (10,540 bytes) 2023-12-11 15:37
https://www.noesisengine.com/bugs/file_download.php?file_id=2047&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2924 [NoesisGUI] C++ SDK major random 2023-12-07 19:24 2023-12-11 17:32
Reporter: AnKor Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Read access violation in D3D12RenderDevice::UploadUniforms
Description: I'm not 100% sure it is a Noesis bug, but it looks very suspicious.
Recently I catched a couple of "read access violation" crashes during memcpy part of D3D12RenderDevice::UploadUniforms

            uint32_t size = Align(data.numDwords * sizeof(uint32_t), 256);
            void* ptr = MapBuffer(mConstants[i], size);
            memcpy(ptr, data.values, size);

I didn't save exact values, but I can definitely say:
- data->numDwords was 7;
- data->values was not null, but seemingly a valid value;
- access violation happened at 4096 byte boundary (last digits were 000 in hex);
- the difference between the faulted address and data.values was exactly 240 bytes.

I can try to get more data when it happens next time, but it is very rare.
So far it just looks like memcpy *reading* beyond the input buffer. Shouldn't it be copying "numDwords * 4" instead of "size" bytes?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0009002)
jsantos   
2023-12-08 10:30   
You are right, we should be copying only "numDwords * 4" bytes. The code is not correct.

Could you please apply the change and let me know if this fixes your crash?

Thank you!
(0009003)
AnKor   
2023-12-08 11:25   
I've applied the change and so far all is good, but the crash was very rare anyway.
Thanks for confirming.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2775 [NoesisGUI] Studio minor always 2023-10-26 14:38 2023-12-11 12:57
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicate elements use 'Name' instead of 'x:Name'
Description: As seen here https://youtu.be/3C8q3FXvqKM?feature=shared&t=665 when the user duplicates an element in the viewport, the new element gets an 'Name="OriginalName"' instead of a 'x:Name="OriginalName_Copy".

This is also problematic because the user can easily create elements with both Name and x:Name
Tags:
Steps To Reproduce: Add an element, rename it and duplicate it.

Rename the duplicated element.

Open the XAML file and you’ll find an element with both x:Name and Name.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2412 [NoesisGUI] C++ SDK minor always 2022-09-07 14:18 2023-12-10 03:32
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.1.7  
Platform: Any
Summary: Improve diagnostics error when loading fonts
Description: Right now, system fonts that are not found do not emit errors. Instead, local fonts give proper error when not found.

This is to allow optional families in fallback chains like:

FontFamily="Tahoma, Arial, Calibri"

We could improve this a bit by giving error when no font is found in the list of fallbacks.

We should also consider adding an internal font (with just one glyph) to render squares when there is not other font available. In consoles for examples, there aren't system fonts available.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2861 [NoesisGUI] Studio minor always 2023-11-21 18:03 2023-12-07 18:21
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Margin adorner shown in wrong position when selecting the Viewbox child
Description: 1. Create a Viewbox that fills the page with Stretch=Uniform
2. Add a Border (or any element) inside with a smaller size (100x100 for example)
3. Set Border margin to some value (20,20,20,20 for example)
3. Selecting the Border will show the margins in the wrong position
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2767 [NoesisGUI] Studio feature N/A 2023-10-24 17:47 2023-12-07 17:26
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Improvement when adding new elements
Description: Add visual feedback when a new element is added to the page:

- When adding new elements to the main view, we should highlight where the item is going to be placed.

- When adding to the navigator, we should highlight the element where we are dropping and also indicate if we are being inserted after or before (like in Blend).

- We should also allow reordering in the Navigator and highlight where the dragged element would be placed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2866 [NoesisGUI] Studio minor have not tried 2023-11-21 18:32 2023-12-04 19:15
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: EventTrigger seems to be renaming Storyboard
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=3250 there's only a renamed storyboard. When an EventTrigger loaded is created, it appears to rename or try to open a 'Storyboard0' that doesn't exist.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008998)
dfranjic   
2023-12-04 16:33   
I can't seem to reproduce the issue and I can't really locate the issue in the Studio's code. It could be maybe that the Studio is not showing the 'Storyboard0' in the list of storyboards but it exists in the XAML code. Just speculation..
If you find a way to reproduce the issue, please do tell.
(0008999)
dfranjic   
2023-12-04 18:00   
Discovered a way to reproduce it all the time.

1. Create a Storyboard / have a Storyboard with animations
2. Make sure the Storyboard name doesn't equal to "Storyboard0"
3. Drag a keyframe
4. Try to create a BeginStoryboard action in a EventTrigger and it's going to create a Storyboard0 object rather than use the existing Storyboard

Seems like dragging a keyframe causes the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2914 [NoesisGUI] Studio minor have not tried 2023-12-01 18:34 2023-12-04 17:56
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Multiple keyframes created around a time snapping point
Description: as seen here https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=4968 and here https://youtu.be/NNZQ2ZvIXC0?feature=shared&t=4999
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2862 [NoesisGUI] Studio crash sometimes 2023-11-21 18:16 2023-12-04 17:29
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash deleting the last point of a Path
Description: 1. Create a Path with the Pen tool
2. Start removing points with the Pen tool
3. Deleting the last point will crash the studio
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2482 [NoesisGUI] C# SDK crash always 2022-12-27 00:06 2023-12-02 13:43
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: DirectX 12 Behavior
Description: After switching Unity DirectX API from 11 to 12, my UI text now appears corrupt. See screenshot, below --

* Updated. Behavior appears also related to editor crashes. See stack trace, dump, and logs below.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (1,497,239 bytes) 2022-12-27 00:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1729&type=bug
Crash_2022-12-26_230913923.zip (557,291 bytes) 2022-12-27 00:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1730&type=bug
Notes
(0008187)
stonstad   
2022-12-27 00:11   
I was encountering repeated crashes. The crashes stopped after I disabled the NoesisView component. Stack trace w/ dump and logs included, below.

d3d12: upload buffer was full! Waited for COPY queue for 3.023 ms.
d3d12: upload buffer was full! Waited for COPY queue for 2.329 ms.
d3d12 : CreateCommittedResource 'TexturesD3D12::CreateTextureInternal() Texture' (128 x 2) format 10 failed (887a0005).
    Device Remove Reason (HRESULT): 0x887a0006
(0008188)
stonstad   
2022-12-27 00:13   
Unity 2022.2.1f1, built-in pipeline.
(0008189)
stonstad   
2022-12-27 00:38   
After working with DirectX12 and Unity, it is unlikely that I will switch to DX12 any time soon. Across different scenes I am seeing a 10% FPS performance hit. This bug report is for informational purposes. Please let me know if you need anything. Thanks, Shaun.
(0008190)
jsantos   
2023-01-02 12:44   
Thanks for the report! It seems Unity 2022.2 broke an important low-level feature for D3D12 that is needed by Noesis. It is a pity because 2022.2 is the first version where D3D12 is not marked as experimental.

We already have a workaround and also many improvements that will come with NoesisGUI 3.2.

Let's leave this opened for now.
(0008191)
jsantos   
2023-01-02 12:45   
https://forum.unity.com/threads/iunitygraphicsd3d12v7-getnextframefencevalue-always-return-1.1378035/


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2397 [NoesisGUI] C++ SDK feature N/A 2022-08-15 23:01 2023-12-02 13:40
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: Implement support for OpenType Font Features
Description: https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/opentype-font-features

The Advanced Typographic tables (OpenType Layout tables) extend the functionality of fonts with either TrueType or CFF outlines. OpenType Layout fonts contain additional information that extends the capabilities of the fonts to support high-quality international typography. Most OpenType fonts expose only a subset of the total OpenType features available.

<Paragraph FontFamily="Palatino Linotype">
  2<Run Typography.Variants="Superscript">3</Run>
  14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2628 [NoesisGUI] C++ SDK feature have not tried 2023-06-14 13:01 2023-12-02 13:19
Reporter: laudaicat Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WebGPU render target implement
Description: WebGPU will be released soon, and I'm in need of porting my game to work with Web Assembly. Therefore, I kindly request you to implement the WebGPU render target.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008996)
laudaicat   
2023-12-02 01:41   
Hi, any ETA for this feature?
(0008997)
jsantos   
2023-12-02 13:19   
We want to implement this at some point in 3.2 but right now the priority is releasing Noesis Studio


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2911 [NoesisGUI] Unity3D crash sometimes 2023-12-01 02:38 2023-12-02 00:48
Reporter: dmacd10@gmail.com Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: WebGL
Summary: Intermittent race/crash when updating popup bindings and updating layout under WebGL
Description: Uncaught RuntimeError: null function or function signature mismatch
    at Noesis::Delegate<void (Noesis::PropertyMetadata*)>::operator()(Noesis::PropertyMetadata*) const (0d95134a:0xb181c0)
    at Noesis::Mouse::SetOver(Noesis::Mouse::HitInfo const&) (0d95134a:0xbe7e2e)
    at Noesis::Mouse::Capture(Noesis::UIElement*, Noesis::CaptureMode, bool) (0d95134a:0xbe7b60)
    at Noesis::Mouse::Capture(Noesis::UIElement*, Noesis::CaptureMode) (0d95134a:0xbe7a37)
    at Noesis::Popup::MouseCapture() (0d95134a:0xbe21d7)
    at Noesis::Popup::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&) (0d95134a:0xbe200a)
    at Noesis::DependencyObject::NotifyPropertyChanged(Noesis::DependencyProperty const*, Noesis::StoredValue*, void const*, void const*, bool, bool, Noesis::PropertyMetadata const*) (0d95134a:0xafb2f4)
    at Noesis::DependencyObject::InternalSetValue(Noesis::DependencyProperty const*, void*, void const*, void*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination, bool) (0d95134a:0xafb0cb)
    at Noesis::ValueStorageManagerImpl<bool>::SetValue(Noesis::DependencyObject*, Noesis::DependencyProperty const*, Noesis::BaseComponent*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination) const (0d95134a:0xcbfa89)
    at Noesis::DependencyProperty::SetValueObject(Noesis::DependencyObject*, Noesis::BaseComponent*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination) const (0d95134a:0xafd271)
    at Noesis::DependencyObject::InternalSetExpression(Noesis::DependencyProperty const*, Noesis::Expression*, unsigned char) (0d95134a:0xaf9a0b)
    at Noesis::DependencyObject::InternalInvalidateProperty(Noesis::DependencyProperty const*, unsigned char) (0d95134a:0xaf9b0d)
    at Noesis::DependencyObject::InvalidateProperty(Noesis::DependencyProperty const*, unsigned char) (0d95134a:0xaf9cad)
    at Noesis::BindingExpression::InvalidateTarget() const (0d95134a:0xb79cbb)
    at Noesis::BindingExpression::OnNotifyPropertyChanged(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) (0d95134a:0xb7c062)
    at Noesis::Delegate<void (Noesis::Freezable*, Noesis::FreezableEventReason)>::MemberFuncStub<Noesis::DependencyObject::ChangedHandler, void (Noesis::DependencyObject::ChangedHandler::*)(Noesis::Freezable*, Noesis::FreezableEventReason)>::Invoke(Noesis::Freezable*, Noesis::FreezableEventReason) const (0d95134a:0xafc050)
    at Noesis::Delegate<void (Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)>::operator()(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&) const (0d95134a:0xafaa73)
    at Noesis::Delegate<void (Noesis::Freezable*, Noesis::FreezableEventReason)>::MultiDelegate::Invoke(Noesis::Freezable*, Noesis::FreezableEventReason) const (0d95134a:0xafc2f2)
    at Noesis::Delegate<void (Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)>::operator()(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&) const (0d95134a:0xafaa73)
    at Noesis_LaunchPropertyChangedEvent (0d95134a:0xc4f106)
    at Extend_NotifyPropertyChanged_m4C6AEF46F1B7B41759EE4339CE2D1E22FA80B027 (0d95134a:0x1902d6f)
    at KeyGeneratedEventHandler_Invoke_mD73F8C7BC0305037EC520C3F4AF3DE74E5481DDA_OpenStatic(KeyGeneratedEventHandler_t5EDD824AAD4D47A4C32E693596793AB83DB84107*, Il2CppObject*, EventArgs_t37273F03EAC87217701DD431B190FBD84AD7C377*, MethodInfo const*) (0d95134a:0x21bb9f)
    at U3CU3Ec__DisplayClass3_0_U3CNotifyPropertyChangedU3Eb__0_m0917F2C64D8F1C85AA44BD2E115F99F9CB0D092E (0d95134a:0x1dee636)
    at U3CActionWrapperU3Ed__9_MoveNext_m1CFEC200F3CE9D502AD9F66FDB71157E205A3502 (0d95134a:0x1e31366)
    at SetupCoroutine_InvokeMoveNext_m72FC77384CAC3133B6EE650E0581D055B34B2F5F (0d95134a:0x1f51f49)
    at RuntimeInvoker_FalseVoid_t4861ACF8F4594C3437BB48B6E56783494B843915_VoidU2A_t104EAEFBD2D237A8C29618913DA9B4D99355E965_Int32_t680FF22E76F6EFAD4375103CBBFFA0421349384C(void (*)(), MethodInfo const*, void*, void**, void*) (0d95134a:0x24ba587)
    at il2cpp::vm::Runtime::InvokeWithThrow(MethodInfo const*, void*, void**) (0d95134a:0x24d1d40)
    at dynCall_iiii (0d95134a:0x252fc7e)
    at invoke_iiii (1aafc9a6-c9d8-4df0-82f1-914a3cdb1c3b:136:517727)
    at il2cpp::vm::Runtime::Invoke(MethodInfo const*, void*, void**, Il2CppException**) (0d95134a:0x24d0de2)
    at il2cpp_runtime_invoke (0d95134a:0x24d2e5f)
    at scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool) (0d95134a:0x24d410d)
    at ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) (0d95134a:0x17c9cf9)
    at Coroutine::Run(bool*) (0d95134a:0x172fad5)
    at MonoBehaviour::TryCreateAndRunCoroutine(ScriptingObjectPtr, ScriptingMethodPtr, Coroutine**) (0d95134a:0xdfd6cb)
    at MonoBehaviour_CUSTOM_StartCoroutineManaged2(Il2CppObject*, Il2CppObject*) (0d95134a:0x1770626)
    at MonoBehaviour_StartCoroutine_m4CAFF732AA28CD3BDC5363B44A863575530EC812 (0d95134a:0x1f54b5e)
    at U3CU3Ec__DisplayClass10_0_U3CInvokeU3Eb__0_mED84D20A7D5179F060156B6C70B336DB33B7527B (0d95134a:0x1e31302)
    at UnityDispatcher_Update_mB9A32436F5525A7D8D8A68EA42FE07679F8065E7 (0d95134a:0x1e3106a)
    at RuntimeInvoker_TrueVoid_t4861ACF8F4594C3437BB48B6E56783494B843915(void (*)(), MethodInfo const*, void*, void**, void*) (0d95134a:0x2496c31)
    at il2cpp::vm::Runtime::InvokeWithThrow(MethodInfo const*, void*, void**) (0d95134a:0x24d1d40)
    at dynCall_iiii (0d95134a:0x252fc7e)
    at invoke_iiii (1aafc9a6-c9d8-4df0-82f1-914a3cdb1c3b:136:517727)
    at il2cpp::vm::Runtime::Invoke(MethodInfo const*, void*, void**, Il2CppException**) (0d95134a:0x24d0de2)
    at il2cpp_runtime_invoke (0d95134a:0x24d2e5f)
    at scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool) (0d95134a:0x24d410d)
    at ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) (0d95134a:0x17c9cf9)
    at MonoBehaviour::CallUpdateMethod(int) (0d95134a:0xdfd2bf)
    at MonoBehaviour::Update() (0d95134a:0xdfd2d4)
    at BehaviourManager::Update() (0d95134a:0x1582a13)
Tags:
Steps To Reproduce: I haven't isolated precise steps yet, but this is affecting users in production, so I wanted to surface it. Because this is fairly intermittent, I suspect a race condition is involved.

The basic flow is:

Resize screen (in this case unity webgl)
Hide all popups by setting (via binding) IsOpen=false
Wait a few frames
Show them again by updating IsOpen binding to true

Incidentally, were doing this because of another bug where popups sometimes become detached from their anchors when the screen resizes (happens in unity and webgl). I didn't report that one yet, but the workaround is (was) to just close and open them again later.

Additional Information:
Attached Files:
Notes
(0008995)
dmacd10@gmail.com   
2023-12-02 00:48   
Update: It turns out I was manipulating Popup.StaysOpen = false / true at the same time as IsOpen. Leaving this out, I haven't been able to reproduce the crash.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2867 [NoesisGUI] Studio minor always 2023-11-21 18:32 2023-12-01 17:27
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Changes in TransformGroup editor textboxes are updating instantly
Description: We should wait until user hits Enter or the text box loses focus to update the element in the viewport as it happens with the rest of editors.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2907 [NoesisGUI] Studio feature have not tried 2023-11-29 16:18 2023-11-29 16:53
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Some logical children not shown in the Navigator
Description: There are some controls that expose properties other than the Content property that are also used to connect logical children.
For example:
- BulletDecorator.Bullet
- Track.Thumb, Track.DecreaseButton, Track.IncreaseButton

In Blend they show those properties in the Navigator and you can even drag elements there, or see the element that is being set in the property (see attached image).

We should show something like that too, and this could also be used to show and edit the contents of properties like ContextMenu or ToolTip.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: logicalchild.png (7,049 bytes) 2023-11-29 16:18
https://www.noesisengine.com/bugs/file_download.php?file_id=2038&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2905 [NoesisGUI] Studio minor always 2023-11-29 12:35 2023-11-29 12:45
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: ListBox template with scrollbar stops showing ListBoxItems
Description: Seen here https://youtu.be/Z_yrQTEOwto?feature=shared&t=2631
Tags:
Steps To Reproduce: 1. Create a ListBox with ListBoxItems
2. Create a template for the ListBox
3. Add a ScrollViewer with an ItemsPresenter
4. Create a template for the ScrollViewer
5. Add a ScrollContentPresenter and a ScrollBar
6. Press play, the items will disappear
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2834 [NoesisGUI] Studio minor N/A 2023-11-09 17:49 2023-11-27 18:26
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add Element functionality for TextBlocks
Description: Add the ability to use Add Element to place elements in a TextBlock (using an InlineUIContainer)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2898 [NoesisGUI] Studio minor always 2023-11-27 17:22 2023-11-27 17:30
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when editing gradient in a visual state
Description: Seen in https://youtu.be/dbBgvtudFlg?feature=shared&t=1833
Tags:
Steps To Reproduce: 1. Edit a template
2. Create and assign a gradient
3. In the template's visual states, try to edit the gradient with the gradeint widget
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2893 [NoesisGUI] Studio minor have not tried 2023-11-24 15:36 2023-11-24 20:16
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: NumericInput showing unexpected decimals sometimes
Description: When dragging to change the value, sometimes the number represented shows too many decimals.
For example, increasing the value from 0.6 to 0.7 shows 0.7000001 instead.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2881 [NoesisGUI] Studio minor always 2023-11-23 12:41 2023-11-23 21:09
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when adding an ItemsPresenter to a ListBox template
Description: As seen here https://youtu.be/dbBgvtudFlg?feature=shared&t=391 trying to add an ItemsPresenter as a child of a ScrollViewer inside a ListBox template crashes the Studio.
Tags:
Steps To Reproduce: 1. Create a ListBox and create a new template for it.
2. Add a ScrollViewer
3. Try to add a ItemsPresenter as a child of the ScrollViewer
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2890 [NoesisGUI] Studio feature always 2023-11-23 16:39 2023-11-23 17:14
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: New control templates should have all the necessary elements
Description: As seen here https://youtu.be/dbBgvtudFlg?feature=shared&t=229 an empty control template is disorienting for a new user, as it does not contain the necessary elements to function properly.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2693 [NoesisGUI] Unity3D crash sometimes 2023-09-18 08:02 2023-11-23 16:49
Reporter: ckfinite Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Unexpected RefCount(2) deleting object at [number] causes hard crash
Description: At seemingly-random intervals I'm seeing the error

[NOESIS/E] Unexpected RefCount(2) deleting object at 00000211806A6268
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at Packages/NoesisGUI/Runtime/NoesisUnity.cs:360)
Noesis.BaseComponent:Release (intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/BaseComponent.cs:62)
Noesis.Extend:ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6110)
Noesis.Extend:Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6119)
Noesis.View:Update (double) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)

show up and crash Unity to desktop, which is not ideal. However, I don't know what object 00000211806A6268 is and don't have a great way to bisect my way to what's going on. Clearly, there's residual Noesis-land reference to an object that is being deallocated from C#, but I don't know where. Is there a good way to debug this?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Editor.zip (1,016,583 bytes) 2023-09-21 07:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1949&type=bug
Editor.log (1,017,034 bytes) 2023-10-08 06:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1972&type=bug
crash.dmp (3,366,083 bytes) 2023-10-08 06:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1973&type=bug
Notes
(0008753)
sfernandez   
2023-09-20 11:31   
As you don't seem to have a reproducible scenario let's see if we can at least find what kind of object is being destroyed when that crash happens to narrow down the problem.

Could you please modify in our plugin script Extend.cs the ReleasePending() function to something like the code below, and then attach here the crash dump and Editor.log generated by Unity.

        private static void ReleasePending()
        {
            lock (_pendingRelease)
            {
                int numPending = _pendingRelease.Count;
                for (int i = 0; i < numPending; ++i)
                {
                    IntPtr cPtr = _pendingRelease[i];
                    IntPtr nativeType = Noesis.BaseComponent.GetDynamicType(cPtr);
                    NativeTypeInfo info = GetNativeTypeInfo(nativeType);
                    Debug.Log($"Releasing '{info.Type}' at {cPtr.ToString("X16")}");

                    BaseComponent.Release(cPtr);
                }
                _pendingRelease.RemoveRange(0, numPending);
            }
        }
(0008760)
ckfinite   
2023-09-21 08:20   
I provided the logs in a private note, for anyone else looking's information. The primary lines of relevance are:

Releasing 'Noesis.GridViewColumn' at 000002C274967190
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Noesis.Extend:ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6112)
Noesis.Extend:Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View:Update (double) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)

(Filename: Packages/NoesisGUI/Runtime/API/Core/Extend.cs Line: 6112)

[NOESIS/E] Unexpected RefCount(2) deleting object at 000002C27496A4E8
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at Packages/NoesisGUI/Runtime/NoesisUnity.cs:360)
Noesis.BaseComponent:Release (intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/BaseComponent.cs:62)
Noesis.Extend:ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6114)
Noesis.Extend:Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View:Update (double) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)

(Filename: Packages/NoesisGUI/Runtime/NoesisUnity.cs Line: 360)

Releasing 'Noesis.Binding' at 000002C274A3A4C0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Noesis.Extend:ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6112)
Noesis.Extend:Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View:Update (double) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)

(Filename: Packages/NoesisGUI/Runtime/API/Core/Extend.cs Line: 6112)

ERROR: InvalidOperationException: Native type 'BaseObject' is not registered | Stacktrace: Noesis.Extend.GetNativeTypeInfo (System.IntPtr nativeType) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:468)
Noesis.Extend.ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6111)
Noesis.Extend.Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View.Update (System.Double timeInSeconds) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView.UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView.LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogError (object)

(Filename: Assets/Scripts/Utils/Log.cs Line: 80)

InvalidOperationException: Native type 'BaseObject' is not registered
  at Noesis.Extend.GetNativeTypeInfo (System.IntPtr nativeType) [0x0004b] in OurGame\Packages\NoesisGUI\Runtime\API\Core\Extend.cs:468
  at Noesis.Extend.ReleasePending () [0x00039] in OurGame\Packages\NoesisGUI\Runtime\API\Core\Extend.cs:6111
  at Noesis.Extend.Update () [0x00001] in OurGame\Packages\NoesisGUI\Runtime\API\Core\Extend.cs:6123
  at Noesis.View.Update (System.Double timeInSeconds) [0x00001] in OurGame\Packages\NoesisGUI\Runtime\API\Core\View.cs:366
  at NoesisView.UpdateInternal () [0x0008c] in OurGame\Packages\NoesisGUI\Runtime\NoesisView.cs:1455
  at NoesisView.LateUpdate () [0x0000f] in OurGame\Packages\NoesisGUI\Runtime\NoesisView.cs:1356

(Filename: Packages/NoesisGUI/Runtime/API/Core/Extend.cs Line: 468)


The error seems to be primarily related to an attached Behaviour that generates GridViewColumns from a databound ObservableCollection. It doesn't seem to appear when it is not used. I would rather not replace this one, though, because there aren't too many great alternatives to this design from a layout perspective. It seems to have something to do with an unregistered managed object, which is a problem I've ran into before (BaseObject is one of our classes), though this reflection of it is novel.
(0008762)
sfernandez   
2023-09-21 18:53   
Could you please share the behavior that creates the GridViewColumns and the piece of xaml where it is used?
I will try to reproduce the problem myself to work on a solution.
(0008764)
ckfinite   
2023-09-25 07:05   
Sure, sorry for the delay.

The behaviour is
  public class GridViewGeneratedColumnBehaviour : Behavior<GridView>
  {
    public static readonly DependencyProperty ColumnFactoryProperty = DependencyProperty.Register(nameof(ColumnFactory), typeof(IGridViewColumnFactory), typeof(GridViewGeneratedColumnBehaviour), new PropertyMetadata(ColumnFactoryChanged));
    public IGridViewColumnFactory ColumnFactory
    {
      get => (IGridViewColumnFactory)GetValue(ColumnFactoryProperty);
      set => SetValue(ColumnFactoryProperty, value);
    }
    private static void ColumnFactoryChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
      (d as GridViewGeneratedColumnBehaviour)?.GenerateColumns();
    }

    public static readonly DependencyProperty ColumnsProperty = DependencyProperty.Register(nameof(Columns), typeof(IEnumerable), typeof(GridViewGeneratedColumnBehaviour), new PropertyMetadata(ColumnsChanged));

    private static void ColumnsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
      (d as GridViewGeneratedColumnBehaviour)?.ColumnsChangedInt(d, e);
    }
    private void ColumnsChangedInt(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
      if (e.NewValue is INotifyCollectionChanged c)
      {
        c.CollectionChanged += ColumnCollectionChanged;
      }
      if (e.OldValue is INotifyCollectionChanged o)
      {
        o.CollectionChanged -= ColumnCollectionChanged;
      }
      GenerateColumns();
    }

    private void ColumnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
    {
      GenerateColumns();
    }

    public IEnumerable Columns
    {
      get => (IEnumerable)GetValue(ColumnsProperty);
      set => SetValue(ColumnsProperty, value);
    }

    protected override void OnAttached()
    {
      base.OnAttached();
      GenerateColumns();
    }

    private void GenerateColumns()
    {
      if (AssociatedObject == null || AssociatedObject.Columns == null || Columns == null) return;
      AssociatedObject.Columns.Clear();
      foreach (var col in Columns)
      {
        AssociatedObject.Columns.Add(ColumnFactory?.ColumnForData(col));
      }
    }
  }

which is used in XAML like


        <ListView ItemsSource="{Binding Candidates}">
            <ListView.Resources>
                <viewModels:ColumnGenerator x:Key="ColumnGenerator"/>
            </ListView.Resources>
            <ListView.View>
                <GridView AllowsColumnReorder="false">
                    <i:Interaction.Behaviors>
                        <viewModels:GridViewGeneratedColumnBehaviour Columns="{Binding Values}" ColumnFactory="{StaticResource ColumnGenerator}"/>
                    </i:Interaction.Behaviors>
                    <GridView.ColumnCollection></GridView.ColumnCollection>
                </GridView>
            </ListView.View>
        </ListView>

It seems to especially have problems with empty grid cells for some reason, but I haven't put substantial effort into a detailed reproduction case unfortunately.
(0008767)
sfernandez   
2023-09-25 17:30   
Unfortunately I was not able to reproduce that crash with the provided behavior and xaml.

So I generated a new version of the Noesis library with extra checks and information: https://drive.google.com/file/d/1w0Go6BKB0K5h_-lksxLHO-190v_6pOYl/view?usp=sharing
Could you please give it a try and provide again the crash dump and logs? It should detect when an object is going to be destroyed with 1 or more references and log the type of the object.
You just need to place the new Noesis.dll in the NoesisGUI package folder "Runtime/Libraries/Windows/x86_64".
(0008786)
jphyzic   
2023-10-03 09:18   
I'm sorry to intervene, but I think I was able to reproduce the issue. It may not be exactly related to mentioned classes, but the behaviour is the same: I get an error in logs `Unexpected RefCount..` followed by a crash. I've made a repository with a reproducable example: https://github.com/ChernyshevDS/NoesisCrashRepro

Open a project in Unity 2021.3.21f1and run a SampleScene. It should show an UI with two buttons, each of them causes a crash but with different means.
First one creates a ton of MultiBinding objects, which causes a crash after some time.
Second one tries to use a `HitResult.VisualHit` which causes an immediate crash (not sure if the same bug, may need to create another issue)
(0008796)
ckfinite   
2023-10-08 06:06   
It seems to have something to do when the last row of the GridView is deleted.

I've put in the debug DLL but don't see anything obvious in the logs. It goes straight from complaining about a messed up bbcode parameter (sorry) to the RefCount and then to erroring over BaseObject not being registered.


TrimDiskCacheJob: Current cache size 6mb
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
NOESIS: BBCode tag '%s' color property value '%s' is not a valid color string
[NOESIS/E] Unexpected RefCount(2) deleting object at 0000017EF46AFD68
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at Packages/NoesisGUI/Runtime/NoesisUnity.cs:360)
Noesis.BaseComponent:Release (intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/BaseComponent.cs:62)
Noesis.Extend:ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6114)
Noesis.Extend:Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View:Update (double) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView:UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)

(Filename: Packages/NoesisGUI/Runtime/NoesisUnity.cs Line: 360)

ERROR: InvalidOperationException: Native type 'BaseObject' is not registered | Stacktrace: Noesis.Extend.GetNativeTypeInfo (System.IntPtr nativeType) (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:468)
Noesis.Extend.ReleasePending () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6111)
Noesis.Extend.Update () (at Packages/NoesisGUI/Runtime/API/Core/Extend.cs:6123)
Noesis.View.Update (System.Double timeInSeconds) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:366)
NoesisView.UpdateInternal () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1455)
NoesisView.LateUpdate () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1356)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:LogError (object)
Game.Log:Error (string) (at Assets/Scripts/Utils/Log.cs:80)
Game.ExceptionHandler:handleException (string,string,UnityEngine.LogType) (at Assets/Scripts/Utils/ExceptionHandler.cs:18)
UnityEngine.Application:CallLogCallback (string,string,UnityEngine.LogType,bool)

I've attached the full logs in a private reply.
(0008798)
ckfinite   
2023-10-08 07:15   
Ah ha!

Okay - so, I figured out the commonality between me and jphyzic's code.

> First one creates a ton of MultiBinding objects, which causes a crash after some time.

This is what my code is doing too. Each time the behaviour updates the gridview it recreates each column. That operation does

  public class SignatureColumnGenerator : IGridViewColumnFactory
  {
    public GridViewColumn ColumnForData(object data)
    {
      if (!(data is SignaturesViewModel.SignatureColumn scd)) return null;
      var familyText = new TextBlock();
        
      var familyBinding = new MultiBinding();
      familyBinding.Bindings.Add(new Binding("Reference"));
      familyBinding.Bindings.Add(new Binding("Detected"));
      familyBinding.Converter = new FamilyDisplayConverter();
      familyBinding.ConverterParameter = scd;
      familyText.SetBinding(RichText.TextProperty, familyBinding);
      return new GridViewColumn()
      {
        Header = scd.SignatureName,
        CellTemplate = new DataTemplate()
      };
    }
[snip some other stuff]
}

When I get rid of the MultiBinding, no more problems. It's something to do with the MultiBinding.
(0008800)
sfernandez   
2023-10-10 15:00   
Thanks a lot for the repro project and the information, I was able to identify the source of the problem.
I will prepare a new library for you to try to verify it doesn't crash anymore.
(0008804)
sfernandez   
2023-10-11 11:58   
Please try the following library: https://drive.google.com/file/d/1M3Oa8nSA9DNbOWeQ90S4oTVc5NN3ttAD/view?usp=sharing
Let me know if the crashes are fixed for you.
(0008811)
jphyzic   
2023-10-12 14:19   
Thanks, I tried this library, but it doesn't help, unfortunately. In fact, any click on UI leads to a crash with the stacktrace ending with:

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:VisualTreeHelper_HitTestHelper <0x000fe>
      at Noesis.VisualTreeHelper:HitTestHelper <0x000ea>
      at Noesis.VisualTreeHelper:HitTest <0x00182>
      at NoesisView:HitTest <0x00262>
      at NoesisView:ProcessEvent <0x00802>
      at NoesisView:OnGUI <0x0030a>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Received signal SIGSEGV
Obtained 28 stack frames
0x0000013db37ec2ff (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:VisualTreeHelper_HitTestHelper (System.Runtime.InteropServices.HandleRef,Noesis.Point&)
0x0000013db37ebdfb (Mono JIT Code) [VisualTreeHelper.cs:257] Noesis.VisualTreeHelper:HitTestHelper (Noesis.Visual,Noesis.Point)
0x0000013db37ebc73 (Mono JIT Code) [VisualTreeHelper.cs:44] Noesis.VisualTreeHelper:HitTest (Noesis.Visual,Noesis.Point)
0x0000013db37eac83 (Mono JIT Code) [NoesisView.cs:1634] NoesisView:HitTest (single,single)
0x0000013dadac7453 (Mono JIT Code) [NoesisView.cs:1679] NoesisView:ProcessEvent (UnityEngine.Event,bool,bool)
0x0000013dadac692b (Mono JIT Code) [NoesisView.cs:1808] NoesisView:OnGUI ()
(0008814)
sfernandez   
2023-10-12 22:57   
The patched library I provided was generated for NoesisGUI 3.2.2, which version are you using?
(0008815)
jphyzic   
2023-10-13 08:41   
Oh, I'm sorry, you are right! I didn't realize that I was throwing a 3.2.2 library into a 3.2.1 package, my bad. Now everything seems to work as intended, thank you very much!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2888 [NoesisGUI] Studio minor have not tried 2023-11-23 16:22 2023-11-23 16:22
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Changing gradient brush from relative to absolute should keep looking the same
Description: We need to recalculate the gradient values (start/end points or radial center/radius) so the gradient looks the same when changing the MappingMode from Relative to Absolute.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2859 [NoesisGUI] Studio minor always 2023-11-21 17:55 2023-11-21 23:02
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Path offset when animating handles
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=2815 animating a path endpoint's handle causes a weird offset
Tags:
Steps To Reproduce: 1. Create an open path
2. Create a storyboard
3. While editing the storyboard, try to edit an endpoint's handle
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2865 [NoesisGUI] Studio minor always 2023-11-21 18:30 2023-11-21 22:57
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Animating Path points produces a lot of changes in other properties
Description: When animating a Path vertex, it will generate changes in other properties as Width/Height, Margin, Horizontal/VerticalAlignment...

In Blend it seems they are changing the original path to Stretch=None and geometry, then setting the appropriate Width and Height to fit in the animated points so no other property needs to be animated.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2870 [NoesisGUI] Studio feature always 2023-11-21 18:38 2023-11-21 22:56
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Trigger's RoutedEvent should show options
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=3250 Routed Events are hard to come by for a new user, and should be shown in a ComboBox.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008967)
fllorens   
2023-11-21 18:40   
Related to 0002869


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2869 [NoesisGUI] Studio minor always 2023-11-21 18:38 2023-11-21 18:52
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Show EventTrigger EventName as a dropdown selector
Description: We should show the EventName property for the EventTrigger as a dropdown with the available routed events.

It would be perfect if we can prioritize the order of events, even group them.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2811 [NoesisGUI] Studio trivial always 2023-11-02 13:07 2023-11-21 17:53
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Play shortcut (Ctrl+P) does not activate the Play command
Description: As seen here: https://youtu.be/K0r8EANNB6k?feature=shared&t=2388
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2833 [NoesisGUI] Studio minor always 2023-11-09 17:46 2023-11-21 17:49
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Add Style support to TextBlockAdorner formatting
Description: Add support for styles to the TextBlockAdorner formatting bar (bold, italic, and underline).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2772 [NoesisGUI] Studio minor always 2023-10-25 13:05 2023-11-21 17:48
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Elements in the preview use styles defined for the Studio
Description: Elements in user's XAML documents use the Noesis Studio's XAML styles which causes the same XAML code to look different in Noesis Studio and in tools such as VS Blend.

To reproduce this issue, create a new TextBlock element and in the Studio preview it's going to be gray rather than black (as it should be).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: StudioStyles.png (20,603 bytes) 2023-10-25 13:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2000&type=bug
Notes
(0008936)
sfernandez   
2023-11-07 19:34   
This happens not because of the Studio styles, but the NoesisTheme (NoesisTheme.DarkBlue) used for the viewport controls, and the root's (Page) Foreground specified in its style.
We need some theme applied so the controls look nice in the Studio (we don't want the internal purple styles by default).

By the way, in Blend designer it seems to be a bug, because if you run the application (F5) you will see that the TextBlock is rendered in white.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2822 [NoesisGUI] Studio minor always 2023-11-07 20:28 2023-11-21 14:20
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Still a few Studio text boxes keep the cursor after hitting Enter
Description: I am observing this in the textbox for changing the name of an element and in the search elements textbox (add element for example).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2802 [NoesisGUI] Studio minor always 2023-10-31 14:03 2023-11-21 12:00
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Hand tool not capturing mouse
Description: Using the hand tool does not capture the mouse, so if the mouse button is released outside the viewport, the tool is not aware of that change and continues dragging the document when the mouse comes back to the viewport.
Also, the document is not dragged when the mouse leaves the viewport area.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2801 [NoesisGUI] Studio minor always 2023-10-31 14:00 2023-11-21 12:00
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Hand tool not working as expected with high-DPI monitors
Description: In high-DPI monitors (scale > 1) the movement of the document doesn't follow the mouse.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2799 [NoesisGUI] Studio feature have not tried 2023-10-30 19:00 2023-11-21 10:56
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Move Brush editor to a popup
Description: Right now, the Brush editor is embedded in the properties panel and it is a bit confusing when there are several editors (Fill, Stroke)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2850 [NoesisGUI] Studio minor always 2023-11-20 14:42 2023-11-20 15:59
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Shapes converted to path are clipping
Description: as seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=420
Tags:
Steps To Reproduce: 1. create a shape, doesn't matter if an ellipse or a rectangle
2. Convert it to path
3. With the direct selection tool modify the points so they are outside the original shape
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2851 [NoesisGUI] Studio minor always 2023-11-20 14:47 2023-11-20 15:59
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Shapes converted to path are not scaling
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=630
Tags:
Steps To Reproduce: 1. Create a shape
2. Convert it to path
3. Try to resize it with the selection tool
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2852 [NoesisGUI] Studio minor always 2023-11-20 14:55 2023-11-20 15:59
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Duplicating a named rectangle don't copy the corner radius property
Description: As seen here https://youtu.be/DC0YTtlfxD4?feature=shared&t=810
Tags:
Steps To Reproduce: 1. Create a rectangle and name it
2. Add RadiusX or RadiusY properties with the adorner for example
3. Using the Alt key duplicate it
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2827 [NoesisGUI] Studio minor have not tried 2023-11-09 17:05 2023-11-16 21:31
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add helper buttons to HoverAdorner to edit style/template
Description: Show edit style/template buttons when hovering elements/controls as shown in the attached image.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: hovermenu.png (16,826 bytes) 2023-11-09 17:05
https://www.noesisengine.com/bugs/file_download.php?file_id=2014&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2838 [NoesisGUI] Studio minor have not tried 2023-11-16 15:49 2023-11-16 16:25
Reporter: dfranjic Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: AddElementToolState gets stuck when drawing elements
Description: When drawing an element (e.g. Border) it seems that sometimes AddElementToolState doesn't pick up the MouseUp event.
I assume this might be due to the HoverAdorner picking up the MouseUp event instead of the tool state.
Tags:
Steps To Reproduce: 1. Select Border element in the "Add element" panel
2. Start drawing the Border
3. Release the left mouse button
Additional Information:
Attached Files: 2838.gif (742,989 bytes) 2023-11-16 15:54
https://www.noesisengine.com/bugs/file_download.php?file_id=2017&type=bug
Notes
(0008946)
dfranjic   
2023-11-16 15:54   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2747 [NoesisGUI] Studio minor always 2023-10-20 15:01 2023-11-16 15:32
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Changing the value in a keyframe not updating the viewport
Description: Create a Storyboard and add some animation keyframes.
Select one of the keyframes and change the Value in the Properties panel.
The viewport is not updated until you play the animation or another time/frame is selected in the ruler.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008945)
dfranjic   
2023-11-16 15:32   
With r12955 it should update the viewport after the command execution.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2818 [NoesisGUI] Studio minor always 2023-11-06 19:32 2023-11-16 14:45
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when converting color to resource
Description: As seen here https://youtu.be/EF0u72Q_ctE?feature=shared&t=132
Tags:
Steps To Reproduce: 1. Open the Background Brush editor
2. Try to convert the color to a resource using the Color's three-dotted menu
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2788 [NoesisGUI] Studio minor always 2023-10-28 04:18 2023-11-16 01:49
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Editing the Color property of an inherited SolidColorBrush will set the inherited Color
Description: On first changing the Foreground Color of a Run in the SolidColorBrush editor, in the properties panel, it will set the color to the inherited SolidColorBrush. Subsequent changes will be applied to a local SolidColorBrush.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008944)
dfranjic   
2023-11-16 01:49   
It should be fixed with r12959. BrushProperty now implements the EnsureValue() which is called whenever user starts to edit some of the brush subproperties (such as Color).
BrushProperty::EnsureValue() clones the brush object if it's not a local value and then applies that cloned brush to the parent object as a local value.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2782 [NoesisGUI] Studio minor always 2023-10-28 02:45 2023-11-15 16:39
Reporter: maherne Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: XAML text serializer should not add newlines between Inline elements
Description: The XAML serializer current adds newlines, and indentation, between Inline elements (Runs, Spans, etc.).

When the XAML is deserialized these newlines cause extra spaces to be added to the TextBlock.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2745 [NoesisGUI] Studio minor always 2023-10-20 14:51 2023-11-15 16:39
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Setting SpeedRatio while recording a Storyboard has no effect
Description: Create a Storyboard and select it to enter record mode.
Animate something and then select the Storybord to see its properties.

Changing SpeedRatio, AccelerationRatio or DecelerationRatio properties does nothing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008941)
dfranjic   
2023-11-15 16:39   
Fixed with r12955.
Though, changing properties like AccelerationRatio will cause the keyframes in Ui not to match with the keyframes in the actual animation.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2728 [NoesisGUI] C# SDK crash always 2023-10-13 19:57 2023-11-15 12:21
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Segfault opening a menu on linux ARM64
Description: 1. Deploy my application to my device running linux ARM64
2. Start my application
3. Open any menu
--> Crash 100% of the time

Thread 1 (Thread 0xffffb76c5010 (LWP 21992)):
#0 0x0000ffbec2067368 in ?? () from /opt/mentor/UiShell/libNoesis.so
#1 0x0000ffbec20693bc in ?? () from /opt/mentor/UiShell/libNoesis.so
#2 0x0000ffbec1c97e6c in ?? () from /opt/mentor/UiShell/libNoesis.so
#3 0x0000ffbec1c98388 in ?? () from /opt/mentor/UiShell/libNoesis.so
#4 0x0000ffbec1c99d1c in ?? () from /opt/mentor/UiShell/libNoesis.so
#5 0x0000ffbec1ce2310 in ?? () from /opt/mentor/UiShell/libNoesis.so
#6 0x0000ffbec1d4d038 in ?? () from /opt/mentor/UiShell/libNoesis.so
#7 0x0000ffbec1d39f90 in ?? () from /opt/mentor/UiShell/libNoesis.so
#8 0x0000ffbec1d3a190 in ?? () from /opt/mentor/UiShell/libNoesis.so
#9 0x0000ffff77e08998 in ?? ()
#10 0x00000000001dee2b in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Tags:
Steps To Reproduce:
Additional Information: I believe this started after upgrading to Noesis 3.2.2
Attached Files:
Notes
(0008823)
darthmaule2   
2023-10-13 22:06   
Confirmed this started happening with v3.2.2 with a git bisect

$ git bisect bad
2960c7a0d0c3bd8ac1e4de24449ee66646938ed9 is the first bad commit
commit 2960c7a0d0c3bd8ac1e4de24449ee66646938ed9
Author: darthmaule2
Date: Wed Oct 4 11:56:33 2023 -0400

    Update to latest Noesis and other nugets
(0008830)
hcpizzi   
2023-10-16 18:39   
Hi Bryan,

Could you provide us an updater to the latest version of the device's software for me to test? Also, if you could send us the base address for libNoesis.so along with a callstack I may be able to find out the symbols.

Thanks!
(0008834)
jsantos   
2023-10-16 20:56   
Also, we are now providing debug libraries for each version of Noesis. Could you please try it? (they are in the private folder)
(0008847)
darthmaule2   
2023-10-18 21:43   
I put a callstack in the description... not sure how to get anything other than that.

Where would I look for this "private" folder?
I downloaded the managed and native SDK and don't see it in either.
I also don't see any binaries at all in the managed SDK.
(0008849)
jsantos   
2023-10-19 10:50   
I have sent you an email with more details


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2789 [NoesisGUI] Unreal crash always 2023-10-28 11:28 2023-11-15 11:56
Reporter: Pelo Studio Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.3  
Platform: Any
Summary: Unreal Crash when exporting xaml files.
Description: https://www.youtube.com/watch?v=WuMHGPOINSo&authuser=0
I followed this tutorial here, and get stuck at the point where you need to import xaml file.
Tags:
Steps To Reproduce: Just import xaml file to unreal Project.
Additional Information:
Attached Files: glitch.riv (18,940 bytes) 2023-10-28 11:28
https://www.noesisengine.com/bugs/file_download.php?file_id=2003&type=bug
glitch.xaml (229 bytes) 2023-10-28 11:28
https://www.noesisengine.com/bugs/file_download.php?file_id=2004&type=bug
Notes
(0008924)
hcpizzi   
2023-11-03 09:24   
There are two issues at play here.

There was a miss handling of Rive files when they failed to import that I've fixed.

The other issue is that, due to Unreal's limitations, we don't support having two files in the same folder with the same name but different extensions. The reason is that they would have the same asset name in Unreal.

Simply renaming glitch.xaml to noglitch.xaml, while leaving glitch.riv the same, results in a correctly imported XAML and no crash, even without the fix I just implemented.

I'll look into warning about this problem during import to avoid confusion.

Thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2768 [NoesisGUI] Studio tweak N/A 2023-10-24 17:50 2023-11-14 18:42
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Add element tool not remembering last selection
Description: I think the Add Element tool (E) should remember the last selection
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2835 [NoesisGUI] Studio minor have not tried 2023-11-09 17:55 2023-11-14 15:20
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Margin adorner shown when using TextBlockAdorner
Description: When editing the text of a TextBlock margins shouldn't be shown.
Right now the MarginAdorner is shown with a weird position and values (see attached image).

It happens also just by selecting a Run from the TextBlock in the Navigator.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: txtmargin.png (12,081 bytes) 2023-11-09 17:55
https://www.noesisengine.com/bugs/file_download.php?file_id=2016&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2826 [NoesisGUI] Studio minor always 2023-11-08 18:38 2023-11-14 15:20
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version:  
Platform: Any
Summary: Adorners should be disabled for Inline selections
Description: When an Inline is selected, only the TextBlockAdorner should be active.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008940)
maherne   
2023-11-14 15:20   
Duplicate of 0002835, fixed in that issue


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2821 [NoesisGUI] Studio trivial always 2023-11-07 20:06 2023-11-14 15:17
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Undo after adding columns to a grid do not refresh
Description: The column (or row) is indeed removed but the editor renderer is not updated
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2828 [NoesisGUI] Studio minor have not tried 2023-11-09 17:10 2023-11-14 13:59
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Make context menu more compact
Description: As shown in the attached image, show context menu options (for Navigator and Viewport) grouped and better organized.

Show also the shortcuts and icons when available.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: elctxmenu.png (40,262 bytes) 2023-11-09 17:10
https://www.noesisengine.com/bugs/file_download.php?file_id=2015&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2742 [NoesisGUI] Studio minor have not tried 2023-10-20 14:35 2023-11-14 12:24
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Selecting an element with the mouse could leave it in drag-move state
Description: Click in the center (so the mouse is placed where the RenderTransformOrigin adorner would be rendered) of an unselected element of the viewport.
In this case the MouseUp is handled by the selection adorner and does not notify the selection tool about it, so it thinks the mouse is still pressed and you are dragging the element around.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2445 [NoesisGUI] C++ SDK feature always 2022-10-24 12:47 2023-11-14 12:02
Reporter: pdx_hoda_ismail Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Implementation of handledEventsToo in AddHandler function
Description: While checking if there is a way to add the handledEventsToo in code, I found in the Microsoft documentation that they have two implementations of the AddHandler function as below:
AddHandler(RoutedEvent, Delegate)
AddHandler(RoutedEvent, Delegate, Boolean)

However, only the first function is implemented in Noesis, and I have to use the handledEventsToo property from the second function in my case. It'd be great if we can use the handledEventsToo in a way to avoid workarounds with lot of code.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2798 [NoesisGUI] Studio minor always 2023-10-30 18:58 2023-11-14 10:40
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: DecorationHelpers for moving, rotating not always working
Description: Trying to resize a rectangle with the decorations. Sometimes the decoration appear but it doesn't do anything because the mouse is not exactly touching the corresponding dot.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2819 [NoesisGUI] Studio minor have not tried 2023-11-06 20:01 2023-11-14 10:40
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: GridAdorner hit test fails when elements are zoomed out
Description: Zooming out the view (making elements smaller) makes that hit-testing over the GridAdorner fails:
- Clicking on the Add col/row area does not work and it is not rendered with the blue background
- Resizing col/row by dragging the handles does not work
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008934)
sfernandez   
2023-11-07 17:57   
It seems that ResizeAdorner suffers from the same problem.
When zooming out the viewport (making elements smaller), hit-testing the adorner handles does not properly work.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2761 [NoesisGUI] Studio feature N/A 2023-10-24 12:26 2023-11-14 02:37
Reporter: jsantos Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Implement a backup system for Hot exits
Description: Files modifies in memory must be stored in the filesystem for easy recovering, in case the studio crashes or is closed. This way next time the Studio is opened, the state of modified files can be restored.

Visual Studio Code is doing something similar: https://superuser.com/questions/1225368/visual-studio-code-unsaved-files-location

Our folder must be located in a similar location (not in project location to avoid confusion about what must be stored in the repository or not), using hashes. We could have one folder with the hash of the project root directory, and then separate files with each modifiles file (using a hash for this too).

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008939)
dfranjic   
2023-11-14 02:37   
Implemented with r12946. Performance needs testing to see if we should immediately switch to file mapping.
With r12946 the backups are saved onto "%APPDATA%/NoesisStudio/Backups"


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2829 [NoesisGUI] Studio minor have not tried 2023-11-09 17:11 2023-11-14 02:35
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Add "Reset Size" option to the context menu
Description: This option will reset Width and Height properties to their default (Auto).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2832 [NoesisGUI] Studio minor have not tried 2023-11-09 17:24 2023-11-14 02:35
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging element from Add Element panel should fill container
Description: When an element is added (by dragging) to the viewport, it should fill the entire container.
This means it should use the default Auto for Width/Height, Stretch for Alignment, and 0 Margin (so no need to be doing "Reset Layout" all the time).

For containers that use child desired size (Canvas, StackPanel, WrapPanel...) we should provide a minimum size so the new element is rendered.

If the user wants to create something with an specific size they can just draw it in the viewport.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2823 [NoesisGUI] C++ SDK minor always 2023-11-07 20:30 2023-11-09 17:44
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Issues editing text
Description: With the following XAML created by the studio, I am not able to properly select words (double click) or even move the cursor char by char:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      Background="#FF4D5052">
  <Grid>
    <TextBlock x:Name="Emoji" Text="hola colcacola" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" Height="103" FontSize="69" TextAlignment="Center" Foreground="#FF10BC0F"/>
  </Grid>
</Page>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2786 [NoesisGUI] Studio minor always 2023-10-28 03:00 2023-11-09 17:43
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Template support in TextBlockAdorner
Description: Add support for TextBlockAdorner in templates.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2830 [NoesisGUI] Studio minor have not tried 2023-11-09 17:13 2023-11-09 17:13
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Show "Auto" instead of "NaN" for numeric values
Description: In the case of Width and Height properties show also the ActualWidth and ActualHeight in parenthesis:

Width: "Auto (1200)"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2824 [NoesisGUI] Studio minor have not tried 2023-11-07 20:31 2023-11-08 00:05
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Can't remove name of an element
Description: 1. Select an element in the viewport or Navigator
2. Assign it a name via double-clicking in the element in the Navigator, or by editing the Name in the top of the Properties panel
3. Edit the name again
4. Try clearing the name, it should remove the x:Name but it just returns to the latest name applied
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008938)
dfranjic   
2023-11-08 00:05   
Seems like that functionality wasn't even implemented. Should be fixed with r12933.

Though, it's currently only removing the Name and unregistering the element from NameScope.
What it should also do is remove the name occurrence from all parts of the XAML code (like if animation, trigger, even a property binding, etc... is targeting the object).
I'd put this functionality in a reusable part of code (such as a separate XamlUndoRedoCommand) so it can also be used when, for example, removing an element (within RemoveElementCommand) and in similar situations.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2825 [NoesisGUI] Studio major have not tried 2023-11-07 20:57 2023-11-07 21:02
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Weird beaviour in ComboBoxes
Description: A ComboBox (I can reproduce this with the easing function box in the Studio) can extend the result area on top of the current mouse position create annoying scenarios.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008937)
sfernandez   
2023-11-07 21:02   
It happens when the dropdown is so big that it opens on top of the ComboBox toggle, so MouseUp even is happening in one of the ComboBoxItems of the just opened drop-down.

WPF is limiting the size of the drop-down to the available size below or above the ComboBox toggle, so it is never opened over it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2770 [NoesisGUI] Studio minor always 2023-10-25 09:52 2023-11-07 19:18
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Zooming elements with effects applied causes displacement
Description: Elements that have an effect applied show a strange displacement when zoomed in, as shown here: https://youtu.be/v3ZB3N6p970?feature=shared&t=1729
Tags:
Steps To Reproduce: 1. Draw an element ( a button, a rectangle )
2. Apply Appearance>Effect (it doesn't matter which one)
3. Zoom in the element, either with the zoom tool or the mouse wheel
Additional Information:
Attached Files:
Notes
(0008935)
sfernandez   
2023-11-07 19:18   
Solved trunk (3.2.2) was merged


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2751 [NoesisGUI] Studio minor always 2023-10-20 17:35 2023-11-07 18:26
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Using textboxes or passwordboxes in play mode activates toolbar shortcuts
Description: Trying to type letters associated to the toolbar in textboxes or passwordboxes in play mode will stop the mode, as shown here: https://youtu.be/v3ZB3N6p970?feature=shared&t=45
Tags:
Steps To Reproduce: Open a sample with a textbox, click play and enter A, E, P etc.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2750 [NoesisGUI] Studio minor always 2023-10-20 17:17 2023-11-07 18:26
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Typing while renaming files or elements also changes the active tool
Description: Double click the name of an element in the Navigator to edit it.
Then press any key associated with the tools (V, A, P, G...). It will add the corresponding letter to the name, but also change the active tool.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2406 [NoesisGUI] C++ SDK feature always 2022-08-26 14:59 2023-11-06 20:58
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Any
Summary: Support overriding default directional navigation
Description: https://learn.microsoft.com/en-us/windows/apps/design/input/gamepad-and-remote-interactions#xy-focus-navigation-and-interaction

Because directional focus navigation limits the user to moving up, down, left, and right, you may end up with scenarios where parts of the UI are inaccessible (see attached image).

We should provide a way to explicitly indicate how directional navigation will work in some scenarios:
<Canvas>
    <Button x:Name="LeftBtn" Content="Left" .../>
    <Button x:Name="RightBtn" Content="Right" .../>
    <Button x:Name="TopBtn" Content="Top" .../>
    <Button x:Name="BottomBtn" Content="Bottom" .../>
    <Button Content="Home"  
            noesis:Element.XYFocusLeft="{Binding ElementName=LeftBtn}"
            noesis:Element.XYFocusRight="{Binding ElementName=RightBtn}"
            noesis:Element.XYFocusUp="{Binding ElementName=TopBtn}"
            noesis:Element.XYFocusDown="{Binding ElementName=BottomBtn}" />
</Canvas>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: dirnav-issue.png (7,547 bytes) 2022-08-26 14:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1675&type=bug
Notes
(0008051)
sfernandez   
2022-08-26 14:59   
(0008561)
sumel007   
2023-06-21 08:36   
Hi. We need this feature in our project. Do you think it'd be possible for it to make it to the next update?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2817 [NoesisGUI] C++ SDK major always 2023-11-03 08:47 2023-11-06 17:06
Reporter: nvonhertzen Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Focus not getting removed on disabled elements after update from 3.2.1->3.2.2
Description: There seems to be a change in behavior where prior to < 3.2.2 the focus of elements would be removed after IsEnabled was set to false. With 3.2.2 this does not appear to occur anymore, breaking many of our element styles as they are based on those property values.

Attached are two screenshots from the Gui Inspector on the same element, one from 3.2.1 and one from 3.2.2.
Tags:
Steps To Reproduce: Focus an element
Set the element IsEnabled state to false
Observe the focus still remaining on the element
Additional Information:
Attached Files: 3_2_2.png (29,516 bytes) 2023-11-03 08:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2011&type=bug
3_2_1.png (30,797 bytes) 2023-11-03 08:47
https://www.noesisengine.com/bugs/file_download.php?file_id=2012&type=bug
Notes
(0008925)
sfernandez   
2023-11-03 12:42   
Hello,

This is related to the implementation of the FocusManager (0001982) and the logical focus.

The property IsFocused indicates if the element has the logical focus in its focus scope (there can be several focus scopes, so more than one element with logical focus can exist at the same time).
The property IsKeyboardFocused indicates if the element has the keyboard focus (only one element in the whole UI can have the keyboard focus).

When a focused element is disabled, it loses the keyboard focus, but the logical focus remains and the focus scope still keeps a reference to that element. This is how WPF behaves and how we implemented it in Noesis.

Does this make sense to you?
(0008927)
nvonhertzen   
2023-11-06 06:14   
Thanks, that makes sense. Is there any way for us to easily track (breaking) changes like this in the future? Reading through the Changelog for 3.2.2 it wasn't obvious the introduction of the FocusManager would have changed existing behavior (instead of just introducing new functionality).
(0008929)
sfernandez   
2023-11-06 17:06   
The changelog should be the place where these breaking changes should be explained. This was a mistake from our side and we are going to fix the changelog and improve the related documentation.

We were solving an incorrect behavior regarding the logical focus (IsFocused property and GotFocus/LostFocus events) with the implementation of FocusManager.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
694 [NoesisGUI] Unity3D major always 2015-07-25 01:00 2023-11-06 15:28
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: DoubleAnimation.BeginTime doesn't seem to work properly
Description: I have the following Storyboard with extra big values. :)

[quote]
            <Storyboard x:Key="ShowStoryboard">
                <DoubleAnimation From="0.0" To="1.0" Duration="0:0:1.1" Storyboard.TargetName="WindowBorder" Storyboard.TargetProperty="RenderTransform.ScaleX" />

                <DoubleAnimation From="0.0" To="0.1" Duration="0:0:1.2" Storyboard.TargetName="WindowBorder" Storyboard.TargetProperty="RenderTransform.ScaleY" />

                <DoubleAnimation From="0.1" To="1.0" BeginTime="0:0:1.2" Duration="0:0:1.3" Storyboard.TargetName="WindowBorder" Storyboard.TargetProperty="RenderTransform.ScaleY" />
            </Storyboard>
[/quote]

I try to do a second animation after the first has finished. The same Storyboard works in WPF but in NoesisGUI it's kinda messed up right now. The first time it runs both storyboards run, with the second animation apparently starting from scratch again. Each successive run it seems that only the second animation is played.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002771)
sfernandez   
2015-07-25 01:57   
It seems that we are ignoring the first animation of ScaleY, only the second one is applied.

While we fix this bug, you can use a DoubleAnimationUsingKeyFrames that is perfect for this scenario:

---
    <Storyboard x:Key="ShowStoryboard">
        <DoubleAnimation From="0.0" To="1.0" Duration="0:0:1.1"
            Storyboard.TargetName="WindowBorder"
            Storyboard.TargetProperty="RenderTransform.ScaleX" />
    
        <DoubleAnimationUsingKeyFrames
            Storyboard.TargetName="WindowBorder"
            Storyboard.TargetProperty="RenderTransform.ScaleY">
            <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0.0"/>
            <EasingDoubleKeyFrame KeyTime="0:0:1.2" Value="0.1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:2.5" Value="1.0"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
---
(0002772)
Scherub   
2015-07-25 02:09   
Ah, this works. Thanks a lot! :)
(0008928)
ivodopiviz   
2023-11-06 15:27   
(Last edited: 2023-11-06 15:27)
Is it possible I'm hitting the same bug in C++?

My XAML:
--
<Storyboard x:Key="FadeAnimation" TargetName="MyStackPanel">
    <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="1.0" Duration="0:0:1"/>
    <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.0" Duration="0:0:1" BeginTime="0:0:10"/>
</Storyboard>
--

I know there are workarounds, but it'd be nice to have this fixed :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2808 [NoesisGUI] Studio minor always 2023-11-02 12:01 2023-11-03 12:33
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Sudden displacement when using Move tool
Description: As seen here https://youtu.be/K0r8EANNB6k?feature=shared&t=813 when trying to use the Move tool, there's a sudden displacement of the selected element.
Tags:
Steps To Reproduce: 1. Draw a rectangle
2. Try to move it with the Selection tool
3. hit the M key and try to move it again
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2816 [NoesisGUI] Studio major always 2023-11-02 16:41 2023-11-02 17:54
Reporter: dfranjic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Dragging some NumericProperty value will generate lots of commands
Description: With the rework of how NumericInput and NumericProperty work, there's a bug now that when dragging, for example, StrokeThickness value from 20px to 40px Studio will generate 20 undo/redo commands.
This requires me to press CTRL+Z 20 times to go back to the original value.
Studio should invoke Property.SetValueCommand only once -- on drag end, but update the NumericProperty.NumericValue value while user is dragging. This will keep the realtime preview but generate only command with the value 40px.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2809 [NoesisGUI] Studio trivial always 2023-11-02 12:32 2023-11-02 16:58
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Save All command not working
Description: The File>Save All command and the associated shortcut (Ctrl+Shift+S) are not working, as seen here: https://youtu.be/K0r8EANNB6k?feature=shared&t=1507
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2703 [NoesisGUI] Unreal feature always 2023-09-27 13:01 2023-11-02 11:43
Reporter: paula.flamingfowl Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.3  
    Target Version: 3.2.3  
Platform: Windows
Summary: Mouse enhanced input actions not triggering
Description: We have a set of cards that are selected by clicking them, and should be deselected if we right click them or any part of the screen.
We are using the enhanced input system and we created a cancel card action (assigned to right click).

If we right click any part of the screen without noesis UI, it works correctly.
However, if we right click a part of the screen with some UI (for example on top of the cards or any other button), the enhanced input doesn't trigger.

While investigating this, we realized that if we change the NativeOnMouseButtonDown function return value when hit, the right click works but there are other issues with changing this
Tags: enhanced input, Unreal
Steps To Reproduce: Create a UI with a button, import it and add it to the viewport.
Create an enhanced action assigned to right click. Assing the completed event to some print or log funtion
Right click outsite the button. This should work
Right click inside the button. The print/log won't appear
Additional Information:
Attached Files: noesis.PNG (66,257 bytes) 2023-09-27 13:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1956&type=bug
Video-detail-page (1).webm (2,461,765 bytes) 2023-09-27 13:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1957&type=bug
2703.patch (6,150 bytes) 2023-10-25 12:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1999&type=bug
Notes
(0008882)
hcpizzi   
2023-10-25 12:37   
Hi Paula,

I think I've fixed the issue. We weren't taking into account whether the event was handled by Noesis or not. I've added that check and it fixes your repro case. Could you give this patch a try?

Thanks.
(0008915)
paula.flamingfowl   
2023-10-31 15:50   
The patch works!!! thanks :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2804 [NoesisGUI] Unity3D feature always 2023-11-01 15:08 2023-11-02 10:06
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Add TextBox.PreventKeyboardDisplayOnProgrammaticFocus
Description: A mechanism to disable the keyboard display is needed because there are scenarios in which a keyboard display is not needed or wanted. For example, if a console has an attached keyboard.

associated thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=3118&p=16266#p16266
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008921)
stonstad   
2023-11-01 15:08   
https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.textbox.preventkeyboarddisplayonprogrammaticfocus?view=winrt-22621


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1586 [NoesisGUI] Unity3D tweak N/A 2019-11-24 14:29 2023-11-01 15:14
Reporter: stonstad Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Make NoesisUnity.UpdateCursor Public
Description: It'w great that Noesis allows us to define textures for cursors via the Noesis Settings screen. It makes sense to be able to set those same textures using the Noesis API. This request is for NoesisUnity.UpdateCursor to be made public.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2791 [NoesisGUI] Unity3D minor always 2023-10-29 21:39 2023-11-01 15:12
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: [NOESIS/E] Visuals don't have a common ancestor after domain reload.
Description: After a domain reload, I get the following error when user controls are created.

[NOESIS/E] Visuals don't have a common ancestor
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisUnity.cs:363)
Noesis.Visual:TransformToVisual (Noesis.Visual) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/Visual.cs:137)
NoesisGUIExtensions.BackgroundEffectBehavior:OnElementUpdated (object,Noesis.EventArgs) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Interactivity/BackgroundEffectBehavior.cs:125)
Noesis.EventArgs:InvokeHandler (System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Proxies/EventArgs.cs:51)
Noesis.EventManager:InvokeHandler (string,System.Delegate,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:660)
Noesis.EventHandlerStore:RaiseEvent (intptr,intptr,string,intptr,intptr) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/Events.cs:407)
Noesis.View:Update (double) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/API/Core/View.cs:368)
NoesisView:UpdateInternal () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1461)
NoesisView:LateUpdate () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.2/Runtime/NoesisView.cs:1362)
Tags:
Steps To Reproduce: This is new to 3.2.2.

1) Open Unity
2) Run game. No errors are shown. Stop game.
3) Run game. Now user controls throw the above error.

I'm sure you'll need a reproduction project. This is one of three different kinds of errors I am seeing with 3.2.2. I'm trying to resolve the bug with the stack overflow, and I'm running into this behavior. I am also running into Unity Editor crashes on domain reload after editing XAML. I'll file a separate report for the crashes -- but perhaps it is all related.
Additional Information:
Attached Files:
Notes
(0008897)
stonstad   
2023-10-30 05:38   
(Last edited: 2023-10-30 05:38)
*edit, removed.
(0008900)
sfernandez   
2023-10-30 11:11   
I was not able to reproduce it with our BackgroundBlur sample included in the plugin.
Is this only happening in your game or are you able to reproduce it in a separate simple project?

I could add a check before calling TransformToVisual to avoid the error message, but I want to understand why this is happening.
(0008904)
stonstad   
2023-10-30 16:23   
I think the error message is telling us that something is wrong, but I can't seem to figure out what the precise side-effect is to having a static singleton instance of my top-level UI, and how it is contributing to the behaviors I am seeing.

I have a very complex use-case for background blur effect, which involves two separate effects, and binding logic to tell a template which blur layer to use (to avoid cyclic dependencies).


[UIStateMachine]
<Controls>


[Root] (this is a static singleton)
   [OverlayBlurSource]
      [BackgroundBlurSource (Camera)]
      [BaseLayer]
         <BackgroundControlTitle>
            -> BackgroundBlurSource
   
   [OverlayLayer]
       <TitleMenuControl>
          <BackgroundEffect1>
              -> OverlayBlurSource

- The first background blur source uses a 2D texture from the Unity camera. This is "Background Blur Source". Controls in the BaseLayer or OverlayLayer may reference this brush.
- The second background blur source combines everything in the "base" layer visual tree, including the original blur source. This is called "OverlayBlurSource". This is the blur source used by overlays.

I can see how referencing an incorrect layer causes a cyclic dependency. But what isn't clear is why it sometimes works, and sometimes doesn't, and always works in 3.2.1. As you suggest, it may be related to a different behavior / issue.
(0008907)
stonstad   
2023-10-30 17:41   
The warning message, " [NOESIS/E] Visuals don't have a common ancestor after domain reload." is now resolved by changing my binding approach.

Previously, binding BackgroundEffectBehavior.Source was accomplished as follows:

// code-behind:

public static readonly DependencyProperty BlurLayerProperty = DependencyProperty.Register("BlurLayer", typeof(FrameworkElement), typeof(BorderControlTitle), new PropertyMetadata(null));

public FrameworkElement BlurLayer
{
   get { return (FrameworkElement)GetValue(BlurLayerProperty); }
   set { SetValue(BlurLayerProperty, value); }
}

public override void OnApplyTemplate()
{
   base.OnApplyTemplate();
   if (Template != null && BlurLayer != null)
   {
      BackgroundEffectBehavior _BottomPanelBackgroundEffect = GetTemplateChild("_BottomPanelBackgroundEffect") as BackgroundEffectBehavior;
      BackgroundEffectBehavior _TopPanelBackgroundEffect = GetTemplateChild("_TopPanelBackgroundEffect") as BackgroundEffectBehavior;

      if (_BottomPanelBackgroundEffect != null)
         _BottomPanelBackgroundEffect.Source = BlurLayer;
      if (_TopPanelBackgroundEffect != null)
         _TopPanelBackgroundEffect.Source = BlurLayer;
   }
}

Binding is now accomplished as follows:

public static readonly DependencyProperty BlurLayerProperty = DependencyProperty.Register("BlurLayer", typeof(FrameworkElement), typeof(BorderControlTitle), new PropertyMetadata(null));

public FrameworkElement BlurLayer
{
   get { return (FrameworkElement)GetValue(BlurLayerProperty); }
   set { SetValue(BlurLayerProperty, value); }
}

// XAML:
 <b:Interaction.Behaviors>
     <noesis:BackgroundEffectBehavior Source="{Binding RelativeSource={RelativeSource AncestorType=local:BorderControlHero}, Path=BlurLayer}">
         <BlurEffect Radius="{Binding Radius, Source={StaticResource BottomBlurRadius}}"/>
     </noesis:BackgroundEffectBehavior>
 </b:Interaction.Behaviors>

All error messages and crashes are now resolved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2795 [NoesisGUI] Studio minor always 2023-10-30 13:22 2023-10-31 22:07
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when deleting last path point
Description: As seen here https://youtu.be/4NP8yxvpKC0?feature=shared&t=1075 deleting the remaining point of a path will crash the Studio, instead of simply removing the path entirely.
Tags:
Steps To Reproduce: 1. Create a path with the pen tool
2. Either with the pen or the direct selection tool, remove points one by one
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2774 [NoesisGUI] Studio minor always 2023-10-26 14:01 2023-10-31 22:06
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Copy paste not working on Navigator panel
Description: As seen here https://youtu.be/3C8q3FXvqKM?feature=shared&t=54 copy and paste command don't work properly or at all in the navigator panel.
Tags:
Steps To Reproduce: 1. Create some elements in a page (rectangles, grids..)
2. Rename the elements
2. Using the context menu copy and paste an element
Additional Information:
Attached Files: CopyPasteBug.xaml (751 bytes) 2023-10-27 12:45
https://www.noesisengine.com/bugs/file_download.php?file_id=2002&type=bug
Notes
(0008887)
dfranjic   
2023-10-27 12:23   
I can't seem to reproduce this. Can you please try to find simplest way to reproduce this issue? Or provide a XAML file in which this bug occurs.
(0008888)
fllorens   
2023-10-27 12:45   
Yes, it works properly when they don't have a name. If the user renames them doubleclicking in the navigator panel element's name, and then copy pastes, the bug arises. I'm attaching a xaml where this behavior happens.
(0008889)
fllorens   
2023-10-27 12:45   
Try this one
(0008919)
dfranjic   
2023-10-31 22:06   
Sorry, I somehow missed the fact that the element must have a name.
It should be fixed with r12898 -- Studio now searches for "x:Name" in the contents of the XAML before actually pasting it and replaces it's value with a name that isn't taken.
Duplicate (ALT+Drag or right click->Duplicate) now also handles the x:Name correctly (finds a non-taken name and stores it as "x:Name" rather than just "Name").


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2803 [NoesisGUI] Studio tweak N/A 2023-10-31 20:02 2023-10-31 20:02
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Preview options in ComboBoxes
Description: When a Combobox is expanded and we hover the options, it would be nice to "temporally" set that option and view the result. If no option is selected, the initial value is restored.

This would make things like previewing fonts a much faster process.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2726 [NoesisGUI] Unity3D major always 2023-10-13 16:12 2023-10-31 18:24
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.3  
Platform: Any
Summary: Visual Corruption During ScrollViewer Scroll Operation
Description: Please see enclosed video:
https://stellarconquest.blob.core.windows.net/tmp/NoesisScrollGlitch.mp4

When deployed to an XBOX Series X using Unity, scrolling causes visual artifacts to appear on screen. Attached XAML is included.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: LicenseControl.xaml (1,604 bytes) 2023-10-13 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1982&type=bug
Notes
(0008819)
jsantos   
2023-10-13 18:47   
Could you please also attach a razor capture?
(0008821)
stonstad   
2023-10-13 19:50   
Yes. What is a razor capture? Do you mean pix?
(0008822)
jsantos   
2023-10-13 20:01   
Yes, sorry :)
(0008827)
stonstad   
2023-10-16 15:30   
I had to rollback to 3.2.1 because the PC builds were crashing due to https://www.noesisengine.com/bugs/view.php?id=2727. I will attempt to re-install 3.2.2 to provide PIX data, but this is a lower priority for us because 2727 breaks PC builds.
(0008832)
jsantos   
2023-10-16 20:46   
Thanks, I will try to reproduce with your XAML
(0008911)
stonstad   
2023-10-30 21:39   
Jesus, I am not seeing this behavior anymore on XBOX. If it comes back, I'll reply back here with a PIX dump.
(0008917)
jsantos   
2023-10-31 18:24   
I am closing this for now, please reopen (or create a new one) if needed


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2790 [NoesisGUI] Studio crash always 2023-10-28 18:44 2023-10-31 15:31
Reporter: dfranjic Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio crashes on macOS when using Metal renderer and trying to open a XAML document
Description: Trying to open a XAML document on macOS with Metal renderer causes a crash.
The crash is caused by calling a RenderDevice::SetRenderTarget(). The call occurs in XamlDocument.cpp when trying to render the preview (in XamlDocument::Invalidate()).
NoesisApp::RenderContext* ctx = NoesisApp::RenderContext::Current()
RenderDevice* device = ctx->GetDevice();
...
device->SetRenderTarget(mRenderTarget)


where the mRenderTarget value was created beforehand with:
mRenderTarget.Reset(device->CreateRenderTarget("EditorPreview", mPreviewWidth, mPreviewHeight, 1, true));

with values mPreviewWidth==397, mPreviewHeight==554.

Here's the full stack trace:
Thread 1 Queue : com.apple.main-thread (serial)
#0	0x00000001844a5420 in objc_msgSend ()
#1	0x0000000100c23dcc in NoesisApp::MTLRenderDevice::SetRenderTarget(Noesis::RenderTarget*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Render/MTLRenderDevice/Src/MTLRenderDevice.mm:435
#2	0x000000010053238c in Editor::XamlDocument::Invalidate(bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/XamlDocument.cpp:1114
#3	0x0000000100292c18 in Editor::Document::OnPreviewResize(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/Document.cpp:650
#4	0x0000000100291b64 in Editor::Document::SetPreviewContainer(Noesis::Image*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/Document.cpp:326
#5	0x00000001005353bc in Editor::XamlDocument::SetPreviewContainer(Noesis::Image*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/XamlDocument.cpp:3283
#6	0x00000001002a51bc in Noesis::TypePropertyFunction<Editor::Document, Noesis::Image*>::Set(void*, void const*) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyImpl.inl:188
#7	0x00000001002a568c in void Noesis::PropSet<Noesis::Image*>(Noesis::TypeProperty const*, void*, Noesis::Param<Noesis::Image*>::Type) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypeProperty.inl:62
#8	0x00000001002a55f4 in void Noesis::SetComponent<Noesis::Image*>(Noesis::TypeProperty const*, void*, Noesis::BaseComponent*, Noesis::Int2Type<2>) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyUtil.h:91
#9	0x00000001002a55a8 in void Noesis::SetComponent<Noesis::Image*>(Noesis::TypeProperty const*, void*, Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyUtil.h:99
#10	0x00000001002a5040 in Noesis::TypePropertyFunction<Editor::Document, Noesis::Image*>::SetComponent(void*, Noesis::BaseComponent*) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyImpl.inl:166
#11	0x0000000100ddc16c in NoesisApp::ChangePropertyAction::SetPropertyValue(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/ChangePropertyAction.cpp:233
#12	0x0000000100ddbbb0 in NoesisApp::ChangePropertyAction::Invoke(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/ChangePropertyAction.cpp:116
#13	0x0000000100e23660 in NoesisApp::TriggerAction::CallInvoke(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/TriggerAction.Interactivity.cpp:43
#14	0x0000000100e25eb4 in NoesisApp::TriggerBase::InvokeActions(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/TriggerBase.Interactivity.cpp:73
#15	0x0000000100df4f70 in NoesisApp::EventTriggerBase::OnEvent() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/EventTriggerBase.cpp:93
#16	0x0000000100df5404 in NoesisApp::EventTriggerBase::OnRoutedEvent(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Interactivity/Src/EventTriggerBase.cpp:292
#17	0x0000000100df5b88 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::RoutedEventArgs const&)>::MemberFuncStub<NoesisApp::EventTriggerBase, void (NoesisApp::EventTriggerBase::*)(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&)>::Invoke(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:468
#18	0x00000001006030b0 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::RoutedEventArgs const&)>::operator()(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#19	0x0000000100602810 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::RoutedEventArgs const&)>::MultiDelegate::Invoke(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&, void const*, bool (*)(void const*)) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:595
#20	0x0000000100967204 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::RoutedEventArgs const&)>::Invoke(Noesis::BaseComponent*, Noesis::RoutedEventArgs const&, void const*, bool (*)(void const*)) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:184
#21	0x00000001009624cc in Noesis::UIElement::NotifyHandlers(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2724
#22	0x0000000100962124 in Noesis::UIElement::RaiseEvent(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:1309
#23	0x0000000100723428 in Noesis::FrameworkElement::OnLoaded() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/FrameworkElement.cpp:3678
#24	0x0000000100723384 in Noesis::FrameworkElement::RaiseLoaded() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/FrameworkElement.cpp:3666
#25	0x000000010098d4dc in Noesis::ViewLayout::FirePendingLoaded() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ViewLayout.cpp:648
#26	0x000000010098cc74 in Noesis::ViewLayout::ProcessLayout() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ViewLayout.cpp:456
#27	0x000000010098ca54 in Noesis::ViewLayout::Layout(bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ViewLayout.cpp:301
#28	0x00000001009612e4 in Noesis::UIElement::UpdateLayout() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:844
#29	0x00000001001f496c in Editor::BindableSelectedItemBehavior::OnSelectedItemChanged(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/BindableSelectedItemBehavior.cpp:86
#30	0x00000001001f1040 in Noesis::Delegate<void (Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)>::FreeFuncStub<void (*)(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)>::Invoke(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:396
#31	0x000000010058e7bc in Noesis::Delegate<void (Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)>::operator()(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#32	0x000000010058e748 in Noesis::DependencyObject::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:613
#33	0x000000010059dadc in Noesis::Freezable::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/Freezable.cpp:216
#34	0x000000010058fec0 in Noesis::DependencyObject::NotifyPropertyChanged(Noesis::DependencyProperty const*, Noesis::StoredValue*, void const*, void const*, bool, bool, Noesis::PropertyMetadata const*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:1327
#35	0x000000010058f3f8 in Noesis::DependencyObject::InternalSetValue(Noesis::DependencyProperty const*, void*, void const*, void*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:971
#36	0x00000001001f3f5c in Noesis::ValueStorageManagerImpl<Noesis::Ptr<Noesis::BaseComponent>>::SetValue(Noesis::DependencyObject*, Noesis::DependencyProperty const*, Noesis::BaseComponent*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Include/NsGui/ValueStorageManagerImpl.inl:243
#37	0x00000001005a02d8 in Noesis::ValueStorageManager::SetValueObject(Noesis::DependencyObject*, Noesis::DependencyProperty const*, Noesis::BaseComponent*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/ValueStorageManager.cpp:38
#38	0x000000010058c380 in Noesis::DependencyProperty::SetValueObject(Noesis::DependencyObject*, Noesis::BaseComponent*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Include/NsGui/DependencyProperty.inl:208
#39	0x000000010058c84c in Noesis::DependencyObject::InternalSetExpression(Noesis::DependencyProperty const*, Noesis::Expression*, unsigned char) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:707
#40	0x000000010058ca84 in Noesis::DependencyObject::InternalInvalidateProperty(Noesis::DependencyProperty const*, unsigned char) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:1151
#41	0x000000010058cde4 in Noesis::DependencyObject::InvalidateProperty(Noesis::DependencyProperty const*, unsigned char) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:280
#42	0x00000001005f6544 in Noesis::BindingExpression::InvalidateTarget() const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/BindingExpression.cpp:1583
#43	0x00000001005fd0c4 in Noesis::BindingExpression::OnNotifyPropertyChanged(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/BindingExpression.cpp:1801
#44	0x000000010061695c in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&)>::MemberFuncStub<Noesis::BindingExpression, void (Noesis::BindingExpression::*)(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&)>::Invoke(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:468
#45	0x00000001005db484 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&)>::operator()(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#46	0x00000001006170c0 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&)>::MultiDelegate::Invoke(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:572
#47	0x00000001005db484 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&)>::operator()(Noesis::BaseComponent*, Noesis::PropertyChangedEventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#48	0x0000000100cd4204 in NoesisApp::NotifyPropertyChangedBase::OnPropertyChanged(char const*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/ApplicationLauncher/Src/NotifyPropertyChangedBase.cpp:26
#49	0x00000001003bb120 in Editor::Project::SetSelectedFile(Editor::ProjectFile*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/Project.cpp:1041
#50	0x00000001003d261c in Noesis::TypePropertyFunction<Editor::Project, Editor::ProjectFile*>::Set(void*, void const*) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyImpl.inl:188
#51	0x00000001003d2aac in void Noesis::PropSet<Editor::ProjectFile*>(Noesis::TypeProperty const*, void*, Noesis::Param<Editor::ProjectFile*>::Type) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypeProperty.inl:62
#52	0x00000001003d2a14 in void Noesis::SetComponent<Editor::ProjectFile*>(Noesis::TypeProperty const*, void*, Noesis::BaseComponent*, Noesis::Int2Type<2>) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyUtil.h:91
#53	0x00000001003d29c8 in void Noesis::SetComponent<Editor::ProjectFile*>(Noesis::TypeProperty const*, void*, Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyUtil.h:99
#54	0x00000001003d24a0 in Noesis::TypePropertyFunction<Editor::Project, Editor::ProjectFile*>::SetComponent(void*, Noesis::BaseComponent*) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/TypePropertyImpl.inl:166
#55	0x00000001005f6c4c in Noesis::BindingExpression::UpdateSourceInternal(void const*) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/BindingExpression.cpp:1364
#56	0x00000001005f866c in Noesis::BindingExpression::BeforeSet(Noesis::DependencyObject*, Noesis::DependencyProperty const*, void const*, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/BindingExpression.cpp:298
#57	0x000000010058fbd0 in EvaluateLocalExpression(Noesis::DependencyObject*, Noesis::Expression*&, Noesis::StoredValue&, Noesis::DependencyProperty const*, void const*, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:730
#58	0x000000010058ee78 in Noesis::DependencyObject::InternalSetValue(Noesis::DependencyProperty const*, void*, void const*, void*, unsigned char, Noesis::Expression*, Noesis::PropertyMetadata const*, Noesis::Value::Destination, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Src/DependencyObject.cpp:869
#59	0x00000001005cd720 in void Noesis::DependencyObject::SetValue_<Noesis::Ptr<Noesis::BaseComponent>>(Noesis::Int2Type<1>, Noesis::DependencyProperty const*, Noesis::Ptr<Noesis::BaseComponent>::Type*, Noesis::Value::Destination) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Include/NsGui/DependencyObject.inl:200
#60	0x00000001008d9f4c in void Noesis::DependencyObject::SetCurrentValue<Noesis::Ptr<Noesis::BaseComponent>>(Noesis::DependencyProperty const*, Noesis::SetValueType<Noesis::Ptr<Noesis::BaseComponent>>::Type) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/DependencySystem/Include/NsGui/DependencyObject.inl:107
#61	0x00000001008d9d8c in Noesis::Selector::UpdateSelectedValue(Noesis::BaseComponent*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/Selector.cpp:920
#62	0x00000001008da19c in Noesis::Selector::UpdateSingleSelectedAndRaiseEvent(Noesis::SelectionChangedEventArgs const&, Noesis::BaseComponent*, int, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/Selector.cpp:1042
#63	0x00000001008d9238 in Noesis::Selector::UpdateSingleSelectedAndRaiseEvent(Noesis::SelectionChangedEventArgs const&, int) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/Selector.cpp:1035
#64	0x00000001008d9794 in Noesis::Selector::InternalSelectRange(int, int) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/Selector.cpp:782
#65	0x00000001007f8098 in Noesis::ListBox::SingleSelection(Noesis::ListBoxItem*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ListBox.cpp:145
#66	0x00000001007f873c in Noesis::ListBox::ItemClicked(Noesis::ListBoxItem*, bool, bool, bool, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ListBox.cpp:311
#67	0x00000001007f8614 in Noesis::ListBox::ItemClicked(Noesis::ListBoxItem*, bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ListBox.cpp:287
#68	0x00000001007f9f20 in Noesis::ListBoxItem::OnMouseButtonCommon(Noesis::MouseButtonEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ListBoxItem.cpp:277
#69	0x00000001007f9e84 in Noesis::ListBoxItem::OnMouseLeftButtonUp(Noesis::MouseButtonEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/ListBoxItem.cpp:155
#70	0x0000000100974dc0 in Noesis::UIElement::StaticFillClassType(Noesis::TypeClassCreator&)::$_34::operator()(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:3590
#71	0x0000000100974f00 in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::EventArgs const&)>::FunctorStub<Noesis::UIElement::StaticFillClassType(Noesis::TypeClassCreator&)::$_34>::Invoke(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:431
#72	0x00000001005cef6c in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::EventArgs const&)>::operator()(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#73	0x0000000100967178 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2746
#74	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#75	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#76	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#77	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#78	0x0000000100962428 in Noesis::UIElement::NotifyHandlers(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2712
#79	0x0000000100967bdc in Noesis::UIElement::PromoteMouseButtonEvent(Noesis::MouseButtonEventArgs const&, Noesis::RoutedEvent const*, Noesis::RoutedEvent const*) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:3300
#80	0x0000000100975acc in Noesis::UIElement::StaticFillClassType(Noesis::TypeClassCreator&)::$_38::operator()(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:3600
#81	0x0000000100975c0c in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::EventArgs const&)>::FunctorStub<Noesis::UIElement::StaticFillClassType(Noesis::TypeClassCreator&)::$_38>::Invoke(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:431
#82	0x00000001005cef6c in Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::EventArgs const&)>::operator()(Noesis::BaseComponent*, Noesis::EventArgs const&) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#83	0x0000000100967178 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2746
#84	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#85	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#86	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#87	0x00000001009671b0 in Noesis::UIElement::NotifyTypeHandlers(Noesis::TypeClass const*, Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2753
#88	0x0000000100962428 in Noesis::UIElement::NotifyHandlers(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2712
#89	0x00000001009623a0 in Noesis::UIElement::BubblingEvent(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:2782
#90	0x0000000100962114 in Noesis::UIElement::RaiseEvent(Noesis::RoutedEventArgs const&) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/UIElement.cpp:1301
#91	0x000000010080c06c in Noesis::Mouse::ButtonUp(int, int, Noesis::MouseButton) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/Mouse.cpp:391
#92	0x0000000100985658 in Noesis::View::MouseButtonUp(int, int, Noesis::MouseButton) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Core/Src/View.cpp:701
#93	0x0000000100cd993c in NoesisApp::Window::OnDisplayMouseButtonUp(NoesisApp::Display*, int, int, Noesis::MouseButton) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/ApplicationLauncher/Src/Window.cpp:1481
#94	0x0000000100ce9a44 in Noesis::Delegate<void (NoesisApp::Display*, int, int, Noesis::MouseButton)>::MemberFuncStub<NoesisApp::Window, void (NoesisApp::Window::*)(NoesisApp::Display*, int, int, Noesis::MouseButton)>::Invoke(NoesisApp::Display*, int, int, Noesis::MouseButton) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:468
#95	0x0000000100c84004 in Noesis::Delegate<void (NoesisApp::Display*, int, int, Noesis::MouseButton)>::operator()(NoesisApp::Display*, int, int, Noesis::MouseButton) const at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Core/Kernel/Include/NsCore/Delegate.inl:172
#96	0x0000000100c8409c in NoesisApp::AppKitDisplay::OnMouseButtonUp(double, double, Noesis::MouseButton) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/AppKitDisplay/Src/AppKitDisplay.mm:426
#97	0x0000000100c85558 in -[WindowDelegate mouseUp:button:] at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/AppKitDisplay/Src/WindowDelegate.mm:174
#98	0x0000000100c85590 in -[WindowDelegate mouseUp:] at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/AppKitDisplay/Src/WindowDelegate.mm:179
#99	0x00000001882bb998 in forwardMethod ()
#100	0x0000000188c39e24 in _routeMouseUpEvent ()
#101	0x000000018824cb80 in -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] ()
#102	0x000000018824c82c in -[NSWindow(NSEventRouting) sendEvent:] ()
#103	0x00000001888f3c08 in -[NSApplication(NSEventRouting) sendEvent:] ()
#104	0x0000000100c8364c in NoesisApp::AppKitDisplay::EnterMessageLoop(bool) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/AppKitDisplay/Src/AppKitDisplay.mm:131
#105	0x0000000100c8de10 in NoesisApp::DisplayLauncher::Run() at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/DisplayLauncher/Src/DisplayLauncher.cpp:47
#106	0x0000000100352604 in NsMain(int, char**) at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/Gui/Editor/Src/Main.cpp:209
#107	0x000000010035259c in main at /Users/dfranjic/Code/Work/Editor/Native/Src/Packages/App/Launcher/Include/NsApp/EntryPoint.h:92
#108	0x00000001844f1058 in start ()
Tags:
Steps To Reproduce: Launch Studio on macOS with the Metal renderer.
Click on a XAML page inside of the "Assets" panel.
Additional Information:
Attached Files: MacCrash.png (309,078 bytes) 2023-10-28 18:44
https://www.noesisengine.com/bugs/file_download.php?file_id=2007&type=bug
Notes
(0008914)
dfranjic   
2023-10-31 15:31   
It doesn't crash anymore with the use of DynamicTextureSource so I'm going to close this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2785 [NoesisGUI] Studio minor always 2023-10-28 02:59 2023-10-31 14:57
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: TextBlockAdorner Styling
Description: Apply the styling from the mockup provided. The control bar should maintain a fixed size on screen, unaffected by zoom level.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2784 [NoesisGUI] Studio minor always 2023-10-28 02:56 2023-10-31 14:54
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Studio_A1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Runs that were in Hyperlinks are keeping the Hyperlink Foreground Brush
Description: Runs that were in Hyperlinks keep the Foreground Foreground Brush from the Hyperlink style, when removed from the Hyperlink.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2796 [NoesisGUI] Studio minor always 2023-10-30 13:43 2023-10-31 11:35
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: TextBlock linebreaks are not saved
Description: As seen here https://youtu.be/4NP8yxvpKC0?feature=shared&t=1083 linebreaks created with the enter key appear to be working fine, but they are missing after reload.
Tags:
Steps To Reproduce: 1. Create a textblock
2. Add text and create a linebreak with the enter key.
3. Save the file and reopen
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2797 [NoesisGUI] Studio minor always 2023-10-30 18:56 2023-10-30 18:56
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Moving elements with the mouse
Description: Only previously selected items must be moved with mouse. If you select a new item, the mouse must be released before starting a new movement.

This avoid confusing movements of elements, for example a grid with a circle inside. Right now it is very easy to move the grid when you are moving the circle but click in the incorrect area.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2794 [NoesisGUI] Studio minor always 2023-10-30 13:00 2023-10-30 13:19
Reporter: fllorens Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Pasting text in a TextBlock not working properly
Description: As seen here https://youtu.be/4NP8yxvpKC0?feature=shared&t=453 pasting text from other apps or from the Studio itself doen't work the first time, it needs to use the command twice to actually paste the text.
In some cases the first paste appears to be saved somehow and it's shown after reloading the file.
Tags:
Steps To Reproduce: 1. Copy unformatted text from a text editor or the Studio itself
2. Add a textBlock
3. Double-click on it
4. Hit Ctrl+V
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2752 [NoesisGUI] Studio minor always 2023-10-20 17:37 2023-10-28 02:12
Reporter: fllorens Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Grid row/col adorners are resized by viewboxes
Description: The row and column adorners are bigger than expected if the grid is inside a viewbox.
Tags:
Steps To Reproduce: Create a grid inside a viewbox and add rows or columns.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2744 [NoesisGUI] Studio minor always 2023-10-20 14:46 2023-10-27 19:22
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: TransformGroup created when moving element in record mode not visible in the Properties panel
Description: Create a Storyboard and select it to enter record mode.
Select an element in the viewport and move it.
A keyframe will be recorded and a new TransformGroup assigned to the element, but it won't be visible in the Properties panel.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2777 [NoesisGUI] Studio minor always 2023-10-26 15:37 2023-10-27 18:49
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Studio not animating textblock foreground colors
Description: Studio is adding (SolidColorBrush.Color) to the path of the keyframes, but it should be adding (TextBlock.Foreground).(SolidColorBrush.Color) instead.

As shown here https://youtu.be/3C8q3FXvqKM?feature=shared&t=1768
Tags:
Steps To Reproduce: 1. Create a textblock
2. Create a storyboard
3. Try to animate the foreground color of the textblock
Additional Information:
Attached Files:
Notes
(0008890)
dfranjic   
2023-10-27 18:49   
It seems that Studio would get confused when SolidColorBrush were stored inline (such as <TextBlock Foreground="#....">). Should be fixed with r12889.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2737 [NoesisGUI] Studio feature always 2023-10-20 11:27 2023-10-27 12:20
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Allow edit clipping path with Direct Selection and Pen tools
Description: When an element has a geometry assigned to the Clip property we should be able to use the Direct Selection and Pen tools to edit and modify the clipping geometry.

In this case, the Path adorner should be rendered in a different color to identify it as a clipping geometry.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: clipedit.png (6,625 bytes) 2023-10-20 11:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1992&type=bug
Notes
(0008886)
dfranjic   
2023-10-27 12:20   
Implemented with r12875. Though, implementation can be improved. Currently, a "phantom" Path is added to the view since PathEngineObject currently heavily relies on the Path object (such as GetRenderGeometryHelper()->Clone() to create the outline geometry, it's layout bounds, the PathEngine makes Path->PathEngineObject connections, etc...) so it feels a bit hacky.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2758 [NoesisGUI] Studio minor always 2023-10-24 10:40 2023-10-27 12:14
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Path vertex creation offsets from cursor position
Description: When creating a path with the pen tool inside a template, there seems to be an offset from the cursor and the actual vertex,
as shown here: https://youtu.be/7Wb5ozUjVY8?feature=shared&t=362

The effect also appears outside templates, although it is less noticeable.
Tags:
Steps To Reproduce: 1- Create an empty template
2- Using the pen tool, create a moderately complex path.
Additional Information:
Attached Files:
Notes
(0008885)
dfranjic   
2023-10-27 12:14   
Fixed with r12875. Some of the calculations were wrong. A new point should be directly under the mouse cursor now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2739 [NoesisGUI] Studio crash always 2023-10-20 14:14 2023-10-27 12:11
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: It is possible to add an element to elements that don't support children
Description: Create a Rectangle, then go to the Add Element panel and drag another element (Button) inside the Rectangle.
The button will be incorrectly added as a child of the Rectangle.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2762 [NoesisGUI] Studio minor always 2023-10-24 12:35 2023-10-24 23:39
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Size values jumping randomly when resizing rectangle
Description: As shown here: https://youtu.be/7Wb5ozUjVY8?feature=shared&t=720 and in the attached gif, a slender rectangle (or a panel, it only matters the proportion and some kind of path in the back for the snapping) will abruptly change its height and margins when resized next to the path's border.
Tags:
Steps To Reproduce: 1. Create a path or rectangle (inside or outside a template, doesn't matter)
2. Create another slender rectangle ( or panel ) and try to resize it as shown in the attached gif.
Additional Information:
Attached Files: Bugs.gif (624,717 bytes) 2023-10-24 12:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1998&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2759 [NoesisGUI] Studio minor always 2023-10-24 11:37 2023-10-24 23:37
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Rough movement of selected elements inside templates
Description: Due to some kind of snapping, moving elements inside templates are often rough and difficult, as seen here: https://youtu.be/7Wb5ozUjVY8?feature=shared
Tags:
Steps To Reproduce: 1. Create an empty template
2. Add a rectangular path inside with the pen tool
3. Add a rectangle with roughly the same height as the path
4. Using the Move tool, try to reposition it.
Additional Information:
Attached Files:
Notes
(0008878)
dfranjic   
2023-10-24 23:37   
Fixed with r12870. There is now a slight change in snapping logic & the snapping bounds are now scaled with the viewport zoom


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2760 [NoesisGUI] Studio minor have not tried 2023-10-24 11:41 2023-10-24 23:35
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Change parent adorner is shown even if Ctrl key is pressed
Description: When dragging an element around with the Ctrl key pressed then element should be moved without changing parent.
Showing the Change Parent adorner in that case is confusing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2765 [NoesisGUI] Studio minor always 2023-10-24 16:50 2023-10-24 20:52
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Foreground color picker not shown
Description: Textblock foreground color picker not shown, the user needs to clear it first.
Tags:
Steps To Reproduce: 1. Create a TextBlock
2. In properties panel try to change the Foreground color
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2766 [NoesisGUI] Studio feature N/A 2023-10-24 17:43 2023-10-24 19:36
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Improvements editing number values
Description: The value shouldn't be applied until hitting enter.

Once we hit enter, we should go into a state where the whole value is selected. In this state, is very easy to edit the value again or jumping to the next item with TAB.

In the Select All state, if we hit Escape, we remove the selection.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2769 [NoesisGUI] Studio tweak N/A 2023-10-24 17:55 2023-10-24 17:55
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Properties panel resetting scroll
Description: Each time a new element is selected, the properties panel scroll is reset to the beginning. It remembers the sections that are opened or closed and I think it should remember the position of the scroll too (or something similar, Blend is doing it). Note that the number of components may be different in the new selected item, so just remembering the scroll position is not enough, we need something smarter.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2764 [NoesisGUI] Studio minor always 2023-10-24 14:13 2023-10-24 15:50
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: mp3 files disappearing from asset panel when restarting
Description: Imported mp3 files disappear from the assets panels after restarting the Studio, but the actual files remain in the OS folder, as shown here: https://youtu.be/v3ZB3N6p970?feature=shared&t=288
Tags:
Steps To Reproduce: 1. Import an mp3 file
2. Close an open again the Studio
Additional Information:
Attached Files:
Notes
(0008876)
dfranjic   
2023-10-24 15:50   
Audio and video file formats weren't recognized as supported file types thus Studio wasn't bothered showing them in the "Assets" panel. Fixed with r12867.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2757 [NoesisGUI] Studio minor always 2023-10-24 10:08 2023-10-24 11:41
Reporter: fllorens Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash when dragging a textblock to a template
Description: Dragging a textblock to a template containing shapes crashes the application, as seen in https://youtu.be/7Wb5ozUjVY8?feature=shared&t=157
Tags:
Steps To Reproduce: 1. create an empty template ( a radio button, a button for example )
2. Add a shape or a rectangle with reset layout
3. Try to drag a Textblock to the template (in the viewport)
Additional Information:
Attached Files:
Notes
(0008871)
dfranjic   
2023-10-24 11:41   
With r12866, the Studio checks if the target element has a content property (if it can hold the children) and if it doesn't have it, the Studio will try to check if the target element's parent can have children.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2749 [NoesisGUI] Studio minor always 2023-10-20 16:57 2023-10-24 10:11
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: Studio_A1  
    Target Version: Studio_A1  
Platform: Any
Summary: Margin adorner not showing margins when element is centered
Description: If the Horizontal/Vertical Alignment is set to Center, margins are not properly shown in the Margin adorner.

Also, the grey lines (shown for the sides that are not affected by the margin) are not rendered as expected.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2743 [NoesisGUI] Studio crash always 2023-10-20 14:42 2023-10-23 19:54
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Crash moving an element in the viewport while editing a Storyboard
Description: Create a Storyboard and select it to enter the animation record mode.

Select an element in the viewport and drag it around so a TransformGroup would be assigned.
The second time you try to move the element in the viewport it will crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008867)
dfranjic   
2023-10-23 19:54   
Crashes were fixed with r12862. Though, dragging elements through viewport while editing a Storyboard suffers from same bugs
like any other type of Property animation at the moment (XAML is correctly generated but Storyboard objects aren't properly updated all the time)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2753 [NoesisGUI] Unity3D minor always 2023-10-23 17:05 2023-10-23 17:07
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unity pre-rotation when using Vulkan not supported
Description: https://docs.unity3d.com/Manual/vulkan-swapchain-pre-rotation.html

If your application uses the Vulkan Graphics API and the device supports Vulkan, Unity can apply this rotation during rendering which reduces the performance impact of the rotation. This is called pre-rotation.

Pre-rotation is not supported in Noesis.

For now the workaround is disabling pre-rotation in Player settings:

 - Disable "Other Settings > Apply display rotation during rendering"

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2736 [NoesisGUI] Studio minor always 2023-10-20 11:09 2023-10-23 13:48
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Changing Path Stretch from None to Fill does not update the rendered path
Description: 1. Create a Path
2. Set its Stretch to None
3. Resize its bounding box
4. Set Stretch back to Fill

The rendered Path won't be updated, although when Direct Selection tool is selected the path adorner shows the expected result. Playing the scene also shows the correct Path.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: pathfill.png (24,754 bytes) 2023-10-20 11:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1991&type=bug
Notes
(0008863)
dfranjic   
2023-10-23 13:48   
Fixed with the r12860. After properties were updated in the UpdatePropertyCommand call, the element required an invalidation using the UIElement::InvalidateVisual().
Although, it is worth noting that changing Stretch from None to Uniform or UniformToFill worked perfectly fine.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2741 [NoesisGUI] Studio minor always 2023-10-20 14:31 2023-10-23 13:38
Reporter: sfernandez Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: Studio_A1  
Platform: Any
Summary: Incorrect vertical margins when moving or resizing elements
Description: Create a Grid of 100px height, then add a 100x100 Rectangle inside, then drag the Rectangle vertically inside the Grid.
When the Rectangle is near the the top or bottom edges of the Grid the calculated margins are clipping the Rectangle (see attached image).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: marginbug.png (32,840 bytes) 2023-10-20 14:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1994&type=bug
Notes
(0008862)
dfranjic   
2023-10-23 13:28   
This is fixed with the r12859.
The horizontal/vertical alignment value is now calculated differently. For example, if the element is moved outside of the parent on the top side, the element's VerticalAlignment is going to be set to Top, regardless of the fact that the element also crosses the center of it's parent's bounds.
Second, the margin calculation is also a bit different when the element's Horizontal/VerticalAlignment is set to Center.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2256 [NoesisGUI] C++ SDK feature always 2022-02-01 16:26 2023-10-19 12:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Support property notifications from different threads in bindings
Description: WPF supports notifying of property changes from different threads and the binding engine will properly enqueue the changes to the UI thread to update the UI elements.

To correctly implement this in Noesis we should be able to enqueue tasks in our View to be performed during the Update call.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008840)
jsantos   
2023-10-17 18:18   
Related forum thread

https://www.noesisengine.com/forums/viewtopic.php?t=3101


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1269 [NoesisGUI] C# SDK trivial N/A 2018-04-02 08:56 2023-10-19 10:45
Reporter: ai_enabled Platform: PC  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Expose mip map LOD bias for texture sampling
Description: As we've discussed, usually with the trilinear filter the result is too blurry, especially if the texture is too large (and all our textures are for 4K so they're large, later we plan to introduce auto switching between textures for 4K and low DPI).

The mip map LOD bias helps with increasing sharpness without getting any side effects when the displayed image is static.
See the attached screenshots to demonstrate why we need the bias to enable the trilinear filtering.

The proper solution might be an XAML extension (similar to Text Stroke) which is recognized by NoesisGUI:

<Image Source="icon.png" noesis:Texture.MipMapLodBias="-0.5"  />

Or maybe even apply it globally to the root and so to the whole visual tree (I mean - enable inheritance of this property).

Another solution - expose the bias setting to the texture wrap API (Texture.WrapD3D11Texture() method) or as a property of the Noesis.Texture class itself.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: MipMap.png (3,110,601 bytes) 2018-04-02 08:56
https://www.noesisengine.com/bugs/file_download.php?file_id=914&type=bug
NoMipMap.png (3,037,066 bytes) 2018-04-02 08:56
https://www.noesisengine.com/bugs/file_download.php?file_id=913&type=bug
Notes
(0005165)
jsantos   
2018-04-02 16:37   
Thanks for the report! Yes, I was thinking about adding a new method to Texture. But I need to think more about it.
(0006820)
ai_enabled   
2020-11-25 01:08   
I wish we can get this method in Texture class or at least as an argument in WrapD3D11 method.
(0007231)
jsantos   
2021-05-07 18:34   
Hi Vladimir, resurrecting this... :)

Sorry for the late reply, this is more complex that adding a float parameter to the texture class. Because it changes de API that our clients need to implement for custom render devices. In modern APIs, MipMapLodBias is not isolated and cannot be set to the GPU. Instead of that, this value is part of a bigger object, SamplerState for example in D3D11. This objects needs to be precreated. This can be done, but we would like to avoid it because it is extra work that need to be done by our clients, we want to avoid increasing the complexity of implementing a custom renderer. Anyway, we are close to 3.1 and this is a good moment to take a decision about this.

I have playing with our examples, and I am observing that a MipMapLodBias of -0.75 works almost perfect and very close to BitmapScalingMode set to HighQuality in WPF.
So, I propose hardcoding this value or a bit better, just exposing that number in RenderDevice, with the rest of configuration functions like SetOffscreenWidth, etc...

This way, instead of a value per texture, you will have the same value for all textures. This is probably what you would end up doing.

What do you think?
(0007694)
ai_enabled   
2022-01-02 04:28   
Hi Jesús,
I'm sorry for the very late reply. I've totally forgotten about the email and this ticket as in early May I was totally overwhelmed with 1.0 release and heavy DDoS. attacks on our servers.

Global MipMapLodBias sounds like a good solution for us. We're using very few raster images for the UI itsel—mostly there are item icons, and these are rarely animated so negative LOD bias should not cause any noticeable artifacts.

Regards!
(0007699)
jsantos   
2022-01-02 19:52   
3.1 was released with an internal bias of -0.75, please let us know if it works fine in your game. Thanks!
(0008848)
ai_enabled   
2023-10-19 02:53   
Hello!
Sorry for the late reply. We've upgraded to 3.2 a few months ago and nobody complained about the icon bluriness so I guess it's working great!
I wish you can provide this setting in RenderDevice as you've proposed in the message above. This way we can not only determine the best setting (e.g. I would like to have no bias when rendering in 4K) but also ensure that the mip map bias works as expected.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2725 [NoesisGUI] Unity3D major always 2023-10-12 16:11 2023-10-17 18:41
Reporter: Otter Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.3  
Platform: Any
Summary: [Oculus Quest 2] Multiview with MSAA no longer renders WorldSpaceUI
Description: When using 4x MSAA with stereo rendering mode Multiview, the UI is no longer rendering. Multi Pass works as expected.

Using:
- Unity 2022.3.10f1
- Oculus XR Plugin v4.0.0 (the same with v4.1.1)
- XR Plugin Management v4.4.0
Tags:
Steps To Reproduce: Import Project.zip

or

1. Switch to Android
2. Install Oculus XR Plugin
3. Create a scene with WorldSpaceUI
4. Under Quality select Anti Aliasing: 4x Multi Sampling
5. Go to XR Plug-in Management -> Oculus and change Stereo Rendering Mode to MultiView

Additional Information:
Attached Files: Project.zip (26,550 bytes) 2023-10-12 16:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1981&type=bug
Notes
(0008838)
jsantos   
2023-10-17 14:42   
Could you please try with Vulkan?
(0008839)
Otter   
2023-10-17 15:04   
With Vulkan there is no issue with it
(0008841)
jsantos   
2023-10-17 18:41   
I am going to mark this as solved because this is a problem on Unity side and Vulkan is now the recommended path for Android.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2674 [NoesisGUI] C# SDK feature always 2023-08-26 02:15 2023-10-16 20:55
Reporter: darthmaule2 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: I would like built-in GIF support
Description: I would like Noesis to support GIFs.
We are adding a lot of content to our WPF app to help users understand what some of our features on the product do.
That content is mostly in GIFs.
We will soon (well sometime in 2024) need to port all that to our Noesis app.
Tags:
Steps To Reproduce:  NA
Additional Information:
Attached Files:
Notes
(0008676)
jsantos   
2023-08-28 16:46   
(Last edited: 2023-08-28 16:46)
Any chance these GIFs could be preprocessed to a more optimal format or you need direct suport for GIFs.
(0008824)
darthmaule2   
2023-10-13 22:09   
We are exploring other options, but we have a WPF application which uses GIFs in a new feature "Learn More", which has a kind of slide show of various product features.
If there was a format we could convert the GIFs to for our Noesis application that would look about the same, that would be OK too.
(0008833)
jsantos   
2023-10-16 20:55   
We could explore supporting this using Video Textures (0001485)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1485 [NoesisGUI] C++ SDK feature have not tried 2019-06-10 13:01 2023-10-16 20:54
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support for Basis Universal GPU Texture and Texture Video
Description: Add this library to the application framework to improve texture usage and to bring support for video.

https://github.com/BinomialLLC/basis_universal
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2498 [NoesisGUI] Unity3D minor always 2023-01-31 07:23 2023-10-16 20:38
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Behaviors gets detached when associated object is temporarily removed from visual tree
Description: Assume that we have a UI with several controls with attached behaviors and user wishes to rearrange them from code behind. To do that he should temporarily remove controls from their parents and add them to a new place. Problem is that when a control gets removed from visual tree all behaviors attached to it gets detached and are not reattached when the control is added back.

See more: https://www.noesisengine.com/forums/viewtopic.php?p=15217
Tags:
Steps To Reproduce: 1. Create a userControl with the following markup:
<UserControl
    ... namespaces skipped
    mc:Ignorable="d">
    <StackPanel Orientation="Vertical">
        <ItemsControl x:Name="itemsControl">
            <Border Width="100" Height="100" Background="Red">
                <i:Interaction.Behaviors>
                    <attach:TestBehaviour />
                </i:Interaction.Behaviors>
            </Border>
        </ItemsControl>
        <Button Click="Button_Click">Sort</Button>
    </StackPanel>
</UserControl>

TestBehaviour implementation:
public class TestBehaviour : Behavior<FrameworkElement>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        System.Diagnostics.Debug.WriteLine($"Attached to {AssociatedObject}");
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        System.Diagnostics.Debug.WriteLine($"Detached");
    }
}

2. Create a button handler in code behind:
private void Button_Click(object sender, RoutedEventArgs e)
{
    var itemsControl = FindName("itemsControl") as ItemsControl;
    var item = itemsControl.Items[0];
    itemsControl.Items.RemoveAt(0);
    itemsControl.Items.Insert(0, item);
}

On app startup the TestBehaviour gets attached. Clicking on a button causes the Border element to be temporarily removed from ItemsControl and added back. It causes the TestBehaviour to be detached.
Additional Information:
Attached Files:
Notes
(0008257)
jphyzic   
2023-02-03 10:24   
I've managed to find a workaround. Not sure if it's reliable, but better than nothing:

public static class NoesisBehaviorsFixes
    {
        /// <summary>
        /// Fixes detaching behaviours when manipulating UI items.
        /// </summary>
        /// <remarks>
        /// When a visual is removed from visual tree and this visual has an attached behaviours in it
        /// (or its children) these behaviours gets a notification that they are removed from visual tree
        /// and detach themselves, but adding them back to tree does not make them reattach.
        /// This method remembers all objects that were detached and not reattached until returned object
        /// is disposed and detaches them on dispose.
        /// </remarks>
        /// <returns></returns>
        public static IDisposable GuardDetachingBehaviors()
        {
            return new AttachmentTracker();
        }

        private class AttachmentTracker : IDisposable
        {
            private readonly HashSet<AttachableObject> objectsTodetach = new HashSet<AttachableObject>();
            private readonly PropertyMetadata metadata;
            private readonly PropertyChangedCallback originalChangeCallback;
            private bool isDisposed;

            public AttachmentTracker()
            {
                var type = typeof(AttachableObject);
                var field = type.GetField("AttachmentProperty", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
                var attachmentProperty = field.GetValue(null) as DependencyProperty;
                if (attachmentProperty == null)
                {
                    isDisposed = true;
                    return;
                }

                metadata = attachmentProperty.GetMetadata(typeof(AttachableObject));
                originalChangeCallback = metadata.PropertyChangedCallback;
                metadata.PropertyChangedCallback = OnAttachmentChanged;
            }

            public void Dispose()
            {
                if (!isDisposed)
                {
                    DetachObjects();
                    metadata.PropertyChangedCallback = originalChangeCallback;
                    isDisposed = true;
                }
            }

            private void OnAttachmentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            {
                if ((Visibility)e.NewValue == (Visibility)(-1))
                {
                    if (d is AttachableObject obj)
                        objectsTodetach.Add(obj);
                }
                else
                {
                    if (d is AttachableObject obj)
                        objectsTodetach.Remove(obj);
                }
            }

            private void DetachObjects()
            {
                foreach (var item in objectsTodetach)
                    item.Detach();
            }
        }
    }

Usage: any manipulation with UI elements that involves detaching them from visual tree should be guarded:

using (NoesisBehavioursFixes.GuardDetachingBehaviors())
{
    ... manipulate UI elements
}
(0008281)
sfernandez   
2023-02-14 11:09   
This is the patch:

Index: AttachableObject.cs
===================================================================
--- AttachableObject.cs	(revision 12128)
+++ AttachableObject.cs	(revision 12129)
@@ -53,14 +53,10 @@
                         associatedObject.GetType(), GetType()));
                 }
 
+                associatedObject.Destroyed += OnAssociatedObjectDestroyed;
                 _associatedObject = GetPtr(associatedObject);
                 _view = GetPtr(View.Find(this));
 
-                BindingOperations.SetBinding(this, AttachmentProperty, new Binding("Visibility")
-                {
-                    RelativeSource = new RelativeSource { AncestorType = typeof(UIElement) }
-                });
-
                 InitObject();
 
                 OnAttached();
@@ -69,7 +65,7 @@
 
         public void Detach()
         {
-            if (AssociatedObject != null)
+            if (_associatedObject != IntPtr.Zero)
             {
                 OnDetaching();
 
@@ -100,19 +96,9 @@
             get { return (View)GetProxy(_view); }
         }
 
-        // We use a binding to get notified when the associated object is disconnected from the tree
-        // and is going to be destroyed, so we can properly detach from it
-        private static readonly DependencyProperty AttachmentProperty = DependencyProperty.Register(
-            ".Attachment", typeof(Visibility), typeof(AttachableObject),
-            new PropertyMetadata(Detached, OnAttachmentChanged));
-
-        private static void OnAttachmentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+        private void OnAssociatedObjectDestroyed(IntPtr d)
         {
-            if ((Visibility)e.NewValue == Detached)
-            {
-                AttachableObject attachable = (AttachableObject)d;
-                attachable.Detach();
-            }
+            Detach();
         }
 
         private const Visibility Detached = (Visibility)(-1);


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2650 [NoesisGUI] Unity3D crash always 2023-07-12 12:15 2023-10-14 21:49
Reporter: sfernandez Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Default Font in settings only work for 1 font variation
Description: From forum post: https://www.noesisengine.com/forums/posting.php?mode=reply&t=3022

We should provide a list of font assets so user can specify all the font variations that will be available for the default font family.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2023-10-14_163405514.zip (800,196 bytes) 2023-10-14 18:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1986&type=bug
Notes
(0008825)
nadjibus   
2023-10-14 18:49   
Update: It appears the crash is not happening anymore in v3.2.2. Thank you!

Edit: Spoke too soon, still happens (less frequently though), but the stack trace seems different, so I don't know if it's the same bug or not. Attached the new crash log + dump.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2719 [NoesisGUI] Unity3D minor always 2023-10-10 23:43 2023-10-11 10:15
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Drop shadow effect bug in VR
Description:  Any UI element that uses drop shadow is not rendered if it is positioned in a specific area relative to the camera size. Buggy behavior can be seen in the attached video.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Buggy drop shadow.mp4 (5,162,303 bytes) 2023-10-10 23:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1976&type=bug
Notes
(0008802)
sfernandez   
2023-10-11 10:15   
Is this with NoesisGUI 3.2.1 or 3.2.2?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2718 [NoesisGUI] C++ SDK major always 2023-10-10 11:16 2023-10-10 19:16
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: it's possible to create an infinite loop from xaml
Description: IF you create a contentpresenter style on a datatemplate and let it change the contenttemplate from a trigger this will trigger

mFlags.refreshVisualTree = true on applying of the datatemplate
when the container is reused when scrolling a virtualised list
Tags:
Steps To Reproduce:  <Style x:Key="SlotPresenterStyle" TargetType="ContentPresenter">
        <Setter Property="ContentTemplate" Value="{StaticResource Template.GameObject}"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding Object.Type}" Value="Item">
                <Setter Property="ContentTemplate" Value="{StaticResource Template.Item}"/>
            </DataTrigger>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding Object.Type}" Value="Item"/>
                    <Condition Binding="{Binding Object.IsEquipment}" Value="True"/>
                </MultiDataTrigger.Conditions>
                <Setter Property="ContentTemplate" Value="{StaticResource Template.ItemEquipment}"/>
            </MultiDataTrigger>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding Object.Type}" Value="Item"/>
                    <Condition Binding="{Binding Object.IsContainer}" Value="True"/>
                </MultiDataTrigger.Conditions>
                <Setter Property="ContentTemplate" Value="{StaticResource Template.ItemContainer}"/>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
    <DataTemplate x:Key="Template.InventorySlot" DataType="ls:VMInventorySlot">
        <ContentPresenter x:Name="Presenter" Content="{Binding Object}" Style="{StaticResource SlotPresenterStyle}" />
    </DataTemplate>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2715 [NoesisGUI] Website major always 2023-10-06 08:50 2023-10-09 16:57
Reporter: aliagha.huseynli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.2  
Product Build: Resolution: won't fix  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unable to download previous version
Description: When I go to select the older version link and click on Download it takes me download page but shows the new version.
Tags:
Steps To Reproduce: Go to https://www.noesisengine.com/docs/Gui.Core.Changelog.html
Then go down till e.g Version 3.2.1
Click on Download
and it takes you this page https://www.noesisengine.com/developers/downloads.php
which only you are able to download Version 3.2.2 (New Version always)
Additional Information:
Attached Files:
Notes
(0008794)
jsantos   
2023-10-06 12:02   
This is on purpose, Indie free licenses only get access to the latest version.

We provide all versions, including debug and symbols to our Pro licensees.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2714 [NoesisGUI] Unreal crash always 2023-10-04 22:56 2023-10-04 22:56
Reporter: paula.flamingfowl Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Inline font icons ignore the Enabled and IsHitTestable properties from parent text box
Description: We're using a TextBox which RichText.Text property is binded to a property that could contain inline tags. We created a tag that changes the FontFamily to use a font icon.
The icons are being rendered correctly, but we realized that if we remove the interaction by setting the IsEnabled to false, the drawn icon still detects the interaction.

For example (see the video), we have some world icons (using a TextBox with a font icon) that we want to remove their interaction since hovering or clicking them doesn't nothing (and there are objects behind them, the wall, that we want to interact). We set the IsHitTestVisible and IsEnabled propeties to false. However, when we try to interact with the object behind the icon, we can't since the icon is detecting the interaction.

This is how we are setting the text to print the icon:
 <Viewbox IsHitTestVisible="False" IsEnabled="False">
          <TextBlock noesis:RichText.Text="{Binding Text}" Foreground="{TemplateBinding Foreground}"/>
</Viewbox>

THen, this is an inline tag with a font icon we created:
    <Style x:Key="FontMapIcon" TargetType="{x:Type Inline}">
        <Setter Property="FontFamily" Value="{DynamicResource Font.Family.Map.Icon}"/>
    </Style>

And the binded Text could be something like <FontMapIcon>A</>

We investigated this a bit and we found that changing the IsEnabled property in the newly created Run component (the ParseText method in RichText.cpp) fixes the problem (see attached image).
Tags: richtext
Steps To Reproduce: Create a font icon with iconmoon.

Import the font into blend and create an inline tag. Something like this:
  <Style x:Key="FontMapIcon" TargetType="{x:Type Inline}">
        <Setter Property="FontFamily" Value="{DynamicResource Font.Family.Map.Icon}"/>
    </Style>

Create a TextBox and bind the RichText.Text property to a text with the font tag: <FontMapIcon>A</>. Set IsEnabled to false

Create a component behind that TextBox which color changes when it's hovered

Import into unreal. See that the object behind is not hovered when the cursor is on top of the TextBox icon
Additional Information:
Attached Files: image.png (46,534 bytes) 2023-10-04 22:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1969&type=bug
Nueva-pestaña (3).webm (2,667,367 bytes) 2023-10-04 22:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1970&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2702 [NoesisGUI] Unity3D feature always 2023-09-27 04:34 2023-10-03 19:46
Reporter: saji8k Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support 3D Text, 3D Paths in WorldSpace UI
Description: It would be great if we could extrude 2D text/paths/shapes to give them depth in WorldSpace UIs with just a few additional XAML properties.

This would allow developers to create 3D Text, 3D Buttons and other 3D UI elements very easily.

Unreal does something similar with their 3D Text Plugin. With just a few properties (extrude, bevel, bevel type, Half Circle Segments) you can create 3D Geometry from 2D Text.
Docs: https://docs.unrealengine.com/4.27/en-US/Basics/Actors/3DText/
Source: https://github.com/EpicGames/UnrealEngine/tree/release/Engine/Plugins/Experimental/Text3D/Source/Text3D
Video Example 1: https://www.youtube.com/watch?v=YD4th9T3Kfs
Video Example 2: https://www.youtube.com/watch?v=r_PdMTN5oKk
Video Example 3: https://www.youtube.com/watch?v=4cJbOZAfnIc
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2522 [NoesisGUI] C# SDK major always 2023-02-23 17:13 2023-09-28 17:59
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Dispatcher.BeginInvoke never invokes the callback
Description: I have a class that inherits from DispatcherObject. The class contains methods to call BeginInvoke on the Dispatcher but the callbacks never get called unless I use Application.Current.Dispatcher. The following link contains code to reproduce the problem.
https://drive.google.com/file/d/1XU4QjiElK47VUMmFRtn2_j2yXBDbcFxS/view?usp=sharing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008302)
sfernandez   
2023-02-23 19:36   
Hi, I found that creating classes directly inheriting from DispatcherObject won't provide the correct Dispatcher, this is a bug.
If you change your base class to DependencyObject in your sample then it will correctly invoke the callback.
(0008306)
voula_d   
2023-02-24 09:39   
I undertand. Changing to DependencyObject works but that won't help for our production scenario, we have a class that needs to derive from DispatcherObject. Is this a bug that will be fixed in the next version?
Thank you.
(0008307)
sfernandez   
2023-02-24 10:51   
Yes, of course, this is a bug that we will solve for the next version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2311 [NoesisGUI] C++ SDK feature have not tried 2022-03-18 11:06 2023-09-28 15:42
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support for SVG
Description: Implement support for parsing SVG to Drawing objects. These objects can be rendered using 'OnRender' or as a texture using DrawingBrush or DrawingImage.

There is the following community effort for WPF: https://github.com/dotnetprojects/SVGImage
And a proposal to have this supported in WPF: https://github.com/dotnet/wpf/issues/86

The implementation must support binding to internal attributes of the SVG. For example:

<local:SVG Source="Data/something.svg">
  <Param Name="hand/fill.color" Value="{Binding HandColor}"/>
  <Param Name="icon/stroke.color" Value="{Binding IconStroke}"/>
</local:SVG>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2620 [NoesisGUI] Inspector crash always 2023-06-06 19:30 2023-09-28 14:56
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash inspecting element with a templated parent binding in a style
Description: Connecting to an application rendering the following xaml:

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <Style x:Key="rectStyle" TargetType="Rectangle">
      <Setter Property="Tag" Value="{Binding Tag, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
    </Style>
  </Grid.Resources>
  <Rectangle Style="{StaticResource rectStyle}" Width="100" Height="50" Fill="Blue"/>
</Grid>

Selecting the Rectangle in the inspector will crash it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2622 [NoesisGUI] Unity3D crash always 2023-06-11 00:20 2023-09-27 17:49
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Noesis Crashes Upon Editor Load
Description: Noesis crashes the editor when I start it up. I'll need to review code to see what I might have introduced to manifest this behavior. I'm attaching logs and crash dump.

To be clear, it happens each and every time I load the editor. Right now, I see code diff's with Resource XAML files, but the error itself isn't visible to me yet.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2023-06-10_221655350.zip (382,771 bytes) 2023-06-11 00:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1864&type=bug
image.png (99,743 bytes) 2023-06-11 00:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1865&type=bug
Notes
(0008532)
stonstad   
2023-06-11 00:23   
Easy fix -- a carriage return deleted some characters from a resource XAML file. See attached image.

Thanks,
Shaun
(0008781)
sfernandez   
2023-09-27 17:49   
This should be fixed in 3.2.2


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2701 [NoesisGUI] Unreal crash always 2023-09-26 14:25 2023-09-27 15:30
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash when closing the application with Alt+F4
Description: The application crashes when shut down using Alt+F4. No crash message is generated. A break point in Unreal's material instance code will trigger, if a debugger is attached to the application (See call stack). Without debugger, the process just a remains in a zombie state.

A note on the call stack:
UVisibilityManagedElement is a custom class with a Noesis::Ptr< Noesis::UIElement > to a tree containing material instances. It seems the materials weren't cleaned up by the plugin when AppPreExit() was called.
Tags: C++, Materials, Unreal
Steps To Reproduce: - During game runtime, a UI with material instances must be added to the viewport
- A UObject with a smart pointer to a UIElement within that UI must exist
- Hitting Alt+F4 triggers the AppPreExit() function and the garbage collector force destroys the before mentioned UObject with the UIElement pointer.
Additional Information:
Attached Files: callstack_crash_altf4.txt (3,420 bytes) 2023-09-26 14:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1955&type=bug
2701.patch (1,877 bytes) 2023-09-27 15:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1958&type=bug
Notes
(0008778)
hcpizzi   
2023-09-27 15:30   
I've changed the raw material pointer to a weak pointer in the material wrapper. I've attached a patch.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2527 [NoesisGUI] C# SDK major always 2023-03-02 15:32 2023-09-27 12:53
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: StackOverflow exception when setting DataContext in UserControl's constructor.
Description: I am getting a stack overflow exception when trying to set a DataContext in the constructor of a custom UserControl that derives from TextBox. Setting the DataContext in the Loaded event works and does not produce the same error.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisTest.zip (19,154 bytes) 2023-03-02 15:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1775&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2675 [NoesisGUI] Unity3D crash have not tried 2023-08-29 03:00 2023-09-27 10:49
Reporter: JamesW940516 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: Noesis Unity Package 3.2.1 Crash Issue
Description: I imported Noesis Unity Package 3.2.1 to my Unity Project.
Also, I imported Hello World and Buttons Samples to my Unity Project.

Problem #1 : When I pressed Unity/Assets/Open Blend Project did not open Blend project of Samples. It created new Blend Project to my Visual Studio Project (Or Unity Project) root directory. Additionally, that blend project was opened by Visual Studio (not by Blend). I had to open the Blend project manually by opening Assets\Samples\NoesisGUI\3.2.1\Buttons\Buttons-blend.sln file with Blend.

Problem #2 : There was a Missing Script issue on Camera of Buttons Scene of Samples.
Probably, there should be a Moesis View Script. I attached that script to the Camera.

Problem #3 : When I tried to enter play mode, Unity crashed.
Tags: Blend, crash, Unity
Steps To Reproduce: Unity Version - 2022.3.8f1[LTS]
Visual Studio - Version Microsoft Visual Studio Community 2022 (64-bit) - Current Version 17.7.2
Blend Version - Microsoft Blend for Visual Studio Community 2022 (64-bit) - Current Version 17.7.2
Noesis GUI Unity Package Version - 3.2.1
Additional Information:
Attached Files:
Notes
(0008684)
jsantos   
2023-08-30 15:59   
Could you please attach a dump for the crash?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2677 [NoesisGUI] Unity3D major always 2023-08-30 21:26 2023-09-27 10:49
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Android
Summary: Perf dips pretty hard when the HitTest3D gets run on Quest up to an unusable state
Description: We are noticing a major performance hit when using HitTest3D (as seen in attached screenshot) on Quest Standalone. We're looking into ways to reduce its usage but will ultimately take too hard of a performance hit when interacting with the interface.

We haven't implemented changes to reduce the calls when unnecessary, but it -is- too expensive when needed.
Tags:
Steps To Reproduce: Launch the game - Have the Noesis interface deployed and HitTest called. (Currently always when interface is open)
We're hoping to find ways to reduce its impact on the overall performance and were looking for suggestions.
Additional Information:
Attached Files: image.png (83,879 bytes) 2023-08-30 21:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1911&type=bug
image-2.png (70,228 bytes) 2023-08-30 21:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1912&type=bug
Notes
(0008689)
sfernandez   
2023-08-31 12:51   
(Last edited: 2023-08-31 12:52)
Hi Josh,

Before we further analyze the performance problems we need to understand why you need to use the HitTest3D version with calllbacks.
Could you share the code for your filter and result callbacks?
Because in our plugin we are simply using the HitTest3D version without callbacks and had no issues so far.

Also, please do a test using the HitTest3D without callbacks, you shouldn't have any performance issues on Quest, could you confirm?

Thank you!
(0008694)
sfernandez   
2023-09-04 16:01   
Did you find time to try the HitTest3D version without callbacks?
(0008772)
sfernandez   
2023-09-27 10:49   
Fixed in changeset 12714


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2669 [NoesisGUI] C++ SDK major always 2023-08-17 12:06 2023-09-27 10:45
Reporter: ulisesBB Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Matrix4 doesn't implement Transform method to convert a point or vector
Description: In C# we can call Visual::TransformToAncestor, Visual::TransformToDescendant or Visual::TransformToVisual in order to get a transform to convert from one Visual local coordinates to another visual local coordinates. This methods return a GeneralTransform object which contains this:

public System.Windows.Point Transform (System.Windows.Point point);

In C++ these methods return a Matrix4 object, but it doesn't have any Transform method and I couldn't find any way to transform a point using them.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2491 [NoesisGUI] C++ SDK minor always 2023-01-13 14:48 2023-09-27 03:03
Reporter: manuel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: DropShadowEffect isn't correctly considered when laying out images onto the offscreen render context
Description: I investigated the issue with RenderDoc and noticed that the gaps between the images on the Offscreen render target are not big enough to accompany the drop shadow. Shadows are overlapping onto other images (on y-axis), other images overdraw the shadows again (on x-axis), or are not drawn at all because there was not enough room left at the bottom of the render target.
Tags:
Steps To Reproduce: According to an email from Sergio: "It is related to the use of effects inside other opacity groups, for example if you have a container that has Opacity="0.5" and elements inside of that container use a drop shadow or blur effect. We are not taking into account the effect padding into the bounds that generate the outer opacity group render."
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2052 [NoesisGUI] C++ SDK minor have not tried 2021-06-21 10:02 2023-09-26 20:31
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Storyboard Completed event triggered for all instances of a template
Description: When defining the Storyboard as part of the resources of an element of the template VisualTree
    <ControlTemplate x:Key="t" TargetType="Control">
      <Border x:Name="root" Background="Red">
        <Border.Resources>
          <Storyboard x:Key="intro">
            <ColorAnimation To="Blue" Duration="0:0:0.5" Storyboard.TargetName="root" Storyboard.TargetProperty="Background.Color"/>
          </Storyboard>
        </Border.Resources>
        <i:Interaction.Triggers>
          <i:EventTrigger EventName="MouseEnter">
            <ei:ControlStoryboardAction Storyboard="{StaticResource intro}"/>
          </i:EventTrigger>
          <ei:StoryboardCompletedTrigger Storyboard="{StaticResource intro}">
            <ei:ChangePropertyAction TargetName="root" PropertyName="Width" Value="150"/>
          </ei:StoryboardCompletedTrigger>
       </i:Interaction.Triggers>
      </Border>
    </ControlTemplate>


all instances of the template share the same Storyboard and trigger the Completed event for all controls.

In WPF each control instance has its own copy of the Storyboard and the Completed event triggers only for the corresponding instance.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008609)
mshvern   
2023-07-22 00:24   
I'm here from Googling but it does seem like the issue is the same in WPF.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2653 [NoesisGUI] Unreal minor always 2023-07-20 03:47 2023-09-26 20:30
Reporter: mshvern Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: ControlStoryboardAction inside ControlTemplates only works for one instance
Description: https://www.noesisengine.com/forums/viewtopic.php?p=15719#p15719

Only one instance of an animation can play at the same time if it's a resource defined in ControlTemplate AND it is launched from a ControlStoryboardAction
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2634 [NoesisGUI] Unreal minor always 2023-06-28 12:43 2023-09-26 20:30
Reporter: ThisIsMyUserName Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: StoryboardCompletedTrigger is invoked for all items in list
Description: When Storyboard is played for item in list, the StoryboardCompletedTrigger is invoked for all items in list.

Noesis Forum post - https://www.noesisengine.com/forums/viewtopic.php?t=2976
Tags: C++, Unreal
Steps To Reproduce: Using Noesis 3.2.1 and Unreal Engine

Create a DataTemplate that contains a Storyboard and StoryboardCompletedTrigger.

Create a list of DataTemplate items (at least 2 items)

Play the Storyboard on 1 item

Observe StoryboardCompletedTrigger function being called on every item in the list
Additional Information:
Attached Files: StoryboardCompletedTrigger.patch (8,694 bytes) 2023-06-29 12:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1879&type=bug
Notes
(0008572)
sfernandez   
2023-06-29 12:35   
Could you please try the attahed patch, it should fix your problem.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2692 [NoesisGUI] C# SDK feature always 2023-09-16 16:38 2023-09-25 21:18
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Noesis.GUI not Trimmable / AOT compatible
Description: I'm trying to AOT-compile my application.

As a first step, I try to trim my application, as that is required for AOT-compilation.
   <PublishTrimmed>true</PublishTrimmed>

This produces this warning about Noesis.GUI:
   noesis.gui\3.2.1\lib\netstandard2.0\Noesis.GUI.dll : warning IL2104: Assembly 'Noesis.GUI' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008747)
darthmaule2   
2023-09-16 16:49   
I also get this warning about the Noesis.GUI nuget package when compiling with IsAotCompatible in my project file:

warning NETSDK1206: Found version-specific or distribution-specific runtime identifier(s): win10-arm, win10-x64, win10-x86.
Affected libraries: Noesis.GUI. In .NET 8.0 and higher, assets for version-specific and distribution-specific runtime identifiers will not be found by default.
See https://aka.ms/dotnet/rid-usage for details.
(0008748)
darthmaule2   
2023-09-16 16:50   
I'll my testing is done with NoesisGUI 3.2.1 and .NET 8.0 RC1
(0008761)
darthmaule2   
2023-09-21 12:31   
Also there is an issue with the WebBrowser when publishing as a single file (required by AOT)

So these in the .csproj file:
<SelfContained>true</SelfContained>
<PublishSingleFile>true</PublishSingleFile>

Get this error:
System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
   at System.ArgumentNullException.Throw(String paramName)
   at System.IO.Path.Combine(String path1, String path2)
   at NoesisApp.WebBrowser.StaticInitialize()
   at NoesisApp.WebBrowser..ctor()
   at lambda_method256(Closure)
   at Noesis.Extend.CreateInstance(IntPtr nativeType, IntPtr cPtr)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2696 [NoesisGUI] C++ SDK minor N/A 2023-09-20 02:04 2023-09-20 12:41
Reporter: Mikhail Yanakayev Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Noesis.dll pdb request
Description: Hello!

Could you send me pdb files for debug/windows_x86 and debug/windows_x64 versions of Noesis.dll, please?
I have a crash and trying to figure out, what I'm doing wrong. I guess, seeing proper callstack will help me with this.

Thank you!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008754)
jsantos   
2023-09-20 12:40   
I have sent you an email for this


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2695 [NoesisGUI] Unreal crash always 2023-09-19 11:28 2023-09-19 17:11
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash loading invalid xaml with VSCode plugin attached
Description: When editing the following xaml in VS Code while connected to Unreal lang server, it crashes the editor:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
  <Grid.Resources>
    <Storyboard x:Key="ShowText">
      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="txt" Storyboard.TargetProperty="Opacity">
        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
      </DoubleAnimationUsingKeyFrames>
    </Storyboard>
  </Grid.Resources>
  <b:Interaction.Triggers>
    <noesis:DataEventTrigger Source="{Binding}" EventName="OnTextOpened">
      <DataTrigger.EnterActions>
        <BeginStoryboard x:Name="ShowText" Storyboard="{StaticResource ShowText}"/>
      </DataTrigger.EnterActions>
    </noesis:DataEventTrigger>
  </b:Interaction.Triggers>
  <TextBlock x:Name="txt" Text="Hello World" Opacity="0"/>
</Grid>


The crash callstack is:

     Noesis.dll!Noesis::TypePropertyFunction<Noesis::Span,Noesis::UICollection<Noesis::Inline> * __ptr64>::GetComponent Line 159	C++
     Noesis.dll!Noesis::XamlNode::TrySetProperty Line 1355	C++
     Noesis.dll!Noesis::XamlNode::SetProperty Line 835	C++
     Noesis.dll!Noesis::XamlNode::SetFromObject Line 676	C++
     Noesis.dll!Noesis::XamlContext::AddNodeToParent Line 2271	C++
     Noesis.dll!Noesis::XamlContext::ProcessObject Line 1488	C++
     Noesis.dll!Noesis::XamlContext::OpenObject Line 1133	C++
     Noesis.dll!Noesis::XamlContext::ProcessProperty Line 2094	C++
     Noesis.dll!Noesis::XamlContext::ProcessObject Line 1560	C++
     Noesis.dll!Noesis::XamlContext::OpenObject Line 1133	C++
     Noesis.dll!Noesis::XamlContext::ProcessProperty Line 2094	C++
     Noesis.dll!Noesis::XamlContext::ProcessObject Line 1560	C++
     Noesis.dll!Noesis::XamlContext::CreateTree Line 705	C++
     Noesis.dll!Noesis::XamlReader::Load Line 39	C++
     Noesis.dll!LoadInternal Line 768	C++
     Noesis.dll!LoadInternal Line 799	C++
     Noesis.dll!Noesis::UI::LoadComponent Line 815	C++
     Noesis.dll!Noesis::GUI::LoadXaml Line 238	C++
     UnrealEditor-NoesisRuntime.dll!Noesis::GUI::LoadXaml<Noesis::BaseComponent> Line 17	C++
     UnrealEditor-NoesisRuntime.dll!Noesis::CapabilityDiagnostics::GetDiagnosticsMessage Line 94	C++
     UnrealEditor-NoesisRuntime.dll!Noesis::MessageReader::HandleMessage Line 207	C++
     UnrealEditor-NoesisRuntime.dll!Noesis::LangServer::Tick Line 341	C++
     [Inline Frame] UnrealEditor-NoesisEditor.dll!FNoesisEditorModule::OnPostEngineInit::__l2::operator() Line 322	C++
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2694 [NoesisGUI] Unreal feature N/A 2023-09-18 13:16 2023-09-19 11:49
Reporter: InnesBrownNT Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Option to resize Offscreen Render Targets when resolution decreases
Description: Currently offscreen render targets are recreated at the new resolution when view resolution increases. When resolution decreases the RTs are not resized as they still fit into the existing size and the RTs can be used as atlases where necessary. However, changes in resolution are a relatively infrequent occurrence for us so we do not mind paying the cost of recreating the RTs to save some memory. Therefore, we would appreciate if there was a flag we could set so that offscreen RTs are resized when any change in resolution occurs, not just an increase.

Ideally the flag could be something we just set in the Noesis Rendering settings alongside Offscreen Max Surfaces and the other settings affecting Offscreen RTs. I believe the main part of the code that needs adjustment to support this is the EnsureOffscreen function in VGLContext.cpp.
Tags: Rendering
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2663 [NoesisGUI] C++ SDK major always 2023-08-10 09:45 2023-09-15 20:17
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: Doesn't compile with Visual Studio 17.7.0
Description: Error log:

1>C:\myproject\project\Plugins\NoesisGUI\Source\Noesis\NoesisSDK\Src\Packages\App\RiveBase\Src\Rive.cpp(748): error C4834: discarding return value of function with 'nodiscard' attribute
1>C:\myproject\project\Plugins\NoesisGUI\Source\Noesis\NoesisSDK\Src\Packages\App\RiveBase\Src\Rive.cpp(755): error C4834: discarding return value of function with 'nodiscard' attribute
1>C:\myproject\project\Plugins\NoesisGUI\Source\Noesis\NoesisSDK\Src\Packages\App\RiveBase\Src\Rive.cpp(764): error C4834: discarding return value of function with 'nodiscard' attribute

The target platform was Windows, compiled with Unreal Engine 5.2

Workaround solution: Comment out all NS_LOG_TRACE(...) lines in Rive.cpp
Tags: C++, Rive, Unreal
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2538 [NoesisGUI] C++ SDK minor always 2023-03-21 18:57 2023-09-15 18:31
Reporter: cesar.sanchez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2  
Platform: Any
Summary: BrushShader textures are not processed unless an additional constant buffer is provided
Description: When using BrushShader::SetTexture() the additional texture is not processed and is not present in Batches using that BrushShader. Setting a constant buffer through BrushShader::SetConstantBuffer() solves the issue.
Tags: BrushShader, C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2673 [NoesisGUI] Unity3D crash always 2023-08-25 19:04 2023-09-14 12:22
Reporter: nokola Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version:  
Platform: Any
Summary: Noesis 3.2.1 crashes for 9% of users
Description: After updating to noesis 3.2.1, our app started crashing on startup in production for 9.1% of users.

It seems related to openGL ES2. Note unity settings only choose opengl es3 - screenshot attached.

The stack trace is the only thing I was able to extract from the crash.
Tags:
Steps To Reproduce: 1. Run Fantasia Painter google play app on Galaxy S23 ultra phone

Result:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 19394 >>> com.datcompany.fantasiapainter <<<

backtrace:
  #00 pc 0x00000000005bcfe4 /vendor/lib64/libllvm-qgl.so (!!!0000!94f922484c7c2a123d83cc9a7b0fc0!1a285a84ae!+84)
  #01 pc 0x00000000006e2c28 /vendor/lib64/libllvm-qgl.so (!!!0000!8aa9316cfa40ea8e13922cfdcda509!1a285a84ae!+120)
  #02 pc 0x00000000006e2534 /vendor/lib64/libllvm-qgl.so (!!!0000!99fd46ca6897ca43f4eedd7822487a!1a285a84ae!+436)
  #03 pc 0x0000000000922234 /vendor/lib64/libllvm-qgl.so (!!!0000!866bd28e17dc06a823006799f7570e!1a285a84ae!+532)
  #04 pc 0x000000000091e5dc /vendor/lib64/libllvm-qgl.so (!!!0000!2a7897fa7e385f84d70f5d88ea5046!1a285a84ae!+2508)
  #05 pc 0x000000000058b4a4 /vendor/lib64/libllvm-qgl.so (!!!0000!4ee45c73f202da09ceb9e97299e78c!1a285a84ae!+724)
  #06 pc 0x000000000058a138 /vendor/lib64/libllvm-qgl.so (!!!0000!e39e8cf324350f3c5a7f77e6d95208!1a285a84ae!+440)
  #07 pc 0x0000000000589a84 /vendor/lib64/libllvm-qgl.so (!!!0000!367303fb02553850da321d3446c78a!1a285a84ae!+100)
  #08 pc 0x00000000006d2d04 /vendor/lib64/libllvm-qgl.so (!!!0000!0e406d1c583002d7aa7c873d54dca9!1a285a84ae!+372)
  #09 pc 0x00000000006d1e44 /vendor/lib64/libllvm-qgl.so (!!!0000!115a3b096d9bc78c0dfb42d0e49024!1a285a84ae!+116)
  #10 pc 0x00000000008ccaa4 /vendor/lib64/libllvm-qgl.so (!!!0000!aa916b5e953dd3dca1b992ddb2c964!1a285a84ae!+788)
  #11 pc 0x0000000000d3ff0c /vendor/lib64/libllvm-qgl.so (!!!0000!51d38902a0381d361b611c909947d9!1a285a84ae!+60)
  #12 pc 0x000000000098993c /vendor/lib64/libllvm-qgl.so (!!!0000!34520e27c398aec80a9430978fab84!1a285a84ae!+1420)
  #13 pc 0x0000000000984688 /vendor/lib64/libllvm-qgl.so (!!!0000!b351d96637f21e15c92b76750b44e2!1a285a84ae!+760)
  #14 pc 0x0000000000983510 /vendor/lib64/libllvm-qgl.so (CreateQGLCProgram(QGPUCompiler::CompileData*)+48)
  #15 pc 0x0000000000983050 /vendor/lib64/libllvm-qgl.so (!!!0000!1e9735fa2d7fa7113c5ea09cbdfdc0!1a285a84ae!+320)
  #16 pc 0x0000000000981de0 /vendor/lib64/libllvm-qgl.so (!!!0000!aefccce6a332610a9b22f30d0961cc!1a285a84ae!+528)
  #17 pc 0x000000000004cfc4 /vendor/lib64/libllvm-glnext.so (!!!0000!3dcaee58dbbfbd4511f8fc7a97b9b9!1a285a84ae!+900)
  #18 pc 0x0000000000300e8c /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!21c3d0e01b653442370882debb8a54!1a285a84ae!+5052)
  #19 pc 0x00000000002fecc4 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!8b96d97b28460c2822a5897b3ff6e2!1a285a84ae!+452)
  #20 pc 0x00000000002fea64 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!5094ab766f406130e15d3aad524265!1a285a84ae!+68)
  #21 pc 0x00000000006c39b0 /data/app/~~-2zbesZpccoUJmliBvnDLw==/com.datcompany.fantasiapainter-153LZky8gB-3cQiZSfbgvA==/lib/arm64/libNoesis.so

Additional Information:
Attached Files: image.png (26,276 bytes) 2023-08-25 19:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1906&type=bug
image-2.png (62,054 bytes) 2023-08-26 19:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1907&type=bug
pixel5DebugLog.txt (4,214,392 bytes) 2023-08-26 19:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1908&type=bug
S23_Ultra_Noesis3.2.1.logcat (4,140,918 bytes) 2023-08-28 22:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1909&type=bug
D3_Noesis_3.2.1.logcat.7z (715,681 bytes) 2023-08-29 22:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1910&type=bug
Notes
(0008670)
nokola   
2023-08-25 19:06   
Unity 2022.3.7f1 (latest LTS).
(0008671)
jsantos   
2023-08-26 11:57   
"It seems related to openGL ES2"

Could you please elaborate on this?

Could you also paste here the GL extensions available in that device you find in a online test lab that reproduces the crash?
(0008672)
nokola   
2023-08-26 19:47   
openGL ES2: the only reason I mentioned is because I saw this in the call stack:

  #18 pc 0x0000000000300e8c /vendor/lib64/egl/**libGLESv2******_adreno.so (!!!0000!21c3d0e01b653442370882debb8a54!1a285a84ae!+5052)
  #19 pc 0x00000000002fecc4 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!8b96d97b28460c2822a5897b3ff6e2!1a285a84ae!+452)
  #20 pc 0x00000000002fea64 /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!5094ab766f406130e15d3aad524265!1a285a84ae!+68)

But may be unrelated.

I don't have the device currently since my membership in the test lab expired.

The device is samsung dm1q (Galaxy S23) https://www.gsmarena.com/samsung_galaxy_s23-12082.php

We got more crashes this morning, attached screenshot. Same stack trace in all. Let me know if you need further info! Thanks!
(0008673)
nokola   
2023-08-26 19:52   
Similar crash during startup on Pixel 5:

     *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Version '2022.3.7f1 (b16b3b16c7a0)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
Build fingerprint: 'google/redfin/redfin:11/RQ3A.211001.001/7641976:user/release-keys'
Revision: 'MP1.0'
ABI: 'arm64'
Timestamp: 2023-08-25 10:27:03.846211725-0700
pid: 24214, tid: 24247, name: UnityMain >>> com.datcompany.fantasiapainter <<<
uid: 10274
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr --------
Cause: null pointer dereference
    x0 00000072707cc8c0 x1 000000000000016c x2 000000000000003c x3 0000000000000009
    x4 0000000000000001 x5 0000000000000000 x6 0000008000000000 x7 72646e4cff647174
    x8 000000730267f7d8 x9 0000000000000000 x10 0000000000001f44 x11 ca4a000000030103
    x12 00000000e0668e81 x13 ca4a000000030103 x14 000000760198473a x15 0000000000000030
    x16 00000072efbeca88 x17 00000075feb18ab8 x18 0000007301f8c000 x19 0000000000000009
    x20 000000000000003c x21 000000000000016c x22 00000072707cc8c0 x23 0000000000000001
    x24 00000072efc56090 x25 00000072efc53cb8 x26 0000007302683000 x27 000000730267fa00
    x28 00000000000008fd x29 000000730267f780
    lr 000000724f486394 sp 000000730267f6e0 pc 000000724f496f34 pst 0000000060001000
backtrace:
      #00 pc 00000000006cff34 /data/app/~~zPYUwZSSUp38TbijMj2R3w==/com.datcompany.fantasiapainter-ag6e7wtBNU5yLi551NOGkA==/lib/arm64/libNoesis.so
(0008674)
nokola   
2023-08-26 19:54   
Added Pixel 5 adb debug log from firebase automated testing.

Search for libNoesis.so and you'll find the crash, just a bit past the middle of the log file.
(0008675)
jsantos   
2023-08-28 16:43   
(Last edited: 2023-08-28 16:44)
Do you have access to this Pixel5 device? Could you get the GL extension lists and/or run a development build?
(0008677)
nokola   
2023-08-28 21:34   
I don't have access to the pixel 5, but got the GL extensions for teh Samsung S23 Ultra that also crashes.

Android 13.

08-28 12:30:58.339 1850 1885 W gl2_extensions: GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_sliced_3d GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_bptc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_float_blend GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_EXT_texture_compression_astc_decode_mode GL_EXT_texture_mirror_clamp_to_edge GL_EXT_texture_format_sRGB_override GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_EGL_image_external_wrap_modes GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers GL_QCOM_texture_foveated GL_QCOM_texture_foveated2 GL_QCOM_texture_foveated_subsampled_layout GL_QCOM_shader_framebuffer_fetch_noncoherent GL_QCOM_shader_framebuffer_fetch_rate GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_EGL_image_array GL_NV_shader_noperspective_interpolation GL_KHR_robust_buffer_access_behavior GL_EXT_EGL_image_storage GL_EXT_blend_func_extended GL_EXT_clip_control GL_OES_texture_view GL_EXT_fragment_invocation_density GL_QCOM_motion_estimation GL_QCOM_validate_shader_binary GL_QCOM_YUV_texture_gather GL_QCOM_shading_rate GL_QCOM_frame_extrapolation GL_IMG_texture_filter_cubic GL_QCOM_render_shared_exponent GL_EXT_polygon_offset_clamp GL_EXT_texture_sRGB_RG8 GL_EXT_depth_clamp GL_EXT_fragment_shading_rate GL_EXT_fragment_shading_rate_primitive GL_EXT_fragment_shading_rate_attachment
(0008678)
nokola   
2023-08-28 22:05   
Attaching logcat file for the Samsung S23 Ultra crash, Android 13
(0008679)
jsantos   
2023-08-29 01:04   
Any chance we could try on the S32 Ultra with a noesis debug library?
(0008680)
nokola   
2023-08-29 17:58   
Yes, please send the debug lib over, happy to try it!

side note: In general if you have debug Noesis build available as first step for crashes or in the downloads page, will help understand issues much faster!
(maybe you have debug build already and I just haven't noticed...) :)
(0008681)
sfernandez   
2023-08-29 20:14   
Here you have the debug library for android-arm64 and symbols:
https://drive.google.com/file/d/1StGVbh746DvT6vi67RUHee864E1T6MP7/view?usp=sharing
https://drive.google.com/file/d/1REfSqBvMliLcbrFY2rugzosEAhNxHiAs/view?usp=sharing
(0008682)
jsantos   
2023-08-29 20:17   
> In general if you have debug Noesis build available as first step for crashes or in the downloads page, will help understand issues much faster

Yes, we are working on this. Thanks for the feedback!
(0008683)
nokola   
2023-08-29 22:33   
I tried the debug version noesis. Unfortunately having some trouble extracting files and line numbers from the debug phone (it's a cloud device in amazon Device Farm free tier). I was only able to get the logcat - perhaps info can be found with ndk-stack or similar tool.

Attaching logcat with above debug noesis.so
(0008688)
nokola   
2023-08-30 21:56   
Issue does not reproduce with Noesis 3.1.4, all other code the same.
(0008743)
jsantos   
2023-09-14 12:22   
This has been fixed in 3.2.2 (not yet released). Please, if you keep finding this issue, reopen the ticket.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2688 [NoesisGUI] Unity3D major always 2023-09-12 13:50 2023-09-13 19:54
Reporter: Rafael Munoz Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Crash with hello world sample.
Description: Unity version 2021.3.24f1

It crashes every time when testing the version with the hello world sample

Reproduced with 3.2.1 and 3.2.0

The attached dump and log have been created with 3.2.0
Tags:
Steps To Reproduce: 1- Create a new empty 3d project
2- Download NoesisGUI-Unity-3.2.1 zip from the shared folder
3- Unzip into a folder in downloads
4- Copy the unzipped folder as is into Packages folder from the project
5- Remove ~ from samples folder so unity includes it
6- Open hello world scene
7- Hit play
Additional Information:
Attached Files: Editor.log (203,717 bytes) 2023-09-12 13:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1940&type=bug
crash.dmp (2,024,221 bytes) 2023-09-12 13:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1941&type=bug
Notes
(0008735)
Rafael Munoz   
2023-09-12 14:22   
Just tested the same repro path on a different pc and it does not crash
(0008741)
jsantos   
2023-09-13 19:54   
(Last edited: 2023-09-13 19:54)
This is a duplicate. Please, reopen if this keeps failing with 3.2.2 (when released)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2600 [NoesisGUI] Unity3D major always 2023-05-16 19:27 2023-09-13 19:54
Reporter: t.a.khairullin Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash compiling VR shaders
Description: Unity Editor 2022.2.15, after adding NoesisGUI 3.2.1 from disk nd activating the trial license the Editor indicates loading for some time and then crashes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash.png (223,282 bytes) 2023-05-18 21:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1850&type=bug
crash.dmp (1,244,436 bytes) 2023-05-19 12:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1851&type=bug
Editor.log (861,975 bytes) 2023-05-23 14:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1859&type=bug
crash-2.dmp (1,252,846 bytes) 2023-05-23 14:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1860&type=bug
Notes
(0008482)
jsantos   
2023-05-17 17:32   
Does this happen in a clear Unity project?
(0008484)
t.a.khairullin   
2023-05-18 17:33   
Yes, it does. I was able to find out more details:
Opening Blend project for the first time generates Assets/<ProjectName>MainView.xaml and Blend/App.xaml with assotiated .cs files. Applying a license after that crashes Unity editor, but if I delete those files a license can be applied. No prject files are being generated if I open the Blend project after those manipulations.
(0008485)
jsantos   
2023-05-18 20:09   
Are you getting the crash without generating the Blend project and opening it? Like, installing the package in a clean project, import the HelloWorld sample, set the license key and hit play...
(0008486)
t.a.khairullin   
2023-05-18 21:34   
Same thing. Tried it multiple times, crashes even without play mode.
(0008487)
jsantos   
2023-05-19 11:22   
Could you please attach the minidump belonging to the crash?
(0008489)
jsantos   
2023-05-19 13:47   
Thanks for the minidump. It seems this is not related to the license key. As far as I understand, this will crash also without setting a license.

It seems your GPU is not able to compile a few internal shaders needed for VR.

Could you please give me more informantion about your GPU? Better if you attach Unity log.
(0008503)
t.a.khairullin   
2023-05-23 14:05   
Sorry for the late reply.

Yes, you were right - entering play mode without license leads to crash, but it's unclear what gives me such result in the first scenario then (entering license token without going to play mode also crashes the editor as you remember).
I am using GTX 960M, quite old now but I've never had such problem before, not sure which VR shaders might have such effect. Also I am not targeting a VR with this project, so is there a way to exclude those?
Please find both Unity crash output files attached (let me know if those are what you were asking for).

Regards,
Timur
(0008504)
jsantos   
2023-05-23 17:52   
Thanks for the attached documents. This is a bug related to VR that must be fixed, we should never crash.

Are you still able to reproduce a crash when entering the license token without hitting play and without previewing any XAML (clicking on any XAML will display a preview in the inspector, and this is similar to hitting PLAY)? If so, could you please attach the dump too?
(0008505)
t.a.khairullin   
2023-05-23 19:25   
I haven't noticed it before, but it seems like you are right again - it crashes because of a preview, not the license. Thanks for the help.
Is there a way to download a previous version that's compatible with Unity 2022 while this is being fixed?
(0008510)
jsantos   
2023-05-25 11:43   
Noesis 3.1.7 for Unity is still available at

https://www.noesisengine.com/forums/download/file.php?id=654
(0008512)
t.a.khairullin   
2023-05-25 12:40   
Thanks, this version works perfectly fine.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2659 [NoesisGUI] C++ SDK crash always 2023-08-02 08:02 2023-09-12 14:44
Reporter: sumel007 Platform:  
Assigned To: jsantos OS:  
Priority: immediate OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: Noesis crashes on some AMD graphics cards
Description: Link to thread: https://www.noesisengine.com/forums/viewtopic.php?t=3029
Noesis 3.2.1 crashes for AMD 6000 series cards. Version 3.2.0 seems to work correctly on newest drivers (had problems on older ones).
Issue seems related to GL_AMD_vertex_shader_layer
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisAMDError.png (183,126 bytes) 2023-09-11 16:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1932&type=bug
image.png (151,457 bytes) 2023-09-12 07:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1935&type=bug
image-2.png (292,715 bytes) 2023-09-12 07:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1936&type=bug
glview-AMD_Radeon_RX_6700_XT-13.XML (113,545 bytes) 2023-09-12 11:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1937&type=bug
image-3.png (133,992 bytes) 2023-09-12 12:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1938&type=bug
image-4.png (390,241 bytes) 2023-09-12 12:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1939&type=bug
Notes
(0008716)
sumel007   
2023-09-11 16:37   
It seems that on the newest AMD drivers the issue has appeared again. The error is exactly the same for both version 3.2.1 and 3.2.1.5b that you've provided us in your custom dll.
(0008717)
sumel007   
2023-09-11 16:39   
(0008718)
jsantos   
2023-09-11 17:02   
(Last edited: 2023-09-11 17:04)
Are you 100% sure this is using the new hot-fix?
Are you getting the same error with 3.2.0?

Could you please provide the list of OpenGL extensions available in the new driver (using something like https://www.realtech-vr.com/home/glview)?
(0008719)
jsantos   
2023-09-11 17:05   
Wait that's a capture of IntegrationGLUT, you don't have the patch applied to that example right?
(0008721)
sumel007   
2023-09-11 18:21   
The sceenshot has two runs of the ingrationGLUT managed version. First is with version 3.2.1. I've then replaced the Noesis.dll in the output directory for your provided 3.2.2b5 version and reran the example - you can see that in the second run Noesis reports "Noesis Init v3.2.2b5".
This is how we were running the dll before and it worked. It stopped working after updating the graphics card to the newest drivers.

We also had a crash with 3.2.0 version when testing our project. I didn't run IntegrationGlut on 3.2.0 though.
(0008722)
jsantos   
2023-09-11 18:32   
Could you please download the C++ SDK (latest one) , run the IntegrationGLUT example in debug mode and past the log here?
(0008723)
sumel007   
2023-09-11 18:36   
You mean the 3.2.1 (non hotfix) version of the C++ SDK? I'm 95% sure it was the same as in the forums thread when we originally reported the issue ( https://www.noesisengine.com/forums/viewtopic.php?t=3029 https://www.noesisengine.com/forums/download/file.php?id=852&sid=8ab9c9be917da024fda6e98121783361&mode=view ), but I'll double check tomorrow morning and get back to you.
(0008725)
jsantos   
2023-09-11 18:47   
Yes, the 3.2.1 without the fix. My plan is:

1) Reproducing the issue
2) Providing you a source change (the hotfix we added 3.2.2)
3) Debug to understand why the hotfix is not working with this driver (it doesn't make sense to me)
(0008727)
sumel007   
2023-09-12 07:45   
I'm sending a screenshot with the results of 3.2.1 native sdk, ran on Visual Studio 2022 in debug mode x64. From what I can see it is exactly the same as in the original forums report. Also a screenshot of the actual crash location and callstack.
(0008728)
jsantos   
2023-09-12 11:17   
The image is not exactly the same. If you see the list of extensions, your card is now reporting that "GL_AMD_vertex_shader_layer" is available but when compiling the shader is saying that the extension is not supported.

Could you send me the list of extensions reported by your card (https://www.realtech-vr.com/home/glview) to check we are detecting this correctly?
(0008731)
sumel007   
2023-09-12 11:50   
Here's the xml report from the link you provided. It seems that GL_AMD_vertex_shader_layer is in the reported extensions list.
(0008732)
jsantos   
2023-09-12 12:09   
Could you go to "Shader.140.stereo.vert.h" file and change the line that says "#extension GL_AMD_vertex_shader_layer : require" to "#extension GL_AMD_vertex_shader_layer : enable"

And just build the project again and run it?
(0008733)
sumel007   
2023-09-12 12:29   
Here's the results
(0008734)
jsantos   
2023-09-12 12:30   
Please, let me know when you are available for a call to debug this with you.

I am free now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2686 [NoesisGUI] Unity3D minor always 2023-09-08 23:23 2023-09-11 17:32
Reporter: Josh Campbell Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis Depth Rendering Incorrectly
Description: When adding depth to elements within our xaml file using the below code, we noticed that elements which appear closer to the camera in world space are actually rendering behind elements that are further away. It is important to note that we are only using a single xaml file with nested panels, all of which are loaded in through a single world UI element.

Example:

<noesis:Element.Transform3D>
                  <noesis:CompositeTransform3D TranslateZ="40"/>
</noesis:Element.Transform3D>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2682 [NoesisGUI] C# SDK crash always 2023-09-08 18:12 2023-09-08 20:02
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Repeatable Crash On Keyboard Input
Description: When I press the down key I get an immediate crash.

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.View:Noesis_View_KeyDown <0x000fe>
      at Noesis.View:KeyDown <0x000da>
      at NoesisView:ProcessEvent <0x0189a>
      at NoesisView:OnGUI <0x0030a>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================

I see this in the log file and it may be related. I'm working to remove this error.

[NOESIS/W] Virtualization disabled: available viewport size is Infinite
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.1/Runtime/NoesisUnity.cs:355)
Noesis.View:Update (double) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.1/Runtime/API/Core/View.cs:368)
NoesisView:UpdateInternal () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.1/Runtime/NoesisView.cs:1455)
NoesisView:LateUpdate () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.1/Runtime/NoesisView.cs:1356)

(Filename: D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.1/Runtime/NoesisUnity.cs Line: 355)


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2023-09-08_154015070.zip (1,297,913 bytes) 2023-09-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1922&type=bug
EmotesControl.xaml (2,138 bytes) 2023-09-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1923&type=bug
EmotesControl.cs (6,065 bytes) 2023-09-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1924&type=bug
Notes
(0008711)
stonstad   
2023-09-08 18:15   
For clarification purposes, this is a patched version of 3.2.1 that I'm using.
(0008712)
stonstad   
2023-09-08 18:21   
Phew! OK, this is an easy fix. I had some bad logic. It likely shouldn't crash, but it works. Here's the change:

Original:

           item.PreviewKeyDown += (sender, e) =>
            {
                    SelectedEmote = emote;
                    _RecentEmotes.Insert(0, SelectedEmote);
                    if (_RecentEmotes.Count > 3)
                        _RecentEmotes.RemoveAt(3);
                    Hide();
            };

New:

           item.PreviewKeyDown += (sender, e) =>
            {
                if (e.Key == Key.Enter)
                {
                    SelectedEmote = emote;
                    _RecentEmotes.Insert(0, SelectedEmote);
                    if (_RecentEmotes.Count > 3)
                        _RecentEmotes.RemoveAt(3);
                    Hide();
                }
            };
(0008713)
sfernandez   
2023-09-08 20:02   
Fixed in changeset 12716


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2624 [NoesisGUI] Unreal crash always 2023-06-12 17:59 2023-09-08 14:16
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash parsing invalid xaml
Description: Noesis is crashing when parsing the following xaml:

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Rectangle>
    <MultiBinding StringFormat="{}{0}"/>
  </Rectangle>
</Grid>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2681 [NoesisGUI] Unity3D major always 2023-09-07 22:05 2023-09-08 13:30
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: NoesisView References Optional Unity Module "XRSettings"
Description: Unity module UnityEngine.VRModule is an optional Unity module. Preprocessor statement ENABLE_VR_MODULE && ENABLE_VR should be used to guard usage of XRSettings. This change is needed in NoesisView.cs for compilation when XRSettings is not present.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008710)
jsantos   
2023-09-08 13:30   
Thanks Stonstad! This was recently fixed in our codebase


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2590 [NoesisGUI] Unity3D major always 2023-05-10 10:24 2023-09-08 11:52
Reporter: Rafael Munoz Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Switch
Summary: Custom Shaders not supported outside of windows.
Description: As I understood from the 3.1 release notes, that version introduced support for Custom Brushes and Effects ( I'm calling them together custom shaders)

These work fine in windows, but when making a platform for switch it does not work.

Looking into shader importer in our version it is pretty clear this is only supported in windows. I have several questions:

- Do you have any plan of supporthing this in the future ( or do you already support it in a later noesis version?)

- Do you have a link where the feature set are described per platform? I've been trying to find something like that to prevent a situation like this in the future ( Right now I have to block usage from the feature since our game is cross platform). I don't want to discover too late that other features i'm counting on are not supported platforms we target.

- Do you have some workaround for these unsupported shaders to at least not crash the build ( Like the defaulting to a shader that leaves everything as is), at least that would not block us from working on platform builds.

- Is there any mechanism to provide the appropriate shaders for these platforms?
Tags: CustomShader, switch, Unity
Steps To Reproduce:
Additional Information:
Attached Files: image.png (61,298 bytes) 2023-05-10 10:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1834&type=bug
DeploymentPreviewImage.noesiseffect (3,252 bytes) 2023-05-12 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1840&type=bug
Desaturation.noesiseffect (427 bytes) 2023-05-12 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1841&type=bug
DesaturationBrush.cs (1,613 bytes) 2023-05-12 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1842&type=bug
DesaturationEffect.cs (2,455 bytes) 2023-05-12 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1843&type=bug
DeploymentPreviewImageEffect.cs (2,629 bytes) 2023-05-12 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1844&type=bug
Notes
(0008471)
jsantos   
2023-05-11 09:41   
Email sent about this


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2651 [NoesisGUI] Unreal crash always 2023-07-18 17:02 2023-09-06 16:12
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash closing Unreal when a material was referenced in the application resources
Description: Just setting the following resources xaml as application dictionary will crash the editor when it gets closed:

<ResourceDictionary
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
        xmlns:local="clr-namespace:Materials">
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/Noesis.GUI.Extensions;component/Theme/NoesisTheme.DarkBlue.xaml"/>
  </ResourceDictionary.MergedDictionaries>
  <ImageBrush x:Key="NoiseImageBrush" ImageSource="/Game;component/Materials/fill-blue.png">
    <noesis:Brush.Shader>
      <local:Noise Color="Red"/>
    </noesis:Brush.Shader>
  </ImageBrush>
</ResourceDictionary>


The crash happens during Shutdown when destroying the application resources, because it tries to use the TypeClass created for the Material that is already destroyed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2649 [NoesisGUI] Unreal crash always 2023-07-12 09:22 2023-09-06 13:46
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash when multiple delegates are used
Description: When multiple delegates are used in the same object there's a crash in DataEventTrigger::UnregisterEvent with the following stack:

[Inlined] Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::Remove(const Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)> &) Delegate.inl:154
[Inlined] Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::operator-=(const Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)> &) Delegate.inl:160
NoesisApp::DataEventTrigger::UnregisterEvent() DataEventTrigger.cpp:101
[Inlined] NoesisApp::DataEventTrigger::StaticFillClassType::__l2::<lambda_c59d3410317593f84bf83ddc37dcc710>::operator()(Noesis::DependencyObject *,const Noesis::DependencyPropertyChangedEventArgs &) DataEventTrigger.cpp:124
Noesis::Delegate<void __cdecl(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::FunctorStub<<lambda_c59d3410317593f84bf83ddc37dcc710> >::Invoke(Noesis::DependencyObject *,const Noesis::DependencyPropertyChangedEventArgs &) Delegate.inl:431
[...]
[Inlined] Noesis::Ptr<Noesis::IView>::Reset() Ptr.inl:156
UNoesisInstance::TermInstance() NoesisInstance.cpp:1098
UNoesisInstance::NativeDestruct() NoesisInstance.cpp:1771
[...]
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 2649.patch (983 bytes) 2023-07-13 19:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1886&type=bug
Notes
(0008605)
hcpizzi   
2023-07-13 19:15   
Here's a patch that should fix this issue. Could you let us know if it fixes it for you?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2648 [NoesisGUI] Unreal feature N/A 2023-07-10 16:26 2023-09-06 13:45
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Support MediaTextures in Bindings
Description: We currently don't support MediaTextures in Bindings.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 2648.patch (4,112 bytes) 2023-07-14 13:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1887&type=bug
Notes
(0008606)
hcpizzi   
2023-07-14 13:09   
Here's a patch that adds support for MediaTextures in Bindings


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2641 [NoesisGUI] Unreal crash have not tried 2023-07-05 10:59 2023-09-06 12:14
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Invalid UMaterialInterface pointers in NoesisTypeClasses
Description: When transitioning between levels the UMaterialInterface pointers in NoesisTypeClasses become invalid.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MaterialInterfaceDestroyed.patch (1,698 bytes) 2023-07-06 19:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1885&type=bug
Notes
(0008600)
jsantos   
2023-07-06 19:02   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2424 [NoesisGUI] C++ SDK crash always 2022-09-17 14:21 2023-09-06 02:47
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.1.7  
Platform: Any
Summary: Crash
Description: No crash in unity editor, but always crashes in windows standalone.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2022-09-17_121050000.zip (165,008 bytes) 2022-09-17 14:21
https://www.noesisengine.com/bugs/file_download.php?file_id=1684&type=bug
Player.log (16,602 bytes) 2022-10-27 12:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1700&type=bug
image.png (69,440 bytes) 2022-10-27 12:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1701&type=bug
Xeno.exe.34828.dmp.7z (4,292,307 bytes) 2023-03-06 12:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1776&type=bug
image-2.png (9,712 bytes) 2023-04-04 16:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1805&type=bug
image-3.png (77,783 bytes) 2023-04-04 16:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1806&type=bug
Extend.cs (308,981 bytes) 2023-04-14 16:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1812&type=bug
Notes
(0008087)
sfernandez   
2022-10-03 20:10   
The callstack indicates the crash happens setting TopPage dependency property in NavFrame, but it is not clear what part is wrong.
I prepared a debug Noesis library to see if we can get more information, could you try with that and send again the crash dump?

https://drive.google.com/file/d/133NfZQ5ztu1YbBmyHxnMrwuARsScn2fO/view?usp=sharing
(0008107)
asusralis   
2022-10-27 12:39   
I seem to be getting an unrelated exception when I try to start the game now:

TTEX (30): public static readonly DependencyProperty ToolTipContentProperty = DependencyProperty.RegisterAttached(
            "ToolTipContent",
            typeof(UIElement),
            typeof(TTEx),
            new PropertyMetadata(OnValueChanged));
(0008320)
asusralis   
2023-03-02 18:42   
Hello, can you send the debug library for 3.1.7? I am still getting this crash in standalone.
(0008322)
sfernandez   
2023-03-06 11:05   
Hi, please find in the following link the debug version for 3.1.7: https://drive.google.com/file/d/1XkbVE-0d8UEhsktyiaVzT2308VYsiqGe/view?usp=share_link
(0008351)
asusralis   
2023-03-21 14:05   
Was there any info about this? It seems to be crashing in 3.2.0 as well.
(0008365)
sfernandez   
2023-03-27 20:13   
Unfortunately no.

In the past you gave us access to your project in git (Empis), would it be possible to get access to this Xeno project also and some indications to reproduce the crash?
I want to debug it myself to find what is happening.

Thanks a lot for your feedback and patience.
(0008378)
asusralis   
2023-03-29 12:11   
I gave you access on bitbucket. You will have to build the game for windows to have it crash. It seems to have been crashing a lot less on 3.2, but it still sometimes does. It seems to be more random now.
(0008384)
asusralis   
2023-03-29 13:09   
I created a branch called 'noesis-test-dev' which you can checkout and build.
(0008394)
sfernandez   
2023-03-30 19:40   
Thanks, I was able to download it. Working on it now.
(0008397)
sfernandez   
2023-04-03 13:49   
I think I found the cause of the crash... could you please try the following patch?

Index: Extend.cs
===================================================================
--- Extend.cs	(revision 12417)
+++ Extend.cs	(working copy)
@@ -5875,6 +5875,7 @@
                 if (!(instance is BaseComponent))
                 {
 #if NETSTANDARD
+                    _weakExtends.Remove(instance);
                     _weakExtends.Add(instance, new ExtendNotifier { cPtr = cPtr });
 #else
                     WeakInfo info = new WeakInfo
@@ -5978,6 +5979,7 @@
             ~ExtendNotifier()
             {
                 AddPendingRelease(cPtr);
+                cPtr = IntPtr.Zero;
             }
         }
(0008400)
asusralis   
2023-04-04 12:22   
Oh great, I will try it. Thank you!
(0008401)
asusralis   
2023-04-04 16:04   
It doesn't seem to crash anymore, but other parts of the game have started to not work. For example, when in combat, if you put your cursor over an ability, a preview shows at the top of the screen. This still works in the editor, but in the standalone this stopped working. Removing the changes you sent above makes this preview work again.

I linked the buttons that will show the preview when the cursor is over them.
(0008402)
asusralis   
2023-04-04 16:11   
A progress bar also seems to not update anymore, but it is on a different branch from what you're on. Just to make sure I did it correctly, this is what I changed:
(0008403)
sfernandez   
2023-04-04 17:31   
The changes you applied are correct.
And it is strange, the problem with the tooltips doesn't happen to me in standalone, they are shown at the top of the screen when moving the cursor over the abilities. Is this happening to you in a deterministic way, or it just happens sometimes?
(0008404)
asusralis   
2023-04-04 18:43   
It seems building for a release build wasn't working. I switched to a debug build and it worked, and then switched back to a release build and it started to work too. I am not sure if there were some temporary files that were messing with this, but everything seems to work now, thanks. I will let you know if I run into this issue again.
(0008405)
asusralis   
2023-04-04 18:50   
(Last edited: 2023-04-04 18:54)
Oh, maybe I spoke too soon. It seems I can't get a release build to work anymore with the tooltips, at least on my current branch. It's possible when I tried last time I didn't have the fix applied. Did you try a standalone release build?

If you check out the ticks-dev before 'Added Noesis fix' commit, and build in release, it should work. However, building on the latest in release and it won't work anymore - both the tooltips and the progress bar in the top-right.
(0008406)
sfernandez   
2023-04-05 13:06   
I'll give a try to that branch and let you know.
(0008417)
sfernandez   
2023-04-12 17:13   
(Last edited: 2023-04-12 17:13)
After much debugging it seems the problem is related to the use of the ConditionalWeakTable, the behavior is not the expected one in standalone and it leads to incorrectly destroy some native objects.
This table was only used for NETSTANDARD, so you can easily disable it by undefining that symbol in the top of Extend.cs:

#undef NETSTANDARD

using System;
using System.Collections.Generic;
...


Could you please try that?
(0008432)
asusralis   
2023-04-13 18:20   
It seems to work! Thank you for this. Will this fix be in the next version?
(0008434)
sfernandez   
2023-04-14 16:07   
Finally I implemented a different fix because we still want to use the ConditionalWeakTable as it is faster than the other code path.
Could you please try using the attached Extend.cs file and let me know if you find any trouble?
(0008451)
asusralis   
2023-04-24 11:35   
It seems to work! Thank you.
(0008452)
sfernandez   
2023-04-24 12:18   
Thanks a lot for the feedback and help.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2570 [NoesisGUI] Unity3D minor always 2023-04-13 17:18 2023-09-05 18:45
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: Combo Box entries in wrong worldspace
Description: When using a combobox in worldspace UI, we see the expanded list of entries show up in the wrong worldspace location. There is also some weird rotation going on with those elements as the player moves around the world.

This was on PC build.
Tags:
Steps To Reproduce: Our xaml has a combo box inside a grid.

Put the UI in worldspace and run the project.
Click the combo box.
Locate where the expanded entries show up. (In our project they are not aligned with the UI and show up in a different world space position)

Additional Information:
Attached Files:
Notes
(0008664)
sfernandez   
2023-08-23 19:30   
Find in the links below the runtimes for windows and android.

Place Bin/windows_x86_64/Noesis.dll in the plugin folder <NoesisGUI>/Runtime/Libraries/Windows/x86_64:
https://drive.google.com/file/d/1d3ho5WZm5iWfg_hqtgHSbb6W2c2NUPpO/view?usp=sharing

Place Bin/android_arm64/libNoesis.so in the plugin folder <NoesisGUI>/Runtime/Libraries/Android/arm64:
https://drive.google.com/file/d/1KiVr_GDbH9yhSjJXpu2qT0T8fPTufCCT/view?usp=sharing

Could you please try them and confirm the issue is fixed in your project?
(0008668)
sfernandez   
2023-08-25 12:57   
(Last edited: 2023-08-25 12:57)
Hi Josh, I'm investigating the issue about the drop down not moving along with the headset and have one question just to confirm.
Is it possible that the panel containing the ComboBox is not placed in a static position in the 3D world, it is moved to be in front of the camera instead?
Because moving the camera shouldn't affect by default the position of the ComboBox and its drop down in the 3D world, only if the ComboBox is moved is when this issue could be happening.
(0008669)
sfernandez   
2023-08-25 18:37   
I generated new libraries with a patch for for popups that target 3D moving elements, could you give it a try?

Windows: https://drive.google.com/file/d/1fHeIKe1wCId54HLArYl80CIFbUDn_a1R/view?usp=sharing
Android: https://drive.google.com/file/d/1DQDmT7ZfkkL9rPBap3NBzpak5EDzak_F/view?usp=sharing
(0008700)
sfernandez   
2023-09-05 18:45   
Solved in changeset 12694


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
668 [NoesisGUI] Unity3D feature always 2015-05-19 21:33 2023-09-04 16:35
Reporter: JaredThirsk Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Missing type: Array
Description: This XAML doesn't work:

<x:Array x:Key="DesignCommands" Type="gsl:DesignCommand">
            <gsl:DesignCommand Name="TestCmd" />
            <gsl:DesignCommand Name="TestCmd" />
</x:Array>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1982 [NoesisGUI] Unity3D major always 2021-04-27 00:28 2023-08-30 20:13
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: FocusManager is missing
Description: The FocusManager class is missing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008687)
sfernandez   
2023-08-30 20:13   
Fixed in changeset 12682


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
811 [NoesisGUI] C# SDK feature always 2016-01-30 13:42 2023-08-30 20:13
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 1.2.5f10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Difference with WPF - FocusManager is absent
Description: Hello!
The FocusManager is absent.
Currently I need access FocusManager.FocusedElement and it seems I need to find a workaround for it.

Would be nice if you implement FocusManager as it's done in WPF.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003496)
sfernandez   
2016-02-01 04:49   
(Last edited: 2016-02-01 04:49)
FocusManager is not currently implemented in NoesisGUI but you can obtain the focused element asking the Keyboard object:

UIElement anyTreeElement = ...;
UIElement focusedElement = anyTreeElement.GetKeyboard().GetFocused();


Will you need logical focus, apart from keyboard focus, to be implemented?

(0003521)
ai_enabled   
2016-02-05 11:58   
(Last edited: 2016-02-05 11:59)
Thanks, I didn't know how to get the instance of Keyboard class. It works very well now.

I don't think we need logical focus (FocusManager) on C# side yet. Currently we need it only on Noesis.dll side - it should behave in the same way as in WPF:
"The idea is that WPF keeps track of one or more groups of controls, each of which makes up a focus scope. Within each focus scope, a single control can have logical focus. This allows WPF to remember the control that last had focus in a group of controls and give the keyboard focus back to the proper control when a group of controls becomes active again." (from http://wpf.2000things.com/2011/05/27/309-keyboard-focus-vs-logical-focus/ )

(0005372)
ai_enabled   
2018-12-21 17:21   
It seems to be not a problem anymore.
Please close this ticket.
(0005377)
sfernandez   
2018-12-24 10:41   
(Last edited: 2018-12-24 10:41)
I will leave it, as it is an unimplemented feature. If more people asks for this we might work on this.

(0008686)
sfernandez   
2023-08-30 20:13   
Fixed in changeset 12682


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2676 [NoesisGUI] Unreal feature always 2023-08-29 09:52 2023-08-29 14:41
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Asynchronous asset loading
Description: As of 3.2.1, when an xaml is loaded, all dependent assets are loaded synchronously, stalling the game. This is especially noticeable with texture atlases. There should be ways to allow assets to be loaded in asynchronously.
Tags: C++, Unreal
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2661 [NoesisGUI] Unity3D major always 2023-08-05 18:04 2023-08-23 20:49
Reporter: ARPP3 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Arc Command's Sweep Direction Backwards
Description: When using the markup syntax for a path, and beginning an Arc path, the sweep direction behaves like '0' when it's '1' and behaves like '1' when it's '0'.

This was tested in Unity and XAML Toy renderer. And compared against Blend's Design mode and a WPF app.

In all instances, the sweep direction seems to be backwards in Noesis.
Tags: Paths, SVG, Unity
Steps To Reproduce: Here's a XAML toy with a path, and documenting which part of the arc command is backwards:
https://www.noesisengine.com/xamltoy/0bec99c2f29f9734bbd530a09ea788fe
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2644 [NoesisGUI] Unity3D major always 2023-07-05 19:26 2023-08-23 19:50
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Directional Keyboard Navigation Broken
Description: Keyboard navigation is highly broken for us -- see https://www.noesisengine.com/bugs/view.php?id=2597

We will start using the provided library. This is a very impactful bug. How soon can an official release with the fix be made available?

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008588)
sfernandez   
2023-07-05 19:33   
We will release 3.2.2 in a couple of weeks more or less.
(0008602)
stonstad   
2023-07-11 15:46   
Understood. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2578 [NoesisGUI] Unity3D major always 2023-04-23 18:03 2023-08-23 19:09
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Unwanted Blur Effect Margin Behavior
Description: In Noesis 3.2, when a blur effect is applied to the top-level user control the UI is shown off-screen. See video here: https://tonstad.blob.core.windows.net/media/Movie_024.mp4

The blur radius in the example shown is 25, which is equal to the offset behavior shown.

I am including the code used to enable and disable the blur effect. Note that if I comment out storyboard.Begin() in the enclosed code, the behavior does not manifest.

It is isolated to the storyboard begin behavior. No other code appears to be responsible for the behavior. This behavior is new to Noesis 3.2.

Encl. FrameworkExtensionMethods.cs.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: FrameworkExtentionMethods.cs (3,525 bytes) 2023-04-23 18:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1814&type=bug
Notes
(0008663)
sfernandez   
2023-08-23 19:08   
Resolved in changesets 12541 and 12542


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2615 [NoesisGUI] Unity3D major always 2023-06-01 12:30 2023-08-23 19:07
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: BackgroundEffect behavior being invalidated per frame
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?t=2957

The Adorner used by the BackgroundEffect is being invalidated per frame and unnecessary calculations are made, even if the Source hasn't changed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008520)
sfernandez   
2023-06-01 12:39   
Could you please try the following patch:

Index: BackgroundEffectBehavior.cs
===================================================================
--- BackgroundEffectBehavior.cs	(revision 12541)
+++ BackgroundEffectBehavior.cs	(working copy)
@@ -119,10 +119,17 @@
 
         private void OnElementUpdated(object sender, EventArgs e)
         {
-            if (_adorner != null)
+            FrameworkElement element = AssociatedObject;
+            if (_adorner != null && Source != null && element.IsVisible && element.Opacity > 0.0f)
             {
-                AdornerLayer adorners = AdornerLayer.GetAdornerLayer(AssociatedObject);
-                adorners.Update(AssociatedObject);
+                Matrix4 mtx = element.TransformToVisual(Source);
+                if (_adorner.TransformToSource != mtx)
+                {
+                    _adorner.TransformToSource = mtx;
+
+                    AdornerLayer adorners = AdornerLayer.GetAdornerLayer(element);
+                    adorners.Update(element);
+                }
             }
         }
 
@@ -155,6 +162,13 @@
                 IsHitTestVisible = false;
             }
 
+            private Matrix4 _mtx = Matrix4.Identity;
+            public Matrix4 TransformToSource
+            {
+                get => _mtx;
+                set { _mtx = value; }
+            }
+
 #if UNITY_5_3_OR_NEWER
             internal
 #endif
@@ -180,20 +194,15 @@
                 Size adornedSize = adornedElement.RenderSize;
                 Size finalSize = adornedSize;
 
+                Point offset = _mtx[3].XY + new Point(0.0f, 0.0f);
+                Rect bounds = _mtx.TransformBounds(new Rect(adornedSize));
+                finalSize.Width = bounds.Width;
+                finalSize.Height = bounds.Height;
+
                 VisualBrush sourceBrush = (VisualBrush)_child.Background;
-                Visual source = sourceBrush.Visual;
-                if (source != null)
-                {
-                    Matrix4 mtx = adornedElement.TransformToVisual(source);
-                    Point offset = mtx[3].XY + new Point(-1.5f, 1.5f);
-                    Rect bounds = mtx.TransformBounds(new Rect(adornedSize));
-                    finalSize.Width = bounds.Width;
-                    finalSize.Height = bounds.Height;
+                sourceBrush.Viewbox = new Rect(offset, finalSize);
+                _targetBrush.Viewbox = new Rect(finalSize);
 
-                    sourceBrush.Viewbox = new Rect(offset, finalSize);
-                    _targetBrush.Viewbox = new Rect(finalSize);
-                }
-
                 _child.Measure(finalSize);
                 return finalSize;
             }

(0008521)
stonstad   
2023-06-01 13:23   
That was it. It totally fixed it. Thank you, thank you, thank you!

I have a demo with a game publisher next week and I was sweating bullets. Thank you!
(0008522)
sfernandez   
2023-06-01 13:52   
Glad to be helpful :)
(0008554)
stonstad   
2023-06-16 00:59   
I'm seeing a strange issue w/ all instances of BackgoundEffect.

Here's a video of what I am seeing: https://stellarconquest.blob.core.windows.net/tmp/Movie_001.mp4

I have breakpoints on code that touches this UI, and nothing is firing -- meaning that I am not seeing resize, or loaded events. The content is static.

 Is it possible the fix with adorners might cause this behavior? The behavior seems to happen more on larger window sizes.
(0008555)
sfernandez   
2023-06-16 10:29   
What I'm supposed to see in the video? Could you please elaborate a bit more what the problem is?
(0008556)
stonstad   
2023-06-16 16:29   
(Last edited: 2023-06-16 16:32)
At t=12s and t=18s the visual content of the backgroundeffect shifts up and then down. I am not seeing any resize or layout events in my code, however. This happens to all instances of BackgroundEffect.
(0008601)
sfernandez   
2023-07-10 20:35   
(Last edited: 2023-07-10 20:36)
From what I see in the video, the blurred background is displaced when a green hexagon appears at the bottom of the screen. How is that rendered, using a visual brush?
If that is the case we fixed an issue related to visual brushes, could you please try the following patched library: https://drive.google.com/file/d/1SIvl6vhJcoZgBAPsxUbGztJGWLahfYbA/view?usp=sharing
(0008603)
stonstad   
2023-07-11 15:50   
There are brushes involved:

  <Grid Grid.Row="1">
                            <Path x:Name="_BottomPanelBlur">
                                <b:Interaction.Behaviors>
                                    <noesis:BackgroundEffectBehavior Source="{Binding ElementName=_BackgroundBlurSource}">
                                        <BlurEffect Radius="{Binding Radius, Source={StaticResource BottomBlurRadius}}"/>
                                    </noesis:BackgroundEffectBehavior>
                                </b:Interaction.Behaviors>
                            </Path>
                            <Path x:Name="_BottomPanelColor" Fill="{StaticResource DefaultUI.Brush.Bottom.Gradient}" Stroke="{StaticResource DefaultUI.Brush.Border}" Margin="0,-1,0,0" Opacity="0.5">
                                <Path.Effect>
                                    <DropShadowEffect Direction="270" Opacity="0.365" BlurRadius="20" ShadowDepth="18"/>
                                </Path.Effect>
                            </Path>
                        </Grid>

Not sure if that satisfies the condition. I am trying the library now. Thank you!
(0008604)
stonstad   
2023-07-11 15:57   
I'm not seeing the behavior. I did rewrite my targeting UI -- which relates to the behavior you observed. Perhaps having the UI element go outside the bounds of its containers contributed to the behavior? I no longer see it with this DLL. Thank you!
(0008662)
sfernandez   
2023-08-23 19:06   
Resolved in changeset 12542


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2668 [NoesisGUI] C++ SDK major always 2023-08-17 11:56 2023-08-23 18:46
Reporter: ulisesBB Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: UIElement doesn't have TranslatePoint implemented
Description: If you need to translate one point from one Visual local coordinates to another Visual local coordinates, in XAML you can use the method TranslatePoint.

public System.Windows.Point TranslatePoint (System.Windows.Point point, System.Windows.UIElement relativeTo);

But in the C++ SDK this is not implemented.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2671 [NoesisGUI] Unity3D minor always 2023-08-22 06:40 2023-08-23 18:19
Reporter: ckfinite Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: EventTrigger can fail with a nullreferenceexception without an explanatory error message
Description: The implementation of EventTrigger's RegisterEvent does not gracefully handle the case where SourceObject is null but the given event does not exist on the source. In this case, the conditionals fall through and pass a null to IsValidEvent which chokes with a NullReferenceException. A more informative error message should be produced instead.
Tags:
Steps To Reproduce: The implementation of EventTrigger's RegisterEvent method, as follows
[code]

        private void RegisterEvent(object source, string eventName)
        {
            if (source != null && !string.IsNullOrEmpty(eventName))
            {
                Type type = source.GetType();
                EventInfo ev = type.GetEvent(eventName);

                if (ev == null)
                {
                    if (SourceObject != null)
                    {
                        throw new ArgumentException(string.Format(
                            "EventTrigger cannot find event '{0}' in SourceObject '{1}'",
                            eventName, type));
                    }
                }

                if (!IsValidEvent(ev))
                {
                    if (SourceObject != null)
                    {
                        throw new ArgumentException(string.Format(
                            "SourceObject event '{0}' is not valid for EventTrigger",
                            eventName));
                    }
                }
                else
                {
                    _event = ev;
                    _handler = Delegate.CreateDelegate(ev.EventHandlerType, this, OnEventMethod);
                    _event.AddEventHandler(source, _handler);
                }
            }
        }
[/code]
doesn't properly handle the case where the default target object (usually AssociatedObject) exists but the designated event does not while no SourceObject is set (and thus SourceObject == null). As described above, this code will fall through with a null ev and null SourceObject and pass IsValidEvent null, which fails with a nullreferenceexception. An additional branch should be added to the condition to provide an informative message in this case.
Additional Information:
Attached Files:
Notes
(0008661)
sfernandez   
2023-08-23 18:19   
Solved in r12660 with the following patch:

Index: EventTriggerBase.cs
===================================================================
--- EventTriggerBase.cs	(revision 12659)
+++ EventTriggerBase.cs	(revision 12660)
@@ -171,8 +171,7 @@
                             eventName, type));
                     }
                 }
-
-                if (!IsValidEvent(ev))
+                else if (!IsValidEvent(ev))
                 {
                     if (SourceObject != null)
                     {


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2670 [NoesisGUI] Unity3D feature always 2023-08-21 08:01 2023-08-21 16:12
Reporter: ckfinite Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Buttons that invoke a RoutedCommand don't refresh their CanExecute when RaiseCanExecuteChanged is called.
Description: Buttons that trigger Custom RoutedCommands do not refresh their visual or logical state by invoking CanExecute after RaiseCanExecuteChanged is called on the base RoutedCommand.
Tags:
Steps To Reproduce: Suppose that we have the XAML
[code]
<Button Command="{l:CustomStatic l:MyTarget.MyCustomCommand}">
    <!--- some suitable content goes here -->
</Button>
[/code]
Note that we reimplemented the x:Static MarkupExtension as the provided x:Static implementation (despite the documentation) doesn't actually support custom RoutedCommands.

and an implementation:
[code]
public class MyTarget : UserControl {
   public static RoutedCommand MyCustomCommand { get; } = new RoutedCommand();
   public MyTarget() {
      var binding = new CommandBinding();
      binding.Command = MyCustomCommand;
      binding.CanExecute += MyCanExecute;
      binding.Executed += MyExecute;
      CommandBindings.Add(binding);
   }
   private bool testCanExecute = true;
    private void MyExecute(object sender, ExecutedRoutedEventArgs e)
    {
      Debug.Log($"MyExecute called - current value {testCanExecute}!");
      testCanExecute = !testCanExecute;
      MyCustomCommand.RaiseCanExecuteChanged();
      Debug.Log($"MyExecute exited - current value {testCanExecute}!");
    }

    private void MyCanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
      Debug.Log($"MyCanExecute called - current value {testCanExecute}!");
      e.CanExecute = testCanExecute;
    }
}
[/code]
and run the game, the button is (as expected) initially enabled. The log begins by showing several invocations of MyCanExecute with the initial (true) value as the button starts up. Once pressed, it calls MyCanExecute:
[code]
MyCanExecute called - current value True!
UnityEngine.Debug:Log (object)
MyTarget:MyCanExecute (object,Noesis.CanExecuteRoutedEventArgs) (at Assets/Scripts/Noesis/Components/Controls/Window.cs:525)
Noesis.CommandBinding:RaiseCanExecute (intptr,intptr,intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/CommandBinding.cs:134)
Noesis.View:MouseButtonUp (int,int,Noesis.MouseButton) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:215)
NoesisView:ProcessEvent (UnityEngine.Event,bool,bool) (at Packages/NoesisGUI/Runtime/NoesisView.cs:1711)
NoesisView:OnGUI () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1808)
[/code]
folowed by CanExecute:
[code]
MyExecute called - current value True!
UnityEngine.Debug:Log (object)
MyTarget:MyExecute (object,Noesis.ExecutedRoutedEventArgs) (at Assets/Scripts/Noesis/Components/Controls/Window.cs:518)
Noesis.CommandBinding:RaiseExecuted (intptr,intptr,intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/CommandBinding.cs:246)
Noesis.View:MouseButtonUp (int,int,Noesis.MouseButton) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:215)
NoesisView:ProcessEvent (UnityEngine.Event,bool,bool) (at Packages/NoesisGUI/Runtime/NoesisView.cs:1711)
NoesisView:OnGUI () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1808)
[/code]
which then toggles the value of testCanExecute and invokes RaiseCanExecuteChanged. However, in spite of the call to RaiseCanExecuteChanged, no intervening invocation of MyCanExecute occurs before the final log from MyExecute
[code]
MyExecute exited - current value False!
UnityEngine.Debug:Log (object)
MyTarget:MyExecute (object,Noesis.ExecutedRoutedEventArgs) (at Assets/Scripts/Noesis/Components/Controls/Window.cs:521)
Noesis.CommandBinding:RaiseExecuted (intptr,intptr,intptr) (at Packages/NoesisGUI/Runtime/API/Proxies/CommandBinding.cs:246)
Noesis.View:MouseButtonUp (int,int,Noesis.MouseButton) (at Packages/NoesisGUI/Runtime/API/Core/View.cs:215)
NoesisView:ProcessEvent (UnityEngine.Event,bool,bool) (at Packages/NoesisGUI/Runtime/NoesisView.cs:1711)
NoesisView:OnGUI () (at Packages/NoesisGUI/Runtime/NoesisView.cs:1808)
[/code]
As a result, the button remains visually enabled despite the command no longer being executable. MyCanExecute is utilized to check whether the command can be executed when the button is pressed again and prevents additional events from being spawned but this state is not visually reflected.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2666 [NoesisGUI] Unity3D minor always 2023-08-16 21:48 2023-08-18 19:56
Reporter: Xaron Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: macOS
Summary: DllNotFoundException for Standalone build on MacOS
Description: When doing a standalone build on MacOS (Intel) with Unity 2021.3.22f1 LTS (Noesis version 3.2.1) of our project I get this in the application log when starting the game:

DllNotFoundException: Noesis assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) Noesis.GUI.Noesis_DisableSocketInit()
  at Noesis.GUI.DisableSocketInit () [0x00000] in <4a5a6102291743178f32591befad79e6>:0
  at NoesisUnity.InitCore () [0x00000] in <4a5a6102291743178f32591befad79e6>:0
  at NoesisXaml.RegisterDependencies () [0x00008] in <4a5a6102291743178f32591befad79e6>:0
  at NoesisXaml.Load () [0x00000] in <4a5a6102291743178f32591befad79e6>:0
  at NoesisView.LoadXaml (System.Boolean force) [0x00025] in <4a5a6102291743178f32591befad79e6>:0
  at NoesisView.OnEnable () [0x00019] in <4a5a6102291743178f32591befad79e6>:0

Explanation from jsantos:

Our native library is not properly tagged for Apple silicon. I am also observing a crash at shutdown when using Development Builds with ARM.

For now, your workaround is selecting only "Intel 64-bit" in the Architecture combobox when building the standalone.
Tags:
Steps To Reproduce: 1) Create a clean project in Unity 2021.3.22 (guess the patch level doesn't matter)
2) import the 3.2.1 Noesis package and also import the button example which comes with that package.
3) Do a standalone build for MacOS.

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2667 [NoesisGUI] Unity3D crash sometimes 2023-08-17 10:40 2023-08-17 14:00
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash playing HelloWorld sample
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?t=3046

I Create a 3D Unity project by UnityHub, and install NoesisGUI package from the local path. Then import HelloWorld sampe, run it in UnityEditor, the Unity is crashed.

Unity version: 2022.1.6f1c1
NoesisGUI version: 3.2.1
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008645)
sfernandez   
2023-08-17 10:42   
 Noesis.dll!SetDebugObjectName(ID3D11DeviceChild * resource=0x0000000000000000, const char * str=0x00007ff8f652c3a0, ...) Line 66	C++
 Noesis.dll!NoesisApp::D3D11RenderDevice::CreateShaders() Line 1269	C++
 Noesis.dll!NoesisApp::D3D11RenderDevice::D3D11RenderDevice(ID3D11DeviceContext * context, bool sRGB) Line 169	C++
 Noesis.dll!NoesisApp::D3D11Factory::CreateDevice(ID3D11DeviceContext * context=0x000002353182a7e0, bool sRGB) Line 21	C++
 Noesis.dll!Noesis::UnityDeviceD3D11::UnityDeviceD3D11(IUnityInterfaces * unityInterfaces=0x00007ff72c212ee0, bool sRGB) Line 37	C++
 [Inline Frame] Noesis.dll!DeviceInitialize::__l6::<lambda_9be33415c20bbcf0e2abcf5d2a63570f>::operator()() Line 434	C++
 Noesis.dll!<lambda_9be33415c20bbcf0e2abcf5d2a63570f>::<lambda_invoker_cdecl>() Line 435	C++
 Noesis.dll!CreateDevice() Line 554	C++
 Noesis.dll!Noesis_GetRenderOffscreenCallback::__l2::<lambda>(int __formal=-1803558880, void * data=0x00000235c1cca060) Line 771	C++


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2601 [NoesisGUI] Unity3D feature always 2023-05-16 22:25 2023-08-16 19:32
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Support HDR Textures in TextureSource
Description: I'm attempting to use BackgoundEffect in Unity. I am compositing camera output to a RenderTexture. For HDR data to be preserved, Unity requires a texture format which supports HDR (DefaultHDR/Linear). Noesis does not support this format, and it shows HDR texures incorrectly.

Ideally, a solution uses a grab pass w/ BackgroundEffect, or HDR support is added. I'll look into HDR to SDR conversion via a shader.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008586)
stonstad   
2023-07-05 17:43   
I have two layers of UI (i.e. pop-ups) and for this reason, I still require Unity HDR texture support in Noesis. Thank you!
(0008587)
stonstad   
2023-07-05 17:50   
See https://www.noesisengine.com/forums/viewtopic.php?p=15825#p15825
(0008589)
jsantos   
2023-07-06 11:30   
As far as I understand (I will verify as soon as possible) HDR textures should work (for example, with an Image). The problem is when offscreens (Opacity, Effects) are used, in this case our intermediate render targets are SDR so we should expose a way to indicate the format of this intermediate textures.
(0008638)
stonstad   
2023-08-15 22:38   
Hey Jesus. Are you thinking that Noesis can render out to Unity-HDR format? It is R16G16B16A16_SFloat with transparency?
(0008644)
jsantos   
2023-08-16 19:32   
Yes, we can render to that format *but* our intermediate textures are not going to work correctly until this is fixed.

If you are not using intermediate texture (not Opacity, no effects) it should work. Yes, I know, a bit limited right now.

I will be come back to this as soon as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
916 [NoesisGUI] C++ SDK minor always 2016-06-22 10:38 2023-08-03 04:07
Reporter: heinrichdutoit Platform: x64  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10  
Status: feedback Product Version: 1.2.6f3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Black lines between elements in Canvas
Description: When using either a Rectangle or Border to display elements from a collection within a Canvas black lines appear between the elements even if the elements are next to each other.

Tags:
Steps To Reproduce:  <Style x:Key="MapView_Style" TargetType="{x:Type ItemsControl}">
        <Style.Resources>
            <GainConverter x:Key="GainConverter" />
        </Style.Resources>
        <Setter Property="ItemsPanel" >
            <Setter.Value>
                <ItemsPanelTemplate>
                    <Canvas ClipToBounds="False" Margin="0,0,0,0" UseLayoutRounding="False">
                    </Canvas>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemTemplate" >
            <Setter.Value>
                <DataTemplate>
                    Width}" Height="{Binding Height}" UseLayoutRounding="False" Margin="0"/>
                    
                        <Rectangle Width="{Binding Width}" Height="{Binding Height}" UseLayoutRounding="False" Margin="0">
                            <Rectangle.Fill>
                                  <ImageBrush ImageSource="{Binding TextureSource}" Stretch="Fill"/>
                                  <ImageBrush ImageSource="cpps.jpg" Stretch="Fill" />
                            </Rectangle.Fill>
                        </Rectangle>
                        
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemContainerStyle" >
            <Setter.Value>
                <Style>
                    <!-- <Setter Property="Canvas.Left" Value="{Binding Path=X1, Converter={StaticResource GainConverter}, ConverterParameter=1}"/>
                    <Setter Property="Canvas.Top" Value="{Binding Path=Y2, Converter={StaticResource GainConverter}, ConverterParameter=-1}"/> -->
                    <Setter Property="Canvas.Left" Value="{Binding Path=X1}"/>
                    <Setter Property="Canvas.Top" Value="{Binding Path=Y2, Converter={StaticResource GainConverter}, ConverterParameter=-1}"/>
                    <!-- <Setter Property="UseLayoutRounding" Value="False"/> -->
                </Style>
            </Setter.Value>
        </Setter>
    </Style>
Additional Information: Using <Image/> element removes the error and is a valid workaround.
Attached Files: screenshot1.png (162,865 bytes) 2019-03-06 18:30
https://www.noesisengine.com/bugs/file_download.php?file_id=982&type=bug
Sample.zip (49,479 bytes) 2019-03-06 18:30
https://www.noesisengine.com/bugs/file_download.php?file_id=983&type=bug
WpfApp9PatchImage.7z (42,845 bytes) 2023-07-26 00:44
https://www.noesisengine.com/bugs/file_download.php?file_id=1888&type=bug
Notes
(0005505)
stonstad   
2019-03-06 18:30   
Example of similar behavior using an ImageBrush. The thinking around this is that tiled image pixels are wrapping along the x-axis, despite a 1:1 correspondence between rectangle width and source image width.
(0005509)
nokola   
2019-03-07 03:21   
I have noticed similar issue, reproduces only on iPhone X for me
(0005512)
jsantos   
2019-03-07 17:16   
(Last edited: 2019-03-07 17:23)
This is a different issue. I am able to reproduce the same behavior in WPF. Changing the TileMode to None makes the line disappear although that's not a valid solution...

(0008585)
ai_enabled   
2023-07-05 01:11   
I also have the same issue (also using 9-patch image approach so it can be stretched in any direction to fit the contents). Please see the screenshot (the issue is a thin orange line above each of the two buttons) https://drive.google.com/file/d/1v3x_0bZNeprDaMQqohpE6y5w2-apLdeX/view?usp=sharing

Is there any workaround?

I wish we can just disable the texture wrapping in one direction—perhaps you can add a NoesisGUI XAML extension for this purpose? Something like this:
noesis:TextureWrapDirection="WrapU"

with the options: WrapU/WrapV/WrapUV

Regards!

P.S. Cannot attach a file due to "Server responded with 0 code" when I submit the message.
(0008590)
jsantos   
2023-07-06 11:37   
Vladimir, could you attach a minimal XAML reproducing the issue for your scenario?

I will revisit this again as soon as possible.
(0008610)
ai_enabled   
2023-07-26 00:44   
(Last edited: 2023-08-03 04:07)
Hi Jesús,
please see the attached sample WPF app.
Using "UseLayoutRounding" makes the issue much less apparent in WPF, but it's still highly noticeable in NoesisGUI even with this setting enabled (and the issue is getting much worse when MSAA is disabled).

The long horizontal line on top and bottom of the button is caused by the texture wrapping around. Hence I've suggested an extension property to restrict texture wrapping ("clamp" render mode). As a workaround for these horizontal lines I'm using RenderOptions.BitmapScalingMode="NearestNeighbor" and simply stretching the texture instead of tiling it (this way wrapping never happens). It's not a good solution but better than seeing these odd lines caused by wrapping.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2657 [NoesisGUI] C# SDK minor always 2023-07-31 21:31 2023-08-01 12:29
Reporter: jayofalltrades Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Cannot Bind to the Properties of a TimeSpan
Description: An error is thrown when attempting to bind to the Hours, Minutes, Seconds, Milliseconds, properties of a TimeSpan and the binding fails. The log claims that TimeSpan does not contain the property and then a "Binding Failed message follows.
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008618)
sfernandez   
2023-08-01 12:29   
Fixed in changeset r12641


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2656 [NoesisGUI] C++ SDK block always 2023-07-31 03:32 2023-08-01 11:41
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: MenuItem's IsChecked binding is not working properly
Description: It seems that the binding for MenuItem's IsChecked property to a VM's property doesn't propagate properly.

Please apply the attached patch and build the Buttons and Buttons-blend to reproduce the issue.

We modify the above Sample to show three controls: Button, CheckBox, and MenuItem that bind to the same IsChecked property.

When run as WPF (Buttons-blend), any changes in one of the control will be synced to the other controls, as expected.

But when run as NoesisGUI (Buttons)
- Clicking MenuItem and changing its IsChecked property is not propagated to other controls
- Clicking Button or Checkbox and changing their IsChecked property is initially propagated to MenuItem. However, once the MenuItem is clicked, the propagation cease forever.

Please also check the movie we attached.

We are running NoesisGUI 3.1.3.

Currently it is a blocking issue for us, and we would be very grateful if you can provide solution for this ASAP (including temporary patch).

Thanks in advance.
Tags:
Steps To Reproduce: Please see the above description
Additional Information:
Attached Files: Test_MenuItem (1).patch (20,205 bytes) 2023-07-31 03:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1889&type=bug
Test_MenuItem.mp4 (279,840 bytes) 2023-07-31 03:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1890&type=bug
Notes
(0008613)
sfernandez   
2023-07-31 13:52   
Hi Niko, it seems the MenuItem.IsChecked property was missing the BindsTwoWayByDefault attribute.
Could you please test the following patch:

Index: MenuItem.cpp
===================================================================
--- MenuItem.cpp	(revision 12600)
+++ MenuItem.cpp	(working copy)
@@ -1123,13 +1123,15 @@
     data->RegisterProperty<bool>(IsCheckableProperty, "IsCheckable",
         FrameworkPropertyMetadata::Create(false));
     data->RegisterProperty<bool>(IsCheckedProperty, "IsChecked",
-        FrameworkPropertyMetadata::Create(false));
+        FrameworkPropertyMetadata::Create(false,
+            FrameworkPropertyMetadataOptions_BindsTwoWayByDefault));
     data->RegisterPropertyRO<bool>(IsHighlightedProperty, "IsHighlighted",
         FrameworkPropertyMetadata::Create(false));
     data->RegisterPropertyRO<bool>(IsPressedProperty, "IsPressed",
         FrameworkPropertyMetadata::Create(false));
     data->RegisterProperty<bool>(IsSubmenuOpenProperty, "IsSubmenuOpen",
-        FrameworkPropertyMetadata::Create(false));
+        FrameworkPropertyMetadata::Create(false,
+            FrameworkPropertyMetadataOptions_BindsTwoWayByDefault));
     data->RegisterPropertyRO<MenuItemRole>(RoleProperty, "Role",
         FrameworkPropertyMetadata::Create(MenuItemRole_TopLevelItem));
     data->RegisterProperty<bool>(StaysOpenOnClickProperty, "StaysOpenOnClick",
(0008614)
nikobarli   
2023-07-31 14:46   
Hi Sergio,

Thanks for the very quick support !
It seems to work. Now I am giving it to the team here to be applied to our codes and tested more rigorously. I will let you know again the result.
(0008616)
nikobarli   
2023-08-01 06:14   
Hi Sergio,

The team said the fix is OK. Thank you !
(0008617)
sfernandez   
2023-08-01 11:41   
(Last edited: 2023-08-01 11:41)
Thanks for the confirmation!
Fixed in changeset r12640


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2606 [NoesisGUI] Unreal crash always 2023-05-22 11:41 2023-07-21 11:34
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash in UNoesisInstance::NativePaint when stopping PIE
Description: There is a crash in the new code that have been added to 3.2.1 when stopping PIE (returned Viewport pointer is nullptr):

        UGameViewportClient* ViewportClient = GetWorld()->GetGameViewport();
        FSceneViewport* Viewport = ViewportClient->GetGameViewport();
>> auto ViewportPosition = Viewport->GetInitialPositionXY();
        auto ViewportSize = Viewport->GetSizeXY();
        auto UnscaledViewRect = FIntRect(ViewportPosition.X, ViewportPosition.Y, ViewportPosition.X + ViewportSize.X, ViewportPosition.Y + ViewportSize.Y);
        NoesisSlateElement->ViewLeft = UnscaledViewRect.Min.X;
        NoesisSlateElement->ViewTop = UnscaledViewRect.Min.Y;
        NoesisSlateElement->ViewRight = UnscaledViewRect.Max.X;
        NoesisSlateElement->ViewBottom = UnscaledViewRect.Max.Y;
Tags:
Steps To Reproduce: * Start PIE session in Unreal
* Add NoesisInstance to viewport
* Stop PIE (e.g. press Esc)
Additional Information:
Attached Files:
Notes
(0008500)
sfernandez   
2023-05-22 12:27   
I think this is related to issue 0002593 we already resolved in changeset r12514.
Could you apply that patch and see if it is fixed for you?
(0008501)
sergey_sitnikov_ninjatheory   
2023-05-22 13:26   
That code is removed in 12514 so I assume it is fixed by that change (I have made a local fix waiting for the new release version of the library).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2640 [NoesisGUI] Unreal crash always 2023-07-05 01:10 2023-07-21 11:28
Reporter: mshvern Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: L847 of NoesisInstance.cpp assumes Viewport exists which crashes in editor when it doesn't
Description: Resizing the PIE window, alt-tabbing and etc. is prone to crash the engine when a 3D widget of NoesisInstance is present. I've tracked it down to these lines
[code]UGameViewportClient* ViewportClient = GWorld->GetGameViewport();
FSceneViewport* Viewport = ViewportClient->GetGameViewport();[/code]

Just check whether VIewportClient is nullptr or not before trying to access its properties.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2642 [NoesisGUI] Unreal major always 2023-07-05 14:08 2023-07-21 11:22
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Different Colors in Unreal World UI
Description: When rendering UI in World Space, color must be rendered in linear space. Right now, we are using the sRGB space and colors look washed.

https://www.noesisengine.com/forums/viewtopic.php?t=3008
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008608)
hcpizzi   
2023-07-21 11:22   
Implemented a linear RenderDevice.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2652 [NoesisGUI] Unity3D minor always 2023-07-19 11:01 2023-07-19 17:16
Reporter: NirHasson Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Opacity Mask Bug - Element Rendered Vertically Flipped
Description: An element with image based opacity mask is rendered vertically flipped when one of its parent items have opacity lower than 1.
Tags:
Steps To Reproduce: Use the XAML below with one of your images and the result will be a flipped rectangle.

<Page
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      mc:Ignorable="d"
      d:DesignHeight="450" d:DesignWidth="800"
      Title="OpacityMaskBug">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF8F1B9C"/>
                <GradientStop Color="#FF076D6F" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
        <Viewbox Grid.Row="1" Opacity="0.95">
            <Rectangle Grid.Row="1" x:Name="TargetRect" Fill="#FFD1F536" Width="256" Height="256">
                <Rectangle.OpacityMask>
                    <ImageBrush ImageSource="Images/award_icon.png"/>
                </Rectangle.OpacityMask>
            </Rectangle>
        </Viewbox>
    </Grid>
</Page>
Additional Information:
Attached Files:
Notes
(0008607)
sfernandez   
2023-07-19 17:16   
Fixed in rev. 12519


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2594 [NoesisGUI] Unreal major always 2023-05-11 13:17 2023-07-19 17:14
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Complex OpacityMask with transparency provides different results in WPF and Noesis 3.2.0
Description: Complex OpacityMasks with transparency can provide different results in WPF and Noesis 3.2.0. The problem can cause flickering when Opacity is animated. The issue wasn't noticed in version 3.1.6.
Tags:
Steps To Reproduce: <Grid Background="Black">
                <Grid>
                                <Grid.OpacityMask>
                                                <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                                                                <GradientStop Color="Transparent" Offset="0" />
                                                                <GradientStop Color="Black" Offset="0.5" />
                                                                <GradientStop Color="Transparent" Offset="1" />
                                                </LinearGradientBrush>
                                </Grid.OpacityMask>

                                <Grid>
                                                <Grid.OpacityMask>
                                                                <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                                                                                <GradientStop Color="Black" Offset="0" />
                                                                                <GradientStop Color="Transparent" Offset="1" />
                                                                </LinearGradientBrush>
                                                </Grid.OpacityMask>
                                                <Grid Background="Red" />
                                </Grid>
                </Grid>
</Grid>
Additional Information:
Attached Files: WPF.png (217,556 bytes) 2023-05-11 13:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1838&type=bug
Unreal (Noesis 3.2.0).png (240,850 bytes) 2023-05-11 13:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1839&type=bug
Notes
(0008474)
sfernandez   
2023-05-12 10:44   
Fixed in rev. 12519


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
969 [NoesisGUI] C++ SDK feature always 2016-10-26 14:56 2023-07-18 12:54
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Animate scroll changes
Description: A necessary improvement is to animate the scroll offset, to get a perfect smooth transition from the latest offset. This will apply not only for MouseWheel events, but also when scrolling with ScrollBar buttons or clicking the ScrollBar track.

We have to investigate how this is exposed in UWP and check if WPF has something similar to be compatible.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006135)
ai_enabled   
2020-03-10 20:37   
I hope it could be also done for virtualized panels! (scrolling by items instead of by pixels)
It would add a lot of smoothness to any UI with scrolling!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2613 [NoesisGUI] Unreal minor always 2023-05-30 20:26 2023-07-11 11:57
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Set with NotifyChanged node doesn't work with Text properties
Description: If Set with NotifyChanged is used with a Text property, Blueprint compilation fails with error:

The current value (/Script/Engine.Default__KismetStringLibrary) of the ' Target ' pin is invalid: /Script/Engine.Default__KismetStringLibrary isn't a KismetTextLibrary (specified on pin self)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SetWithNotify.patch (19,302 bytes) 2023-05-30 21:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1862&type=bug
Notes
(0008519)
hcpizzi   
2023-05-30 21:26   
The Set with NotifyChanged node works by expanding the node to a network of nodes that: get the current value of the property, compare it to the value to be set and, if different, set the new value and notify the change.

Most of the network is the same, regardless of the type of the property. However, the comparison is type dependent.

The error in questios was caused because the wrong object was being set in the Self pin of the compare node.

But, after fixing this problem, I realized that the Text comparison function only takes references to objects, which caused problems when trying to set them to a literan in the node's pin itself.

Given how convoluted this all was, I've taken this opportunity to revamp the whole thing. Now the node just calls a function that does everything natively. This should be more efficient, and also easier to maintain moving forward.

I've attached a patch with the changes.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2627 [NoesisGUI] C++ SDK minor always 2023-06-13 10:48 2023-07-10 20:18
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Improve PropertyPath error messages for boxed values
Description: When binding to unknown properties of boxed values the error message says:

Can't solve PropertyPath: Type 'Boxed<String>' does not contain a property named 'Length'


We should just mention the name of the boxed type to avoid confusion.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2647 [NoesisGUI] Unreal minor always 2023-07-10 01:20 2023-07-10 20:11
Reporter: mshvern Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Missing converter for PathFigureCollection
Description: When referencing a PathFigureCollection from a resource dictionary
Cannot convert 'M 1888.2001 1.915677 V 1001.9211 l -24.8263 43.0005 h -392.9762 l -65.2936 29.7968 h 486.7515 L 1920 1025.9707 V 1.915677 Z' into a 'PathFigureCollection' object


https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2975&sid=58de6ac48c2b7b8640c2b7ca303e5d21#p15743
Tags:
Steps To Reproduce:
Settings Figures directly:
<Path Fill="White" StrokeThickness="0.264583">
    <Path.Data>
        <PathGeometry Figures="M 1888.2001 1.915677 V 1001.9211 l -24.8263 43.0005 h -392.9762 l -65.2936 29.7968 h 486.7515 L 1920 1025.9707 V 1.915677 Z" FillRule="NonZero"/>
    </Path.Data>
</Path>


Setting Figures through a resource:
<ResourceDictionary>
    <PathFigureCollection x:Key="Path.FrameRight">
        M 1888.2001 1.915677 V 1001.9211 l -24.8263 43.0005 h -392.9762 l -65.2936 29.7968 h 486.7515 L 1920 1025.9707 V 1.915677 Z
    </PathFigureCollection>
</ResourceDictionary>

<Path Fill="White" StrokeThickness="0.264583">
    <Path.Data>
        <PathGeometry Figures="{StaticResource Path.FrameRight}" FillRule="NonZero"/>
    </Path.Data>
</Path>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2646 [NoesisGUI] Unreal feature N/A 2023-07-07 10:10 2023-07-10 12:02
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support FDateTime as DateTime for Bindings
Description: There's no type right now that maps to DateTime. Add a mapping for FDateTime.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1498 [NoesisGUI] C# SDK major have not tried 2019-06-19 19:09 2023-07-10 12:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Performance problems binding DateTime
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1722
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
728 [NoesisGUI] Unity3D minor always 2015-10-05 18:59 2023-07-10 12:01
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Binding to nullable DateTime doesn't work
Description: As the title says, binding to DateTime? doesn't work and it will throw an exception:

Can't launch PropertyChanged event. Property 'RegistrationDate' not found in type 'DominoRun.Gui.AccountManagement.AccountManagementView'
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1504 [NoesisGUI] C++ SDK feature have not tried 2019-06-21 16:55 2023-07-10 11:59
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Suport for DateTime formats in StringFormat
Description: First we have to define DateTime struct natively.
https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.8

Then we should implement support in StringFormat:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2643 [NoesisGUI] Unity3D feature always 2023-07-05 17:41 2023-07-06 11:37
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ShaderEffects listed in Class Hierarchy are Not Available in Unity
Description: https://www.noesisengine.com/forums/viewtopic.php?t=2977

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2645 [NoesisGUI] C++ SDK feature always 2023-07-05 20:02 2023-07-05 20:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RiveControl: add support for joysticks
Description: Update rive runtime to support joysticks:
  https://rive.app/changelog/joysticks
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2597 [NoesisGUI] C# SDK major always 2023-05-14 22:40 2023-07-05 19:31
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Windows
Summary: Adding a scrollviewer makes keyboard focus behave in completely unexpected ways for the controls inside.
Description: Noesis' automatic keyboard focus seems to change its behaviour when a panel is placed inside the scrollviewer in 3.2.1 (haven't tested it out on previous version, since I was waiting for fix to scrollviewer's ability to focus controls outside its scrolled-area, which was implemented in 3.2.1). In my case it seems to behave completely unexpectedly, jumping several focusable elements up or down, skipping elements, going down when pressing right etc.
I am attaching a modified Applications sample with a case similar to what we have in our game. A scrollviewer with one large stackpanel inside of it. The staxkpanel has some itemscontrols and a listbox inside (but their individual scrolling is disabled, but it is worth to mention it in case it is related to the issue). The issues should be obvious when running the sample, but some specific examples:
1. Sequence right right right down down down the third down moves us outside the sliders and we would expect it to focus the left button of row 0_0, instead it jumps to row 0_3.
2. Pressing right after sequence 1 focuses us on the right button 2_0, completely skipping the portion inside Header_1.
3. Pressing down and then up after sequence one focuses us on 1_0 (expected) and then 0_0 (I would expect 0_3).
There are many more examples, but in general it seems to behave quite randomly.

There is commented out version of this same stackpanel outside the scrollviewer. There are still some issues (ie if we focus on the right button and press up we focus the upper row's left button instead of right, whereas right would be expected) but these are much more minor (but would be appreciated if they got fixed as well (though if 0002406 gets implemented then these minor problems could be fixed manually by us).
Tags:
Steps To Reproduce: Run the attached project
Run the keybaord sequences from above, or just test the application
Additional Information:
Attached Files: ScrollViewerProblemsSample.zip (2,098,382 bytes) 2023-05-14 22:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1845&type=bug
2023-05-10 11-52-14_Weird_Offset_Compressed.mp4 (3,070,554 bytes) 2023-05-14 22:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1846&type=bug
2023-05-10 12-09-49_compressed.mp4 (2,029,614 bytes) 2023-05-14 22:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1847&type=bug
2023-05-17 08-52-24_compressed.mp4 (1,261,421 bytes) 2023-05-17 09:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1848&type=bug
Notes
(0008477)
sfernandez   
2023-05-15 11:09   
I'll send you a patched library as soon as I have a fix for you to test.
(0008478)
sfernandez   
2023-05-15 17:14   
Hi, please try the following library and let me know if you find any more issues with the focus:
https://drive.google.com/file/d/11LMr2-CSTJyHWc0YSj9xotCWs8L40DF8/view?usp=share_link
(0008481)
sfernandez   
2023-05-17 14:41   
I made some improvements to the directional navigation to avoid the behavior you mentioned.
Please try this new library: https://drive.google.com/file/d/136xiNG24MN4wbZPwoG9JNT44oCzwz79U/view?usp=share_link
(0008483)
sumel007   
2023-05-18 09:36   
Hi. I've tested it on our screen and it seems like all the issues are fixed. If we find anything else I'll let you know, but I think the issue is resolved for now. Thank you!
(0008525)
sfernandez   
2023-06-06 12:56   
Fixed in changeset r12545


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2398 [NoesisGUI] C++ SDK minor always 2022-08-16 07:26 2023-07-05 01:00
Reporter: BAJayM Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.2.2  
Platform: Any
Summary: Hitting assert in Rect constructor when using LinearRectKeyFrame
Description: There is a case where the LinearRectKeyFrame can case the rect constructor to assert while it is animating.

I believe it is using the rect class to do some maths to work out the new location of the rect. This rect that you are using, can have a negative size but it should be valid.
Tags: assert, LinearRectKeyFrame
Steps To Reproduce: Say we have a rectangle geometry like this:
<RectangleGeometry x:Name="outlineColourAwaySideGeo" Rect="0, 0, 533, 400"/>

Then we have a storyboard that moves it like this:

<RectAnimationUsingKeyFrames Storyboard.TargetName="outlineColourAwaySideGeo"
                                         BeginTime="0:0:0"
                                         Storyboard.TargetProperty="Rect">
      <LinearRectKeyFrame Value="0,0,533,0" KeyTime="0:0:0.4" />
      <DiscreteRectKeyFrame Value="0,0,533,400" KeyTime="0:0:0.6" />
</RectAnimationUsingKeyFrames>

The rect you are doing the maths with has a negative size so therefore hits this assert.
Additional Information:
Attached Files:
Notes
(0008531)
BAJayM   
2023-06-09 07:02   
I've just merged the fix for this into 3.1.5 (we still haven't updated. It's been crazy) and I saw the same problem would be in Spline Rect Key Frame and Easing Rect Key Frame
(0008582)
jsantos   
2023-07-05 00:02   
I am verifying this right now, the original fix for LinearRectKeyFrame was in r11689. A day later, r11698 fixed this for all animation classes using Rect.

Could you please verify you merged everything correctly?

This is also part of Noesis 3.2 branch.
(0008583)
BAJayM   
2023-07-05 00:46   
Oh I must of missed that. Ill take a look thank you.

We haven't updated fully since we are under the pump atm.
Thanks for pointing that out. My bad.

Thanks,
Jay
(0008584)
jsantos   
2023-07-05 01:00   
I am going to mark this as solved. Please, reopen again if necessary.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2609 [NoesisGUI] Unity3D minor always 2023-05-24 12:00 2023-07-04 19:15
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: WebGL: TextBox and PasswordBox don't receive focus
Description: From forums post: https://www.noesisengine.com/forums/viewtopic.php?p=15630

TextBox or PasswordBox in login sample doesn't show the text caret when clicked. It doesn't work either if you try to move the focus with the Tab key.
Tags:
Steps To Reproduce: Unity 2022.2.5f1 + NoesisGUI 3.2.1

1. Create Unity project
2. Install NoesisGUI package
3. Import Login sample
4. Build and Run for WebGL platform
Additional Information:
Attached Files:
Notes
(0008571)
dmacd10@gmail.com   
2023-06-29 00:38   
Gentle bump? This is now a blocking issue for our app; we need text entry capabilities. Would love to have a workaround at the very least.
(0008581)
jsantos   
2023-07-04 19:15   
Fixed in 3.2.2

Method TouchKeyboard.Open (in NoesisUnity.cs) must be changed to

        public static void Open(UIElement focused_)
        {
            string text = "";
            TouchScreenKeyboardType keyboardType = TouchScreenKeyboardType.Default;
            bool multiline = false;
            bool secure = false;
            int characterLimit = 0;

            if (focused_ is FrameworkElement)
            {
                switch (((FrameworkElement)focused_).InputScope)
                {
                    case InputScope.Url:
                        keyboardType = TouchScreenKeyboardType.URL;
                        break;
                    case InputScope.Digits:
                    case InputScope.Number:
                    case InputScope.NumberFullWidth:
                        keyboardType = TouchScreenKeyboardType.NumbersAndPunctuation;
                        break;
                    case InputScope.TelephoneNumber:
                    case InputScope.TelephoneLocalNumber:
                        keyboardType = TouchScreenKeyboardType.PhonePad;
                        break;
                    case InputScope.AlphanumericFullWidth:
                    case InputScope.AlphanumericHalfWidth:
                        keyboardType = TouchScreenKeyboardType.NamePhonePad;
                        break;
                    case InputScope.EmailSmtpAddress:
                        keyboardType = TouchScreenKeyboardType.EmailAddress;
                        break;
                    case InputScope.RegularExpression:
                        keyboardType = TouchScreenKeyboardType.Search;
                        break;
                    default:
                        keyboardType = TouchScreenKeyboardType.Default;
                        break;
                }
            }

            TextBox textBox = focused_ as TextBox;
            PasswordBox passwordBox = focused_ as PasswordBox;

            if (textBox != null)
            {
                text = textBox.Text;
                multiline = textBox.TextWrapping == TextWrapping.Wrap && textBox.AcceptsReturn;
                characterLimit = textBox.MaxLength;
            }
            else if (passwordBox != null)
            {
                text = passwordBox.Password;
                secure = true;
            }

            TouchScreenKeyboard keyboard_;

          #if UNITY_2018_1_OR_NEWER
            keyboard_ = TouchScreenKeyboard.Open(text, keyboardType, true, multiline, secure, false, "", characterLimit);
          #else
            keyboard_ = TouchScreenKeyboard.Open(text, keyboardType, true, multiline, secure, false, "");
          #endif

            if (keyboard_.status == TouchScreenKeyboard.Status.Visible)
            {
                if (textBox != null)
                {
                    textBox.HideCaret();
                }
                else if (passwordBox != null)
                {
                    passwordBox.HideCaret();
                }

                keyboard = keyboard_;
                focused = focused_;
                undoString = text;
            }
        }


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2637 [NoesisGUI] Unity3D feature always 2023-06-30 18:19 2023-07-03 13:47
Reporter: stonstad Platform:  
Assigned To: admin OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Include Saturation Effect in core Unity3D Noesis APIs
Description: See https://www.noesisengine.com/forums/viewtopic.php?t=2977
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2633 [NoesisGUI] Unity3D major always 2023-06-26 22:29 2023-06-27 11:08
Reporter: Josh Campbell Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Android
Summary: URP Renders in Left Eye Only.
Description: We recently updated to URP. After the update Noesis world space UI no longer renders properly in VR - only appears in left eye and the transform/scale is incorrect/skewed.

We tested this in the Sample World UI project as well and had the same result.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008567)
jsantos   
2023-06-27 11:08   
What Unity and Noesis version are you using?

Is this happening in Android or Windows?

Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2631 [NoesisGUI] Unity3D feature always 2023-06-21 19:45 2023-06-21 20:36
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Add x:Shared Support
Description: I'd like to use x:Shared so that I can share this grouping of paths across different UIs. Each instance has a different parent, and for this reason sharing should be disabled.

    <Viewbox x:Key="colonists_svg" Stretch="Uniform" x:Shared="False">
        <Canvas Width="40" Height="40">
            <Path Fill="#ffffff" Data="M18.7944 5C14.347 5 10.7417 8.60533 10.7417 13.0527V18.5144C10.7417 19.4916 11.3742 20.3564 12.3054 20.6526C16.5273 21.9951 21.0616 21.9951 25.2834 20.6526C26.2147 20.3564 26.8472 19.4916 26.8472 18.5144V13.0527C26.8472 8.60533 23.2418 5 18.7944 5ZM17.3851 7.81858C14.1608 7.81858 11.5469 10.4324 11.5469 13.6568C11.5469 16.8812 14.1608 19.495 17.3851 19.495H20.2036C23.428 19.495 26.0418 16.8812 26.0418 13.6568C26.0418 10.4324 23.428 7.81858 20.2036 7.81858H17.3851Z"/>
            <Path Fill="#ffffff" Data="M26.4443 12.2476C27.3338 12.2476 28.0549 12.9686 28.0549 13.8581V15.4687C28.0549 16.3581 27.3338 17.0792 26.4443 17.0792V12.2476Z"/>
            <Path Fill="#ffffff" Data="M11.144 12.2476C10.2546 12.2476 9.5335 12.9686 9.5335 13.8581V15.4687C9.5335 16.3581 10.2546 17.0792 11.144 17.0792V12.2476Z"/>
            <Path Fill="#ffffff" Data="M12.8727 11.4248C12.5394 12.0974 12.3521 12.8552 12.3521 13.6567C12.3521 16.4363 14.6054 18.6897 17.385 18.6897H20.2035C22.9831 18.6897 25.2364 16.4363 25.2364 13.6567C25.2364 12.8552 25.0491 12.0974 24.7157 11.4248H12.8727Z"/>
            <Path Fill="#ffffff" Data="M26.6057 21.1333C23.9895 23.7495 13.7927 23.9533 10.9939 21.1545C8.06326 22.5315 6 25.5088 6 29.0113V31.0001L31.6993 32.0001V29.0363C31.6993 27.696 31.3972 26.4327 30.8601 25.3067L29.3928 27.8481L27.7236 26.8844L29.6882 23.4816C29.5437 23.3087 29.3927 23.1416 29.2356 22.9806L26.3012 28.0631L24.632 27.0994L27.7238 21.7443C27.3677 21.5143 26.9941 21.3098 26.6057 21.1333ZM15.0208 28.7089L12.6134 28.7356C11.5645 28.7356 11.1737 28.1583 11.1737 27.2256L11.1396 25.5606L16.2795 25.5232L16.2638 27.1267C16.2638 27.9579 15.8757 28.7089 15.0208 28.7089Z"/>
        </Canvas>
    </Viewbox>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008562)
stonstad   
2023-06-21 19:59   
I have it working with DataTemplates... but I can't help wonder if it would be easier to just set x:Shared:"False". Please feel free to close.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2626 [NoesisGUI] Unity3D crash sometimes 2023-06-13 08:16 2023-06-13 10:45
Reporter: VaqifQuluzada Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Android
Summary: Crash when loading two noesisView content at the same time
Description: In my scene there are two noesis view element which loads at the same time in start. And sometimes this gives and error message as below.
The temporary solution for this issue is to give delay between two xaml files loading process(i use async method but sometimes it also crashes)
Tags: C#, Unity, WPF, xaml
Steps To Reproduce: 1) Put two noesisView in different cameras in scene.
2) After building in android, sometimes it gives crash and exit application

Error codes in logcat:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: FATAL EXCEPTION: UnityMain
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Process: com.DynamicBox.Prototip, PID: 28142
06-07 10:29:22.957 28142 28177 E AndroidRuntime: java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Version '2021.3.16f1 (4016570cf34f)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a'
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Build fingerprint: 'Unistrong/UT32/UT32:10/QKQ1/androi202106242017:user/release-keys'
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Revision: '0'
06-07 10:29:22.957 28142 28177 E AndroidRuntime: ABI: 'arm'
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Timestamp: 2023-06-07 10:29:22+0400
06-07 10:29:22.957 28142 28177 E AndroidRuntime: pid: 28142, tid: 28177, name: UnityMain >>> com.DynamicBox.Prototip<<<
06-07 10:29:22.957 28142 28177 E AndroidRuntime: uid: 10171
06-07 10:29:22.957 28142 28177 E AndroidRuntime: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x24
06-07 10:29:22.957 28142 28177 E AndroidRuntime: Cause: null pointer dereference
06-07 10:29:22.957 28142 28177 E AndroidRuntime: r0 00000000 r1 b6a6b220 r2 c89510e6 r3 c89510e7
06-07 10:29:22.957 28142 28177 E AndroidRuntime: r4 00000000 r5 b6a6b220 r6 00000002 r7 c89510c0
06-07 10:29:22.957 28142 28177 E AndroidRuntime: r8 c8951148 r9 b6a6b060 r10 00000000 r11 00000015
06-07 10:29:22.957 28142 28177 E AndroidRuntime: ip c02deae8 sp c8951070 lr c0006673 pc bff51df8
06-07 10:29:22.957 28142 28177 E AndroidRuntime:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: backtrace:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #00 pc 00148df8 /data/app/com.DynamicBox.Prototip-l64U6h0uYWi6v6j1Z8KMMg==/lib/arm/libNoesis.so
06-07 10:29:22.957 28142 28177 E AndroidRuntime:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: managed backtrace:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #00 (wrapper managed-to-native) Noesis.View:Noesis_View_Create (System.Runtime.InteropServices.HandleRef)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #01 Noesis.View:CreateCPtr (System.Type,bool&) <0x7b>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #02 Noesis.BaseComponent:.ctor () <0x43>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #03 Noesis.DispatcherObject:.ctor () <0x13>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #04 Noesis.View:.ctor (System.Runtime.InteropServices.HandleRef) <0x57>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #05 Noesis.View:.ctor (Noesis.FrameworkElement) <0x2b>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #06 NoesisView:CreateView (Noesis.FrameworkElement) <0x67>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #07 NoesisView:LoadXaml (bool) <0xc7>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #08 NoesisView:OnEnable () <0x43>
06-07 10:29:22.957 28142 28177 E AndroidRuntime: #09 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
06-07 10:29:22.957 28142 28177 E AndroidRuntime:
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at libNoesis.0x148df8(Native Method)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.View.Noesis_View_Create (System.Runtime.InteropServices.HandleRef)(Native Method)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.View.CreateCPtr (System.Type,bool&)(0x7b:123)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.BaseComponent..ctor ()(0x43:67)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.DispatcherObject..ctor ()(0x13:19)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.View..ctor (System.Runtime.InteropServices.HandleRef)(0x57:87)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at Noesis.View..ctor (Noesis.FrameworkElement)(0x2b:43)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at NoesisView.CreateView (Noesis.FrameworkElement)(0x67:103)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at NoesisView.LoadXaml (bool)(0xc7:199)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at NoesisView.OnEnable ()(0x43:67)
06-07 10:29:22.957 28142 28177 E AndroidRuntime: at System.Object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)(Native Method)
Additional Information:
Attached Files:
Notes
(0008538)
jsantos   
2023-06-13 10:44   
Just for confirmation, this is not using multiple threads for loading the views right?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1857 [NoesisGUI] C++ SDK feature always 2020-12-10 02:12 2023-06-12 12:38
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.8  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Add support for TextSearch to ItemsControl
Description: Select an item in ListBox or ComboBox by typing in a few characters that match their text, similar to WPF.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008524)
nikobarli   
2023-06-06 07:41   
Hi, is there any plan to include this feature in your roadmap. We actually want to use this feature in our software.

Thanks.
(0008535)
sfernandez   
2023-06-12 12:38   
Hi, there's not been many requests about this feature but if it is important for you we can implement it for an upcoming release.
In the meantime, have you considered attaching a behavior to do add this kind of functionality to items controls?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2618 [NoesisGUI] Unity3D minor always 2023-06-06 15:11 2023-06-12 12:24
Reporter: Umarsh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: ApplicationCommands.Cut not reacting on selection in TextBox
Description: From forum post https://www.noesisengine.com/forums/viewtopic.php?t=2960

Buttons with commands ApplicationCommands.Cut and ApplicationCommands.Copy not reacting(stay inactive) on selection in textbox.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2605 [NoesisGUI] C# SDK major always 2023-05-21 19:34 2023-06-12 11:32
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Code handling enter key has some problems.
Description: Thread here https://www.noesisengine.com/forums/viewtopic.php?p=15624#p15624
"I think we have something wrong in relation to the code handling the Enter key, because it should behave the same as with the Space key."
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008511)
sfernandez   
2023-05-25 12:22   
Please try the following library with the issue fixed:
  https://drive.google.com/file/d/1ByEOev0YOAN20cYiK8ChelAk2Mpj_lmk/view?usp=share_link
(0008527)
sfernandez   
2023-06-06 12:57   
Did you find any trouble with that patched library? Did it work as you expected?
(0008533)
sumel007   
2023-06-12 08:12   
Sorry, I was on vacation, so I just got around to testing the library.

It seems that the issue is fixed and the keys behave as expected. Thank you!
(0008534)
sfernandez   
2023-06-12 11:32   
Thanks for the feedback! marking this as solved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2619 [NoesisGUI] VSCode minor have not tried 2023-06-06 18:40 2023-06-06 18:40
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Investigate using icons instead of text for the VSCode extension connection status
Description: Investigate replacing "Unity" and "Unreal" in the VSCode extension connection status with icons.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2599 [NoesisGUI] Unity3D major always 2023-05-15 16:49 2023-06-06 12:56
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Directional focus can't be moved to controls inside ItemsControl's items
Description: When an item inside an ItemsControl contains several controls, directional focus moves only between items, but cannot be moved to the controls inside each of the items.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008526)
sfernandez   
2023-06-06 12:56   
Fixed in changeset r12545


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2614 [NoesisGUI] Unity3D feature N/A 2023-05-31 16:15 2023-05-31 16:32
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: SVG Importer
Description: We are using Inskscape -- but a SVG preprocessor to create XAML would be a terrific feature!


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2580 [NoesisGUI] Unity3D crash have not tried 2023-04-24 10:39 2023-05-29 13:33
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Crash reloading xaml with errors
Description: It occurred during the XamlReload step.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2023-04-23_200357222.zip (341,778 bytes) 2023-04-24 10:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1819&type=bug
ResourcesCommon.xaml (15,366 bytes) 2023-04-24 18:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1825&type=bug
Crash_2023-05-19_163841910.zip (959,779 bytes) 2023-05-19 18:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1857&type=bug
ResourcesCommon-2.xaml (15,499 bytes) 2023-05-19 21:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1858&type=bug
Notes
(0008448)
sfernandez   
2023-04-24 10:40   
(0008449)
sfernandez   
2023-04-24 10:43   
Hi, I separated this issue in a new ticket to better track the different problems.

This crash happened during the reload of "Assets/User Interface/ResourcesCommon.xaml", could you please attach it here and perhaps indicate what did you change to make it crash?
Let's see if we can reproduce it to understand the source of the problem.
(0008458)
stonstad   
2023-04-24 18:11   
I added <SolidColorBrush x:Key="SelectionBrush" Color="{StaticResource SelectionColor}"/>

But in general, it does not matter what line I change.
(0008460)
jsantos   
2023-04-24 20:11   
(Last edited: 2023-04-24 20:23)
I am able to reproduce this, moving from

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <Color x:Key="SelectionColor" R="255"/>
  </Grid.Resources>
</Grid>

to

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <Color x:Key="SelectionColor" G="255"/>
  </Grid.Resources>
</Grid>

or

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <Color x:Key="SelectionColor" R="255"/>
    <SolidColorBrush x:Key="SelectionBrush" Color="{StaticResource SelectionColor}"/>
  </Grid.Resources>
</Grid>

Working on it
(0008491)
stonstad   
2023-05-19 18:41   
Sorry to reopen this. Should this behavior be present in 3.2.1? I just ran into it.
(0008492)
stonstad   
2023-05-19 18:42   
I modified a color in a resources XAML file, and then on XAML reload the editor crashed.
(0008494)
jsantos   
2023-05-19 19:46   
Could you please attach the XAML? Are you consistently reproducing this?
(0008497)
stonstad   
2023-05-19 21:46   
Crashed while changing line 61 from# 99444444 to #55444444.
(0008498)
stonstad   
2023-05-19 21:47   
It isn't consistent but it has happened two or three times today.
(0008499)
sfernandez   
2023-05-22 11:19   
Following the callstack and the code you attached in ticket 0002579 I see this is related to the UIStateMachine which is used like a singleton.
Could you please add the following checks in FrameworkElementExtensions:

public static void FadeIn(this FrameworkElement frameworkElement, FrameworkElement parent, TimeSpan duration, Action completed = null)
{
  if (parent == null) throw new NullArgumentException("parent");
  if (BaseComponent.getCPtr(parent).Handle == IntPtr.Zero)  throw new NullArgumentException("parent");
  ...
}
(0008513)
stonstad   
2023-05-26 22:05   
Yes, I am trying this now.
(0008514)
stonstad   
2023-05-26 22:21   
The exception is thrown! I'm investigating the singleton behavior with UIStateMachine. I agree that it is suspect and likely related to the Unity app domain reload behavior and static initialization.
(0008515)
stonstad   
2023-05-27 15:08   
For some reason, when I hit a breakpoint on this code Unity enters into an endless loop or crashes. For this reason, I haven't been able to debug state within the call stack. But the good news is that these defensive checks prevents Unity from crashing now, which is great.
(0008516)
jsantos   
2023-05-27 21:31   
Even without the checks we shouldn't crash, right @Sergio?
(0008517)
sfernandez   
2023-05-29 10:40   
Crashing Unity should be considered a bug in our code, so we have to fix those crashes.
I will try to reproduce this issue in a more controlled scenario and see what is the best way to solve it.
(0008518)
sfernandez   
2023-05-29 13:33   
I created ticket 0002611 to investigate this issue (which is different from the one solved in this ticket).
Closing this one.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2610 [NoesisGUI] C++ SDK minor always 2023-05-26 15:47 2023-05-26 17:55
Reporter: anton.sodergren_pdx Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Namescope is of UserControl is used when resolving names outside of the UserControl's file
Description: When using a UserControl of one type inside of a UserControl of another type, and both of the root nodes are named the same (for example "Root), bindings using ElementName can be resolved incorrectly. Particularly this happens if one tries to set a property of the child element to a binding that uses ElementName, with the specified name being "Root" in this case. Instead of binding to a property of the parent control named "Root", it will bind to a property of the child control that's also named "Root".

This used to be how it worked in WPF too, but has since been patched by Microsoft.

See this forum post for details and a minimal example: https://www.noesisengine.com/forums/viewtopic.php?p=15661&sid=efc072b489689f942a23c84bc7c285ee#p15658
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2608 [NoesisGUI] Unity3D minor always 2023-05-24 06:03 2023-05-25 19:40
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Setting Stretch to Fill on Path w/ BackgroundEffectBehavior Causes Crash
Description: Create a path and set stretch mode to Fill. Assign a BackgroundEffectBehavior to this Path. If the stretch mode is Fill Noesis immediately crashes. If Fill is None, Noesis does not crash. XAML shown below with crash logs and core included.
Tags:
Steps To Reproduce: <Grid Grid.Row="1">
                                <Grid.LayoutTransform>
                                    <ScaleTransform ScaleX="2" ScaleY="2"/>
                                </Grid.LayoutTransform>
                                <Path x:Name="_BottomPanelBlur" Stretch="Fill"> <!-- CRASH -->
                                    <b:Interaction.Behaviors>
                                        <noesis:BackgroundEffectBehavior Source="{Binding ElementName=source}">
                                            <BlurEffect Radius="{StaticResource BottomBlurRadius}"/>
                                        </noesis:BackgroundEffectBehavior>
                                    </b:Interaction.Behaviors>
...

                                </Path>
Additional Information:
Attached Files: Crash_2023-05-24_035734551.zip (1,867,598 bytes) 2023-05-24 06:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1861&type=bug
Notes
(0008508)
stonstad   
2023-05-24 06:03   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2607 [NoesisGUI] Unreal minor always 2023-05-22 21:36 2023-05-23 12:24
Reporter: Brynn Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Noesis::Ptr types not supported as a Key value for TMap in Unreal 5.2
Description: Declaring a TMap in Unreal using a Noesis::Ptr as the key:
TMap<Ptr<UIElement>, FNoesisUIChild> Children;

No longer works in Unreal 5.2.

This is because Unreal have removed the following code from TypeHash.h in 5.2:
inline uint32 GetTypeHash( const void* A )
{
    return PointerHash(A);
}

inline uint32 GetTypeHash( void* A )
{
    return PointerHash(A);
}

So now when you compile you get the error:
C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\Core\Public\Containers\Map.h(117): error C2665: 'GetTypeHash': none of the 5 overloads could convert all the argument types

A temporary workaround for this is to include the old code from 5.1 as a free function.
Tags:
Steps To Reproduce: In Unreal 5.2, declare a TMap property like below and try to compile the solution:
TMap<Ptr<UIElement>, FNoesisUIChild> Children;
Additional Information:
Attached Files:
Notes
(0008502)
hcpizzi   
2023-05-23 12:24   
We've added the following function in NoesisSupport.h:

template<typename T>
inline uint32 GetTypeHash(const Noesis::Ptr<T>& Pointer)
{
    return PointerHash(Pointer.GetPtr());
}


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2593 [NoesisGUI] Unreal crash always 2023-05-11 10:59 2023-05-22 12:26
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash when previewing View instance in the Editor
Description: Callstack:

>	UnrealEditor-Engine.dll!UGameViewportClient::GetGameViewport() Line 412	C++
     UnrealEditor-NoesisRuntime.dll!UNoesisInstance::NativePaint() Line 1343	C++
     UnrealEditor-UMG.dll!SObjectWidget::OnPaint() Line 138	C++
     ...


Calling GetWorld()->GetGameViewport() returns a null pointer.
Tags:
Steps To Reproduce: 1. Import a xaml asset
2. Create a View and assign the xaml asset
3. Open the View editor
4. Click on the 'Preview' button
Additional Information:
Attached Files:
Notes
(0008472)
hcpizzi   
2023-05-11 12:03   
Was fixed with commit 12514


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2602 [NoesisGUI] C++ SDK minor always 2023-05-17 15:03 2023-05-18 11:48
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Improve error message when binding read-only property
Description: As described here

https://www.noesisengine.com/forums/viewtopic.php?t=2929

The error displayed when binding to a read-only property is not very clear, it should be something like

"A TwoWay or OneWayToSource binding cannot work on the read-only property 'AutoBootValue' of type 'NS.BindingContainer_Bool'
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2592 [NoesisGUI] Unreal crash always 2023-05-11 10:46 2023-05-11 12:14
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.2  
    Target Version: 3.2.2  
Platform: Any
Summary: Crash when using WorldUI component and plugin content is not present
Description: If NoesisGUI plugin content (WorldUI.xaml asset) is not copied to the project, any attempt to use the WorldUI component will crash the Unreal Editor.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1448 [NoesisGUI] Unity3D feature N/A 2019-04-08 09:51 2023-05-11 09:40
Reporter: shawn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version:  
Platform: Any
Summary: custom rendering in unity
Description: I posted a message on forums that hope you to expose the virtual function "OnRender(DrawingContext dc)" when i tried to write a custom image which can both supports Texture Atlas and 9-Slice Scaling.quate=https://www.noesisengine.com/forums/viewtopic.php?t=1641
I was asked to create a ticket here and you will include it in one of our next releases,so i applyed this.
I want to override some protected virtual funciton so that i can write some custom control in better way.
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005618)
jsantos   
2019-04-08 16:23   
Please, specify the list of virtual functions you need apart from OnRender. Thanks!
(0005636)
shawn   
2019-04-17 02:40   
oh,sorry. I was busy recently, so i didn't reply you in time.
All of those virtual functions are usefull i think, such as OnInitialized,OnMouseDown ect... Fortunately we can use relevant EventHandler instead! So just OnRender will be fine if you don't have much time.
Thank you very much!
(0008311)
ckfinite   
2023-02-24 19:31   
Hello, I'd like to inquire as to the status of this feature; it would be extremely useful for our project to reduce allocation overheads in a few locations for a custom control that we create very large numbers of. It appears that in the current version it may be possible to hook the event via reflection by hooking modifying the internal-flagged event OnRenderBase?
(0008314)
sfernandez   
2023-02-27 18:02   
This feature is available since 3.1 release (Jul'21).
You can override OnRender methods in your control to draw large numbers of shapes.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2512 [NoesisGUI] Unity3D crash always 2023-02-16 18:20 2023-05-11 09:39
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: Consistent ReloadXaml Crash
Description: Noesis appears to be executing events, i.e. OnButtonUnchecked during ReloadXaml().

Asset Pipeline Refresh (id=1c725f063e803cf40883ab381724b9ec): Total: 0.344 seconds - Initiated by RefreshV2(AllowForceSynchronousImport)

Uploading Crash Report
NullReferenceException: Object reference not set to an instance of an object
  at StellarConquest.Presentation.Unity.UI.AssetsScreen.Build (System.Boolean showFactionAssets, System.Boolean showPersonalAssets, System.Boolean showPlanets, System.Boolean showStations, System.Boolean showShips) [0x000b4] in C:\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\User Interface\Screens\Game\Static\Assets\AssetsScreen.cs:113
  at StellarConquest.Presentation.Unity.UI.AssetsScreen.OnButtonUnchecked (System.Object sender, Noesis.RoutedEventArgs e) [0x0000e] in C:\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\User Interface\Screens\Game\Static\Assets\AssetsScreen.cs:662
  at Noesis.RoutedEventArgs.InvokeHandler (System.Delegate handler, System.IntPtr sender, System.IntPtr args) [0x00011] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Proxies\RoutedEventArgs.cs:50
  at Noesis.EventManager.InvokeHandler (System.IntPtr routedEventPtr, System.Delegate handler, System.IntPtr sender, System.IntPtr args) [0x00026] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:578
  at Noesis.EventHandlerStore.RaiseRoutedEvent (System.IntPtr cPtrType, System.IntPtr cPtr, System.IntPtr routedEvent, System.IntPtr sender, System.IntPtr e) [0x00084] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:267
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
NoesisUnity:OnUnhandledException(Exception) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\NoesisUnity.cs:374)
Noesis.Error:UnhandledException(Exception) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Error.cs:18)
Noesis.EventHandlerStore:RaiseRoutedEvent(IntPtr, IntPtr, IntPtr, IntPtr, IntPtr) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Core\Events.cs:272)
Noesis.XamlProvider:Noesis_RaiseXamlChanged(HandleRef, String)
Noesis.XamlProvider:RaiseXamlChanged(Uri) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\API\Proxies\XamlProvider.cs:52)
NoesisXamlProvider:ReloadXaml(String) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Runtime\NoesisProviders.cs:70)
NoesisPostprocessor:ReloadXaml(String) (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Editor\NoesisPostprocessor.cs:75)
<>c__DisplayClass1_1:<OnPostprocessAllAssets>b__0() (at C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.7\Editor\NoesisPostprocessor.cs:41)
Tags:
Steps To Reproduce: Encl. crash logs and dump.
Additional Information:
Attached Files: Crash_2023-02-16_171135646.zip (1,614,216 bytes) 2023-02-16 18:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1764&type=bug
image.png (111,347 bytes) 2023-02-28 21:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1772&type=bug
UIStateMachine.xaml (3,243 bytes) 2023-03-01 15:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1773&type=bug
UIStateMachine.cs (16,782 bytes) 2023-03-01 15:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1774&type=bug
Crash_2023-03-14_161734595.zip (2,164,254 bytes) 2023-03-14 17:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1780&type=bug
Notes
(0008290)
stonstad   
2023-02-16 18:21   
I can confirm Preview Enabled is not checked.
(0008315)
stonstad   
2023-02-28 21:59   
All of these crashes (screenshot) are caused by Noesis. I can't edit a single line of XAML without a crash during XamlPostProcessor import. When crashes occur my Unity scene (.unity) state is corrupt after editor reload and I have additional steps I must go through to restore my work.

What is the status of this critical bug?
(0008318)
sfernandez   
2023-03-01 10:54   
I was investigating this issue and all the crash dumps you attached (including the ones in 0002513) point to the same 'Assets/User Interface/UIStateMachine.xaml'. Could you please attach that xaml?

The crash is related to the NameScope that is set in the root of the xaml, are you manually registering elements (using NameScope.RegisterName() or FrameworkElement.RegisterName())?
(0008319)
stonstad   
2023-03-01 15:06   
Hey Sergio. Yes, I am registering elements. UIStateMachine is the top level XAML element attached to NoesisView.

    <noesis:Xaml.Dependencies>
        <noesis:Dependency Source="/Assets/User Interface/Controls/Input Control/InputControl.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Controls/Transition Control/TransitionControl.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Controls/Radial Range Control/RadialRangeControl.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Screens/Login/LoginScreen.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Screens/Character Selection/CharacterSelectionScreen.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Screens/Character Creation/CharacterCreationScreen.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Screens/Game/GameScreen.xaml"/>
        <noesis:Dependency Source="/Assets/User Interface/Screens/Overlay Layer/OverlayLayer.xaml"/>
    </noesis:Xaml.Dependencies>
(0008337)
sfernandez   
2023-03-09 19:38   
I have prepared a debug library with some extra logging to help me find the root of the problem:
https://drive.google.com/file/d/1RBBqswKsQQap7Vd_72CfmIamdLtSED_w/view?usp=share_link

Could you please try with that and send me another crash dump + logs?
(0008345)
stonstad   
2023-03-14 16:04   
Yes. I'm downloading and installing now. Thank you.
(0008346)
stonstad   
2023-03-14 17:18   
(0008352)
stonstad   
2023-03-24 19:41   
Was this crash dump helpful?
(0008363)
sfernandez   
2023-03-27 19:36   
I'm very sorry for the late reply, we've been busy with GDC the past two weeks and couldn't take a look at this earlier.

The latest crash was not related to the original problem, just an assert in other part of the code.
So I think the best way to solve this is if I can get access to your project (or a reduced version of your project) to reproduce the issue myself, would that be possible?
This way I can make local changes and debug to iterate faster.
(0008420)
stonstad   
2023-04-12 23:19   
I'm not sure that I am ready to prepare a reproduction project at this time given the effort required to do this for my game. I can confirm that I am using the debug library you shared in https://www.noesisengine.com/bugs/view.php?id=2512#c8337. Is that the cause of the assert?
(0008422)
sfernandez   
2023-04-13 10:26   
Maybe you can just provide temporal access to your repository and indicate a branch I can test?

Yes, the latest crash dump is just an assert breakpoint, not related to the reload xaml crash. Having access to your project will help me identify the source of that assert that is for sure a different issue.
(0008430)
stonstad   
2023-04-13 17:41   
Likely related. See video + crash dump here: https://www.noesisengine.com/bugs/view.php?id=2530


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2530 [NoesisGUI] C# SDK crash random 2023-03-08 17:03 2023-05-11 09:39
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: Random Crashes
Description: =================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:BaseComponent_Release <0x000db>
      at Noesis.BaseComponent:Release <0x00082>
      at Noesis.Extend:ReleasePending <0x00212>
      at Noesis.Extend:Shutdown <0x00c82>
      at Noesis.Extend:OnDomainUnload <0x00082>
      at <Module>:invoke_void_object_EventArgs <0x002d4>
      at System.AppDomain:DoDomainUnload <0x00099>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Tags:
Steps To Reproduce: Crash happened after Begin MonoManager ReloadAssembly. New behavior with 3.1.7. This is client MBI.
Additional Information:
Attached Files: Crash_2023-03-08_160052780.zip (386,711 bytes) 2023-03-08 17:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1778&type=bug
Crash_2023-03-24_201530301.zip (392,031 bytes) 2023-03-24 21:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1786&type=bug
Crash_2023-03-24_231908538.zip (765,147 bytes) 2023-03-25 00:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1787&type=bug
Crash_2023-04-13_153702329.zip (795,710 bytes) 2023-04-13 17:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1810&type=bug
Notes
(0008353)
stonstad   
2023-03-24 19:41   
Any updates for this crash behavior?
(0008354)
stonstad   
2023-03-24 21:17   
More Crashes --

=================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.Extend:Noesis_LaunchPropertyChangedEvent <0x0010c>
      at Noesis.Extend:NotifyPropertyChanged <0x002c2>
      at QuestLogViewModel:OnPropertyChanged <0x00113>
      at QuestLogViewModel:set_SelectedQuest <0x00132>
      at <Module>:runtime_invoke_void__this___object <0x001a3>
      at <unknown> <0xffffffff>
      at System.Reflection.RuntimeMethodInfo:InternalInvoke <0x00151>
      at System.Reflection.RuntimeMethodInfo:Invoke <0x00522>
      at System.Reflection.RuntimePropertyInfo:SetValue <0x00393>
      at System.Reflection.PropertyInfo:SetValue <0x000a2>
      at <>c__DisplayClass2_0:<.ctor>b__1 <0x00083>
      at PropertyAccessorPropRW`1:Set <0x00091>
      at Noesis.Extend:SetPropertyValue <0x00123>
      at Noesis.Extend:SetPropertyValue_BaseComponent <0x0015a>
      at Noesis.Extend:SetPropertyValue_BaseComponent <0x0012a>
      at <unknown> <0xffffffff>
      at Noesis.NoesisGUI_PINVOKE:Selector_SetIsSelected <0x00111>
      at Noesis.Selector:SetIsSelected <0x001ba>
      at NoesisGUIExtensions.SelectAction:Invoke <0x00142>
      at NoesisApp.TriggerAction:CallInvoke <0x000f5>
      at NoesisApp.TriggerBase:InvokeActions <0x003d2>
      at NoesisApp.EventTriggerBase:OnEvent <0x0008a>
      at NoesisApp.EventTriggerBase:OnEventImpl <0x0008b>
      at Noesis.MouseEventArgs:InvokeHandler <0x001b3>
      at Noesis.EventManager:InvokeHandler <0x0020b>
      at Noesis.EventHandlerStore:RaiseRoutedEvent <0x0050a>
      at Noesis.EventHandlerStore:RaiseRoutedEvent <0x0012a>
      at <unknown> <0xffffffff>
      at Noesis.View:Noesis_View_MouseMove <0x0010c>
      at Noesis.View:MouseMove <0x000ea>
      at NoesisView:UpdateMouse <0x004c2>
      at NoesisView:UpdateInputs <0x000da>
      at NoesisView:UpdateInternal <0x00442>
      at NoesisView:LateUpdate <0x000da>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Received signal SIGSEGV
Obtained 86 stack frames
0x00007ff897718f60 (Noesis) DependencyProperty_GetUnsetValue
0x00007ff897719448 (Noesis) DependencyProperty_GetUnsetValue
0x00007ff897718841 (Noesis) DependencyProperty_GetUnsetValue
0x00007ff8976fb24d (Noesis) Noesis_GetPlatformID
0x00007ff8976fafa6 (Noesis) Noesis_GetPlatformID
0x00007ff8976fb940 (Noesis) Noesis_GetPlatformID
0x00007ff8977197e7 (Noesis) DependencyProperty_GetUnsetValue
0x00007ff89771a30a (Noesis) DependencyProperty_GetUnsetValue
0x00007ff89786e2d3 (Noesis) VisualStateChangedEventArgs_Control_get
0x00007ff8978f8a04 (Noesis) Noesis_LaunchPropertyChangedEvent
0x0000024bfa79158d (Mono JIT Code) (wrapper managed-to-native) Noesis.Extend:Noesis_LaunchPropertyChangedEvent (intptr,intptr,string)
0x0000024bfa791303 (Mono JIT Code) Noesis.Extend:NotifyPropertyChanged (object,System.ComponentModel.PropertyChangedEventArgs) (at ./Noesis 3.2.0/Runtime/API/Core/Extend.cs:6265)
0x0000024b3aead624 (Mono JIT Code) QuestLogViewModel:OnPropertyChanged (string) (at D:/Source/Noesis/UI Project/Assets/Samples/QuestLog/QuestLogViewModel.cs:69)
0x0000024b3aead8c3 (Mono JIT Code) QuestLogViewModel:set_SelectedQuest (QuestLog.Quest) (at D:/Source/Noesis/UI Project/Assets/Samples/QuestLog/QuestLogViewModel.cs:46)
0x0000024bfa790ee4 (Mono JIT Code) (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)
0x00007ff894720394 (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ff89465eb44 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3066)
0x00007ff894665bdf (mono-2.0-bdwgc) mono_runtime_try_invoke_array (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:5777)
0x00007ff89459cea0 (mono-2.0-bdwgc) ves_icall_InternalInvoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/icall.c:4041)
0x00007ff8945c1691 (mono-2.0-bdwgc) ves_icall_InternalInvoke_raw (at C:/build/output/Unity-Technologies/mono/mono/metadata/icall-def.h:692)
0x0000024b11a384c2 (Mono JIT Code) (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo:InternalInvoke (System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
0x0000024b11a35073 (Mono JIT Code) System.Reflection.RuntimeMethodInfo:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
0x0000024bc02c05e4 (Mono JIT Code) System.Reflection.RuntimePropertyInfo:SetValue (object,object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
0x0000024bc02c01f3 (Mono JIT Code) System.Reflection.PropertyInfo:SetValue (object,object,object[])
0x0000024bfa790d04 (Mono JIT Code) Noesis.Extend/PropertyAccessorPropRW`1/<>c__DisplayClass2_0<PropertyT_REF>:<.ctor>b__1 (object,PropertyT_REF) (at ./Noesis 3.2.0/Runtime/API/Core/ExtendProps.cs:106)
0x0000024bfa790c22 (Mono JIT Code) Noesis.Extend/PropertyAccessorPropRW`1<PropertyT_REF>:Set (object,PropertyT_REF) (at ./Noesis 3.2.0/Runtime/API/Core/ExtendProps.cs:116)
0x0000024bfa790af4 (Mono JIT Code) Noesis.Extend:SetPropertyValue<T_REF> (Noesis.Extend/PropertyAccessor,object,T_REF) (at ./Noesis 3.2.0/Runtime/API/Core/Extend.cs:5184)
0x0000024bfa79086b (Mono JIT Code) Noesis.Extend:SetPropertyValue_BaseComponent (intptr,int,intptr,intptr,intptr) (at ./Noesis 3.2.0/Runtime/API/Core/Extend.cs:5641)
0x0000024bc00330cb (Mono JIT Code) (wrapper native-to-managed) Noesis.Extend:SetPropertyValue_BaseComponent (intptr,int,intptr,intptr,intptr)
0x00007ff8979554e7 (Noesis) Noesis_RegisterLogCallback
0x00007ff89771be5a (Noesis) BindingExpression_UpdateSource
0x00007ff8977181f3 (Noesis) DependencyProperty_GetUnsetValue
0x00007ff8976fb686 (Noesis) Noesis_GetPlatformID
0x00007ff897779379 (Noesis) Boxed_Color_GetStaticType
0x00007ff8978a0099 (Noesis) CanExecuteRoutedEventArgs_GetCommandHelper
0x00007ff8977d30d9 (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ff8977d39ff (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ff8977d393d (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ff8976fbe26 (Noesis) KeyEventArgs_IsToggled_get
0x00007ff8976fb89f (Noesis) Noesis_GetPlatformID
0x00007ff89770825e (Noesis) BaseComponent_GetStaticType
0x00007ff897707f8b (Noesis) BaseComponent_GetStaticType
0x0000024bfa76ff12 (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:Selector_SetIsSelected (System.Runtime.InteropServices.HandleRef,bool)
0x0000024bfa78fdcb (Mono JIT Code) Noesis.Selector:SetIsSelected (Noesis.DependencyObject,bool) (at ./Noesis 3.2.0/Runtime/API/Proxies/Selector.cs:56)
0x0000024bfa78fb33 (Mono JIT Code) NoesisGUIExtensions.SelectAction:Invoke (object) (at ./Noesis 3.2.0/Runtime/API/Interactivity/SelectAction.cs:25)
0x0000024bc02a9796 (Mono JIT Code) NoesisApp.TriggerAction:CallInvoke (object) (at ./Noesis 3.2.0/Runtime/API/Interactivity/TriggerAction.Interactivity.cs:44)
0x0000024bc02a94a3 (Mono JIT Code) NoesisApp.TriggerBase:InvokeActions (object) (at ./Noesis 3.2.0/Runtime/API/Interactivity/TriggerBase.Interactivity.cs:82)
0x0000024bc02a904b (Mono JIT Code) NoesisApp.EventTriggerBase:OnEvent (object) (at ./Noesis 3.2.0/Runtime/API/Interactivity/EventTriggerBase.cs:94)
0x0000024bc02a8f6c (Mono JIT Code) NoesisApp.EventTriggerBase:OnEventImpl (object,Noesis.EventArgs) (at ./Noesis 3.2.0/Runtime/API/Interactivity/EventTriggerBase.cs:205)
0x0000024bfa78f574 (Mono JIT Code) Noesis.MouseEventArgs:InvokeHandler (System.Delegate,intptr,intptr) (at ./Noesis 3.2.0/Runtime/API/Proxies/MouseEventArgs.cs:50)
0x0000024bc02a80ac (Mono JIT Code) Noesis.EventManager:InvokeHandler (intptr,System.Delegate,intptr,intptr) (at ./Noesis 3.2.0/Runtime/API/Core/Events.cs:578)
0x0000024bc02a7ccb (Mono JIT Code) Noesis.EventHandlerStore:RaiseRoutedEvent (intptr,intptr,intptr,intptr,intptr) (at ./Noesis 3.2.0/Runtime/API/Core/Events.cs:267)
0x0000024bc024963b (Mono JIT Code) (wrapper native-to-managed) Noesis.EventHandlerStore:RaiseRoutedEvent (intptr,intptr,intptr,intptr,intptr)
0x00007ff8978e7c1f (Noesis) TraversalRequest_FocusNavigationDirection_get
0x00007ff897866da8 (Noesis) VisualStateChangedEventArgs_Control_get
0x00007ff8977dcddd (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ff8977dba22 (Noesis) ItemsChangedEventArgs_ItemCount_get
0x00007ff89786e684 (Noesis) VisualStateChangedEventArgs_Control_get
0x0000024bc3c3a38d (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_MouseMove (System.Runtime.InteropServices.HandleRef,int,int)
0x0000024bc3c3a1eb (Mono JIT Code) Noesis.View:MouseMove (int,int) (at ./Noesis 3.2.0/Runtime/API/Core/View.cs:182)
0x0000024bc3c387d3 (Mono JIT Code) NoesisView:UpdateMouse () (at ./Noesis 3.2.0/Runtime/NoesisView.cs:1092)
0x0000024bc3c380cb (Mono JIT Code) NoesisView:UpdateInputs (single) (at ./Noesis 3.2.0/Runtime/NoesisView.cs:1300)
0x0000024bc3c291c3 (Mono JIT Code) NoesisView:UpdateInternal () (at ./Noesis 3.2.0/Runtime/NoesisView.cs:1449)
0x0000024bc3c28cdb (Mono JIT Code) NoesisView:LateUpdate () (at ./Noesis 3.2.0/Runtime/NoesisView.cs:1356)
0x0000024bf7416cc8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ff894720394 (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ff89465eb44 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3066)
0x00007ff89465ecdc (mono-2.0-bdwgc) mono_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3113)
0x00007ff683a4c4f4 (Unity) scripting_method_invoke
0x00007ff683a2ce34 (Unity) ScriptingInvocation::Invoke
0x00007ff683a147a4 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff683a148ca (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff6834b5bdb (Unity) BaseBehaviourManager::CommonUpdate<LateBehaviourManager>
0x00007ff6834bd25a (Unity) LateBehaviourManager::Update
0x00007ff6836e377d (Unity) `InitPlayerLoopCallbacks'::`2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward
0x00007ff6836ca47a (Unity) ExecutePlayerLoop
0x00007ff6836ca603 (Unity) ExecutePlayerLoop
0x00007ff6836d0965 (Unity) PlayerLoop
0x00007ff68466285f (Unity) PlayerLoopController::InternalUpdateScene
0x00007ff68466f59d (Unity) PlayerLoopController::UpdateSceneIfNeededFromMainLoop
0x00007ff68466d8a1 (Unity) Application::TickTimer
0x00007ff684af939a (Unity) MainMessageLoop
0x00007ff684afe140 (Unity) WinMain
0x00007ff685ee0ffe (Unity) __scrt_common_main_seh
0x00007ff9eae926bd (KERNEL32) BaseThreadInitThunk
0x00007ff9ec58a9f8 (ntdll) RtlUserThreadStart
(0008355)
stonstad   
2023-03-24 21:17   
I'm trying to work with artists to show them how to author in XAML with Noesis. It is embarrassing to have it repeatedly crash in Unity every time they make a change. This is within a vanilla Unity 3D project with the 3.1.7 plugin.
(0008356)
stonstad   
2023-03-24 21:20   
We made a small one line change in the quest sample and the crash above happened. Unity 2022.2.12f1.
(0008358)
stonstad   
2023-03-25 00:23   
(0008364)
sfernandez   
2023-03-27 20:10   
Each crash dump seems to be a different issue.

The first one (from 3.1.7 version) happens during assembly reload.
The second one (from 3.2.0rc1 version) happens raising a PropertyChanged in a view model.
The last one (from a 3.1.8.12257 version I'm not aware of) seems similar to issue 0002512.

Let's investigate each one separately, the last one in the mentioned ticket.

Regarding the second one, it seems happened with our QuestLog sample, right? is there any steps to reproduce it?
(0008421)
stonstad   
2023-04-12 23:21   
The unknown version is likely the debug library provided here: https://www.noesisengine.com/bugs/view.php?id=2512#c8337

The 3.2 version was testing I did with a separate project -- but basically everything crashes for me whenever I edit a single line.

What is your Unity setting for: General -> Script Changes While Playing ?
(0008423)
sfernandez   
2023-04-13 10:41   
>> What is your Unity setting for: General -> Script Changes While Playing ?
We always work with "Recompile And Continue Playing".

>> The 3.2 version was testing I did with a separate project -- but basically everything crashes for me whenever I edit a single line.
Are you able to crash editing xaml/scripts in a separate project with just our plugin and samples?
From the crash you sent with Noesis 3.2, it looks like you were playing with the QuestLog sample, it happened just selecting a different quest from the list. Do you remember what you did to make it crash?
(0008427)
stonstad   
2023-04-13 17:21   
> From the crash you sent with Noesis 3.2, it looks like you were playing with the QuestLog sample, it happened just selecting a different quest from the list. Do you remember what you did to make it crash?
Consistently, the issue is always editing a line of XAML. It doesn't matter what the line is -- seriously. It doesn't matter.

> We always work with "Recompile And Continue Playing".
OK, I always work with Recompile After Finished Playing. That setting is common to both Stellar Conquest and MBI. I have to do this because, like most projects in Unity, I do not support recompilation during playback.
(0008428)
stonstad   
2023-04-13 17:39   
https://tonstad.blob.core.windows.net/media/noesis.mp4
(0008429)
stonstad   
2023-04-13 17:40   
(0008431)
stonstad   
2023-04-13 17:42   
See above video w/ crash dump. Clearly, this is an issue with Noesis on domain reload. Second, note that both of my projects use different app domain reload settings compared to what you are testing with. Lastly, the stack trace and location changes -- which again points to this not being a XAML change issue, but systemic with Noesis app domain reloads.
(0008433)
stonstad   
2023-04-13 19:59   
I upgraded from Noesis 3.1.8 to 3.2. Issue no longer manifests!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2513 [NoesisGUI] C# SDK crash always 2023-02-16 18:28 2023-05-11 09:38
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: XamlReload Noesis_RaiseTextureChanged Event Crashes
Description: More crashes.

Asset Pipeline Refresh (id=6f5c79f7adcc76c4599fef2db3ef5792): Total: 0.208 seconds - Initiated by RefreshV2(AllowForceSynchronousImport)
Received signal SIGSEGV
Obtained 28 stack frames
0x00007ffe9db0b3de (Noesis) MultiBindingExpression_UpdateSource
0x00007ffe9dbac9a7 (Noesis) VirtualizationCacheLength_GetStaticType
0x00007ffe9dbbf33c (Noesis) FreeString
0x00007ffe9dbbf29f (Noesis) FreeString
0x00007ffe9db81867 (Noesis) Noesis_RenderDevice_SetRenderTarget
0x00007ffe9db824e7 (Noesis) Noesis_RenderDevice_SetRenderTarget
0x00007ffe9dc1e014 (Noesis) Noesis_RaiseTextureChanged
0x000002bc9822ceac (Mono JIT Code) (wrapper managed-to-native) Noesis.XamlProvider:Noesis_RaiseXamlChanged (System.Runtime.InteropServices.HandleRef,string)
0x000002bc9822ccfb (Mono JIT Code) Noesis.XamlProvider:RaiseXamlChanged (System.Uri) (at C:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.7/Runtime/API/Proxies/XamlProvider.cs:52)
0x000002bc9822cae3 (Mono JIT Code) NoesisXamlProvider:ReloadXaml (string) (at C:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.7/Runtime/NoesisProviders.cs:70)
0x000002bc9822c763 (Mono JIT Code) NoesisPostprocessor:ReloadXaml (string) (at C:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.7/Editor/NoesisPostprocessor.cs:75)
0x000002bc9822bacb (Mono JIT Code) NoesisPostprocessor/<>c__DisplayClass1_1:<OnPostprocessAllAssets>b__0 () (at C:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.7/Editor/NoesisPostprocessor.cs:41)
Tags:
Steps To Reproduce: Encl. editor log and crash dump.
Additional Information:
Attached Files: Crash_2023-02-16_172514488.zip (790,503 bytes) 2023-02-16 18:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1765&type=bug
Crash_2023-02-16_173443434.zip (837,017 bytes) 2023-02-16 18:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1766&type=bug
Notes
(0008291)
stonstad   
2023-02-16 18:36   
(0008316)
stonstad   
2023-02-28 21:59   
(Last edited: 2023-02-28 22:00)
Related to https://www.noesisengine.com/bugs/view.php?id=2512


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2509 [NoesisGUI] Unity3D minor always 2023-02-09 16:41 2023-05-11 09:38
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2  
Platform: Any
Summary: [NOESIS/I] 'Image.png' loaded
Description: 3.1.7. I'm seeing log statements for loaded images. Is this a default setting I need to change in 3.1.7? My log level is Warning for General and Binding.

[NOESIS/I] 'Assets/User Interface/Images/buttons/standardbutton_up_1.png' loaded
[NOESIS/I] 'Assets/User Interface/Images/login/website_x2.png' loaded
[NOESIS/I] 'Assets/User Interface/Images/login/twitter_x2.png' loaded

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008269)
jsantos   
2023-02-09 17:07   
Unfortunately, in 3.1.6 we added support for logging messages from the render thread, but the general filter is not being applied.

Thanks for reporting!
(0008292)
stonstad   
2023-02-16 18:38   
Is there an update planned to remove this console spam?
(0008293)
jsantos   
2023-02-17 10:41   
This is fixed in 3.2 branch. We have plans to release B3 in the upcoming days.

If you need a preview for 3.1.8 including this, please, let me know.
(0008296)
stonstad   
2023-02-19 00:17   
Yes, A version of 3.1.8 with this fix would be greatly appreciated. Thank you.
(0008309)
stonstad   
2023-02-24 15:11   
Jsantos, I am just circling back on my request for a 3.1.8 version that has logging fixed. I attempted to modify the logging via the package but it didn't work for me. I am getting hundreds of these messages during every debugging session. I would greatly appreciate a fix.
(0008312)
jsantos   
2023-02-27 12:25   
Here you go

https://drive.google.com/file/d/1fZz41Pq7zQfqMX5xZg4B-05fqbOA4_zP/view?usp=share_link


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2561 [NoesisGUI] VSCode feature always 2023-04-11 14:19 2023-05-10 11:54
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Support for snippets
Description: The standard support for snippets in VsCode is not good enough because it polutes the suggestions of properties.

We need to find a way to suggest snippets only when we are outside a node.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: xaml.json (7,457 bytes) 2023-04-11 14:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1807&type=bug
Notes
(0008413)
jsantos   
2023-04-11 14:19   
(Last edited: 2023-04-11 14:20)
Attaching the snippets (still work in progress) I have been playing with these days.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2567 [NoesisGUI] Unity3D major always 2023-04-13 12:41 2023-05-09 12:43
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: WorldSpace UI inverted when using the fixed pipeline
Description: When using the fixed pipeline (this is not happening with URP) and the camera doesn't containt postprocessing effects, WorldSpaceUI is inverted.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008424)
jsantos   
2023-04-13 12:45   
Patch for fixing this issue:

Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 12431)
+++ NoesisView.cs	(working copy)
@@ -1579,7 +1579,11 @@
         // Note that camera.activeTexture should only be checked from OnPostRender
         if (!IsGL())
         {
+          #if ENABLE_VR && ENABLE_XR_MODULE
+            return _camera.activeTexture != null && !_camera.activeTexture.name.StartsWith("XR ");
+          #else
             return _camera.activeTexture != null;
+          #endif
         }
 
         return false;



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2588 [NoesisGUI] Unity3D minor always 2023-05-04 18:15 2023-05-05 13:33
Reporter: Josh Campbell Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: No way disable key events in the view
Description: We would like to be able to disable the space bar automatically clicking the last selected element. If you could expose an option to disable these default events that would resolve the issue.
Tags:
Steps To Reproduce: Select a button click it.
Press Space Bar - it will click the same button.
Additional Information:
Attached Files:
Notes
(0008470)
sfernandez   
2023-05-05 13:33   
One question to better understand the problem, do you want to disable the effects of pressing space bar for any type of focused control (clicking for Buttons, toggle for CheckBoxes, selection for ComboBoxes....), not just button clicks, right?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2587 [NoesisGUI] Unreal minor always 2023-05-03 17:14 2023-05-04 11:33
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Expose a way to disable Inspector
Description: We have a lot of network traffic from Noesis when running game engines and we'd like to know how to disable it, or keep it only for local machine.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008469)
jsantos   
2023-05-04 11:33   
It seems RemoteServicesServer::Tick() is broadcasting and that is a leftover of a previous implementation.

We need to investigate and see if that can be changed to avoid sending so many packages when the Inspector is launched.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2575 [NoesisGUI] Unreal feature always 2023-04-20 13:26 2023-05-03 18:05
Reporter: vmaurer Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version:  
Platform: Any
Summary: Support for UE Delegates / Expose Delegates to DataEventTriggers
Description: Currently it's not possible to hook up Unreal Engine Delegates (such as TBaseDynamicMulticastDelegate<>) with DataEventTriggers because they are not supported by the Noesis Type Class wrapper. When a DataEventTrigger is registered, it checks for a matching definition in the TypeClass::mEvents array, but it won't find any.

Tags: C++, Unreal
Steps To Reproduce: Please see the forum topic for a full description / steps to reproduce: https://www.noesisengine.com/forums/viewtopic.php?t=2918
Additional Information:
Attached Files: Events.patch (6,615 bytes) 2023-05-03 18:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1832&type=bug
Notes
(0008467)
hcpizzi   
2023-05-03 18:02   
You can find a patch attached that enables this feature.

You can use it with natively declared dynamic multicast delegates (declared using the DECLARE_DYNAMIC_MULTICAST_DELEGATE family of macros), or with Blueprint declared Event Dispatchers.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2581 [NoesisGUI] C# SDK crash always 2023-04-24 12:03 2023-05-02 13:33
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.1  
Platform: Any
Summary: RenderContextMTL fails to initialize
Description: A NullReferenceException occurs when trying to add a sub-layer to NSView in RenderContextMTL.Init.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2558 [NoesisGUI] VSCode minor always 2023-04-04 13:11 2023-05-02 13:32
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: not fixable  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.1  
Platform: Any
Summary: The color picker decorator does not show when the value is empty
Description: For example, in this snippet, the first GradientStop will not have a color picker, and the second will:

  <Ellipse Width="300" Height="300" Margin="5" Stroke="Coral" >
    <Ellipse.Fill>
       <RadialGradientBrush>
         <GradientStop Color="" Offset="0"/>
         <GradientStop Color="Blue" Offset="1"/>
       </RadialGradientBrush>
    </Ellipse.Fill>
  </Ellipse>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008464)
maherne   
2023-05-02 13:32   
VSCode does not support showing the color picker for empty values.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2584 [NoesisGUI] C# SDK minor have not tried 2023-04-27 16:58 2023-04-28 14:38
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version:  
Platform: Any
Summary: C# Project Template Extension for Visual Studio 2022
Description: Create a C# template extension for Visual Studio 2022
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2583 [NoesisGUI] Unity3D major always 2023-04-27 14:54 2023-04-27 17:26
Reporter: kristoffer Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: IView.SetManipulationDistanceThreshold(...) not exposed in Unity
Description: In order to set the tap to drag threshold this method should be called but is not available in Unity.

Background info:
https://www.noesisengine.com/forums/viewtopic.php?t=2925
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2330 [NoesisGUI] C++ SDK feature always 2022-04-14 11:12 2023-04-26 14:11
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Support VisualBrush as an OpacityMask
Description: Use cases:

- Animating a vector mask (bezier path, path, shape etc.) to png sequences, images or other vectors. When you apply a mask at the moment, it disappears from view which means we then can't animate it.
- Masking and displacing localised text with vector shapes
- Feathered masking and animating such masks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NineSliceMask.hlsli (920 bytes) 2023-04-26 14:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1827&type=bug
NineSliceMask_Opacity.hlsl (56 bytes) 2023-04-26 14:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1828&type=bug
NineSliceMaskBrushShader.cpp (4,044 bytes) 2023-04-26 14:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1829&type=bug
NineSliceMaskBrushShader.h (2,155 bytes) 2023-04-26 14:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1830&type=bug
Notes
(0007912)
jsantos   
2022-04-25 17:37   
(Last edited: 2022-04-25 17:39)
This is also useful for 9-slice opacity masks. Right now, we are using a custom shader for this:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
  <Image x:Name="img" Source="Images/map.png" Margin="100">
    <Image.OpacityMask>
      <ImageBrush ImageSource="Images/border-mask.png">
        <ImageBrush.Shader>
          <noesis:NineSliceMaskBrushShader Slices="20,30,40,54" Width="{Binding ActualWidth, ElementName=img}" Height="{Binding ActualHeight, ElementName=img}"/>
        </ImageBrush.Shader>
      </ImageBrush>
    </Image.OpacityMask>
  </Image>
</Grid>

Note that right now, using OpacityMask is always using an offscreen phase, but in this is case it shouldn't be necessary because is being applied to an image.
(0008031)
sfernandez   
2022-07-26 10:08   
This issue is going to be implemented for the next major version coming in a few months.
I'm updating the target version to correctly reflect that.
(0008462)
jsantos   
2023-04-26 14:11   
Attaching the custom shader we were using for this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2474 [NoesisGUI] C# SDK major always 2022-12-06 11:23 2023-04-24 17:45
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.1.7  
Platform: Windows
Summary: KeyboardNavigation parameters are ignored in StackPanel and Dockpanel
Description: When I have a stackpanel with KeyboardNavigation.DirectionalNavigation="Contained" keyboard focus still escapes outside the stackpanel contents (even though it doesn't happen in WPF). Similar things happen to TabNavigation.
Tags:
Steps To Reproduce: I've modified StartMenu.xaml in 3DMenu sample, but you should be able to reproduce this by creating a stackpanel with keyboard navigation and another control outside the staxckpanel.

<Grid x:Name="MenuOptions" Grid.Row="1" Width="640" Margin="0,30,0,0" HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5"
                 VerticalAlignment="Top" Height="300">
                    <Grid.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Grid.RenderTransform>
                    <StackPanel KeyboardNavigation.DirectionalNavigation="Contained" KeyboardNavigation.TabNavigation="Contained">
                        <Rectangle Height="2" Margin="0,0,0,2" Fill="{StaticResource HorizontalLineBg}"/>
                        <ToggleButton x:Name="Casual" Style="{StaticResource MenuButtonStyle}" Content="CASUAL" Command="{Binding StartCasual}"/>
                        <ToggleButton x:Name="Normal" Style="{StaticResource MenuButtonStyle}" Content="NORMAL" Command="{Binding StartNormal}"/>
                        <ToggleButton x:Name="Expert" Style="{StaticResource MenuButtonStyle}" Content="EXPERT" Command="{Binding StartExpert}"/>

                    </StackPanel>
                    <ToggleButton VerticalAlignment="Bottom" Style="{StaticResource MenuButtonStyle}" Content="reee" Command="{Binding StartCasual}" Height="48"/>

                </Grid>
Additional Information:
Attached Files: MainWindow.xaml (4,771 bytes) 2023-04-12 12:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1808&type=bug
MainWindow.xaml.cs (1,249 bytes) 2023-04-12 12:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1809&type=bug
Notes
(0008409)
sumel007   
2023-04-06 15:05   
Is there any more news on this issue? It seems that even with popups (at least in 3.2) when we have a popup with KeyboardNavigation.DirectionalNavigation="Contained" and KeyboardNavigation.TabNavigation="Contained" focus can escape behind the popup, making keyboard focus management very cumbersome.
(0008410)
sfernandez   
2023-04-11 11:55   
Hi, I tried to reproduce this problem with 3.1.6, 3.1.7, and 3.2.0 without success.
When I set the DirectionalNavigation and TabNavigation to Contained in the StackPanel in the Menu3D sample, and the focus is inside that StackPanel, I cannot move the focus out of the panel just by using the arrows/gamepad or the tab key.
I even created the following xamltoy, and it works as expected: https://www.noesisengine.com/xamltoy/75228d301d0d9f9753efba5984a9ff1a

Regarding the Popup, by default it doesn't override the directional or tab navigation, so the focus can go outside the Popup. But you can just set the navigation mode in the popup root to keep it inside:

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <Grid x:Name="MenuOptions" Grid.Row="1" Width="640" Margin="0,30,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="300" Background="Pink">
    <Popup IsOpen="True" Placement="Center">
      <Grid Width="300" Height="200" Background="LightBlue" 
                 KeyboardNavigation.DirectionalNavigation="Contained" KeyboardNavigation.TabNavigation="Contained">
        <StackPanel>
            <Rectangle Height="2" Margin="0,0,0,2" Fill="Silver"/>
            <ToggleButton x:Name="Casual" Content="CASUAL" Command="{Binding StartCasual}"/>
            <ToggleButton x:Name="Normal" Content="NORMAL" Command="{Binding StartNormal}"/>
            <ToggleButton x:Name="Expert" Content="EXPERT" Command="{Binding StartExpert}"/>
        </StackPanel>
        <ToggleButton VerticalAlignment="Bottom" Content="Inside Popup" Command="{Binding StartCasual}" Height="48"/>
      </Grid>
    </Popup>
    <ToggleButton VerticalAlignment="Bottom" Content="Outside Popup" Height="48"/>
  </Grid>
</Grid>
(0008415)
sumel007   
2023-04-12 12:03   
(Last edited: 2023-04-12 12:03)
I've retested the sample I've provided and it seems that it does indeed work correctly. Sorry for that, I am quite confused as to how that happened. The problem remains within our project, But it seems to only happen to TabNavigation.

 I tried to recreate the situation from our project without having to provide all the files, so the xaml is quite chaotic. I am attaching it to this note (I just removed the contents of MainWindow.xaml from Menu3D and tried to set up a similar situation to our project). Now when the middle portion (which imitates a popup, so it's very improtant there's absolutely no way to focus anything below that) with left/right buttons gets focus we cannot escape it via arrow keys (which is correct, since that DockPanel has KeyboardNavigation.DirectionalNavigation="Contained"). However we can escape outside that dockpanel via Tab key once the focus is on the "RightButton", even though we've set KeyboardNavigation.TabNavigation="Contained". Now it seems to behave this way in both WPF and Noesis with one exception - WPF immediately switches focus to the button to the right ("Settings") whereas Noesis first loses focus completely and then the next keypress focuses on the Settings button. So I assume this is a bug on Noesis part. But WPF behaviour doesn't fix the issue for me either.

The behaviour I would want however is different from both WPF and Noesis - that is I want TabNavigation to remain within the popup. If I set TabNavigation="None" that still doesn't happen - it only changes so that the buttons inside will not get navigated to via tab navigation, but once they have focus it can still escape via tab.
For now I guess I could just handle PreviewKeyDown and mark it as handled, so the tab navigation never happens, but I'm wondering if there's a better way. Especially since in your example it seems to behave as expected, whereas in mine even with TabNavigation=Contained it isn't contained to that panel.
(0008416)
sumel007   
2023-04-12 12:04   
(0008453)
sfernandez   
2023-04-24 13:43   
(Last edited: 2023-04-24 17:44)
I've been anaylizing how WPF behaves with TabNavigation="Contained" and for me it seems bugged, because it is not moving the focus as described in the documentation:

    public enum KeyboardNavigationMode
    {
        /// <summary>
        /// The container does not handle the keyboard navigation;
        /// each element receives keyboard focus as long as it is a key navigation stop.
        /// </summary>
        Continue,
 
        /// <summary>
        /// The container and all of its child elements as a whole only receive focus once.
        /// Either the first tree child or the ActiveElement receive focus
        /// </summary>
        Once,
 
        /// <summary>
        /// Depending on the direction of the navigation,
        /// the focus returns to the first or the last item when the end or
        /// the beginning of the container is reached, respectively.
        /// </summary>
        Cycle,
 
        /// <summary>
        /// No keyboard navigation is allowed inside this container
        /// </summary>
        None,
 
        /// <summary>
        /// Like cycle but does not move past the beginning or end of the container.
        /// </summary>
        Contained,
 
        /// <summary>
        /// TabIndexes are considered on local subtree only inside this container
        /// </summary>
        Local
    }


However, with DirectionalNavigation="Contained" the behavior seems correct, when you reach the end of the container it stops the focus there, and cannot be moved outside.

We decided to fix the implementation in TabNavigation to behave like DirectionalNavigation, so focus won't move outside the container.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2576 [NoesisGUI] Unreal minor always 2023-04-21 17:45 2023-04-21 18:06
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Texture mipmaps ignored when rendering images
Description: The Unreal renderer is ignoring the mipmaps when they are available in the texture (depending on "Mip Gen Settings" in texture inspector).
It is using always level 0, which produces lots of artifacts when image is scaled to small sizes.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008443)
sfernandez   
2023-04-21 18:00   
This patch is required to properly use texture mipmaps:

Index: NoesisRenderDevice.cpp
===================================================================
--- NoesisRenderDevice.cpp	(revision 12447)
+++ NoesisRenderDevice.cpp	(working copy)
@@ -388,7 +388,7 @@
 template<ESamplerFilter Filter = SF_Point,
     ESamplerAddressMode AddressU = AM_Clamp,
     ESamplerAddressMode AddressV = AM_Clamp,
-	int MaxMipLevel = 0>
+	int MaxMipLevel = 1>
 class TNoesisStaticSamplerState : public TStaticStateRHI<TNoesisStaticSamplerState<Filter, AddressU, AddressV, MaxMipLevel>, FSamplerStateRHIRef, FRHISamplerState*>
 {
 public:


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2242 [NoesisGUI] C++ SDK major sometimes 2022-01-18 16:40 2023-04-20 19:39
Reporter: clysmic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Windows
Summary: KeyboardNavigation failing to focus "off-screen" controls inside a ScrollViewer
Description: KeyboardNavigation failing to focus "off-screen" controls inside a ScrollViewer, and is instead skipping ahead and focusing on the next visible control in the focus order.

See more detailed explanation here: https://www.noesisengine.com/forums/viewtopic.php?t=2521
Tags: Focus, keyboard, scroll
Steps To Reproduce: It should repro with a UI structure like below (from the linked forum post)

<Grid x:Name="MainGrid" KeyboardNavigation.DirectionalNavigation="Cycle">
    <ScrollViewer CanContentScroll="True" Focusable="False">
        <StackPanel>
            <!-- 10 focusable controls defined here. (Sliders, toggles, etc.). Lets call them C0, C1, C2,... through C9 -->
        </StackPanel>
    </ScrollViewer>
    <Border
        <Button x:Name="OkButton"/>
    </Border>
</Grid>
Additional Information:
Attached Files:
Notes
(0008441)
sumel007   
2023-04-19 07:56   
Is there any news on this issue? It is blocking our development and there seem to be no sensible work arounds available.
(0008442)
sfernandez   
2023-04-19 17:14   
We are working on this for the next 3.2.1 release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2574 [NoesisGUI] Unity3D minor always 2023-04-19 12:26 2023-04-19 16:37
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: ApplicationCommands can be referenced only by name
Description: https://www.noesisengine.com/forums/viewtopic.php?t=2915

It seems that WPF supports omiting the class for Application commands, so you can write things like:
<ContextMenu>
  <MenuItem Command="Cut"/>
  <MenuItem Command="Copy"/>
  <MenuItem Command="Paste"/>
</ContextMenu>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2529 [NoesisGUI] Unity3D block always 2023-03-08 16:48 2023-04-14 19:54
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: After Noesis 3.1.7 Upgrade, Noesis Fails to Find XAML files
Description: This is a reoccurring problem I see with Noesis. Currently, I'm impacted with MBI after upgrading to 3.1.7. The file pathing is correct -- it worked before but it no longer works after an upgrade.

[NOESIS/E] (41): Xaml not found 'Assets/User Interface/Controls/DimensioningControl.xaml'


Things I have tried include:
* Reimporting
* Deleting existing .meta and reimporting.
* Restarting Unity
* Check for missing forward refrences in top-level XAML
* Curse!

Tags:
Steps To Reproduce: [NOESIS/E] (41): Xaml not found 'Assets/User Interface/Controls/DimensioningControl.xaml'
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/NoesisUnity.cs:357)
Noesis.GUI:LoadComponent (object,string) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/API/Core/NoesisGUI.cs:326)
MBI.CustomerSelect.Unity.UI.DimensioningControl:InitializeComponent () (at Assets/User Interface/Controls/DimensioningControl.cs:44)
MBI.CustomerSelect.Unity.UI.DimensioningControl:.ctor () (at Assets/User Interface/Controls/DimensioningControl.cs:28)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/API/Core/Extend.cs:5483)
Noesis.GUI:LoadComponent (object,string) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/API/Core/NoesisGUI.cs:326)
MBI.CustomerSelect.Unity.UI.MainControl:InitializeComponent () (at Assets/User Interface/MainControl.cs:101)
MBI.CustomerSelect.Unity.UI.MainControl:.ctor () (at Assets/User Interface/MainControl.cs:94)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/API/Core/Extend.cs:5483)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/API/Core/NoesisGUI.cs:274)
NoesisXaml:Load () (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/NoesisXaml.cs:17)
NoesisView:LoadXaml (bool) (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/NoesisView.cs:489)
NoesisView:OnEnable () (at C:/Source/MBI.CustomerSelect.Unity/MBI.customerSelect.Unity.Utilities/Noesis/Noesis 3.1.7/Runtime/NoesisView.cs:623)
MBI.CustomerSelect.Unity.Assets.StartScript:Awake () (at Assets/Scripts/Global/StartScript.cs:124)
Additional Information:
Attached Files: image.png (105,522 bytes) 2023-03-08 16:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1777&type=bug
image-2.png (129,493 bytes) 2023-03-27 16:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1788&type=bug
Notes
(0008329)
stonstad   
2023-03-08 16:50   
This was fixed by 1) restarting Unity, 2) reimporting each folder individually BEFORE clicking play. This is quite annoying! :)
(0008330)
stonstad   
2023-03-08 16:51   
(Last edited: 2023-03-08 16:51)
Nevermind -- error behavior returned after subsequent play.
(0008331)
stonstad   
2023-03-08 16:52   
(0008332)
stonstad   
2023-03-08 16:55   
Deleting all .asset files, reimporting, restarting through Noesis core dumps/crashes, and it might be working again. Not great.
(0008334)
jsantos   
2023-03-08 22:31   
(Last edited: 2023-03-08 22:34)
Is "DimensioningControl.xaml" listed as a dependency in other XAML?

We can only load XAML that are loaded by the View itself or any of its dependencies.

Deleting all .asset files

Is this coming from a very old version of Noesis? We are no longer using .assets files at all. So removing them shouldn't change anything at all.
(0008335)
stonstad   
2023-03-08 23:58   
Yes, DimensioningControl.xaml is forward referenced in the top-level XAML file.

        <noesis:Dependency Source="/Assets/User Interface/Controls/DimensioningControl.xaml"/>

I can confirm the file paths are correct. This is an issue that I see with every upgrade of Noesis across both MBI and Stellar Conquest. It is never entirely clear to me why the error goes away. Reimporting, restarting, and reimporting again until the errors goes away is the usual fix. I think you have seem this reported from me in the past. With today's upgrade of MBI from 3.0.x to 3.1.7 it was the same workflow to work around the bug -- just restarting and reimporting until the error goes away.

When the error message is shown -- is that directly from a file exists check, or is it an abstracted check, i.e. checking if the file exists in an imported XAML dictionary? I think an underlying process fails to import the file, and that is the source of the file error. If the logging statement directly follows a file exists check my theory is poor.
(0008359)
jsantos   
2023-03-27 15:05   
The error happens when the XAML is not correctly marked as a dependency of the scene. Meaning that if you create a standalone player with Unity, the XAML won't be included in the list of assets (https://forum.unity.com/threads/getting-list-of-all-assets-in-build.620809/).

During the editor, this can work "sometimes' if for example, the XAML was recently built or previewed.

To include a XAML in the scene it must be directly used by a view include in the scene, used as public property of any monobehaviour included in the scene, or be a dependency of another XAML already included in the scene.
(0008360)
jsantos   
2023-03-27 15:09   
(Last edited: 2023-03-27 15:09)
Yes, DimensioningControl.xaml is forward referenced in the top-level XAML file. 

Have you verified DimensioningControl.xaml is listed as a dependency in the Inspector (dependencies section) of the top-level Xaml?
(0008361)
stonstad   
2023-03-27 16:34   
The DimensioningControl.xaml class appears in the XAMLs dependencies (see below). I made no code changes. The specific bug at work here is that, sometimes, a XAML dependency is not loaded but should be. Reimporting assets and restarting Unity shouldn't be necessary when the behavior manifests.
(0008362)
jsantos   
2023-03-27 19:09   
Reimporting assets and restarting Unity is not fixing anything, I am pretty sure. You are being lucky.

Who is referencing that Main Control ? Is that control part of the dependencies of another XAML, and so on untill you reach the XAML in the View of the scene?
(0008419)
stonstad   
2023-04-12 23:17   
For this project, MainControl is the top-level UI UserControl. It is not part of dependencies of another control. I can confirm that the aforementioned DimensioningControl is forward declared. This isn't an active issue because the problem has gone away. Even if I restart Unity, the problem is resolved. It only manifests on Noesis upgrades. It affects both the MBI project and Stellar Conquest. I don't make much noise over the issue because, once it decides to start working, I no longer have issues.
(0008425)
jsantos   
2023-04-13 14:06   
Let me remark this, the problem has not gone away. :) you are just being lucky, I am pretty sure.

"MainControl is the top-level UI UserControl."

This means that MainControl.xaml is assigned to a View right?

When you get the error of XAML not found, have you verified at that point that building a standalone player is included that XAML (https://forum.unity.com/threads/getting-list-of-all-assets-in-build.620809/)? because I think it is not being included, and that means the XAML is not properly referenced.

I assume we cannot reproduce this in a clean and small project right?
(0008426)
stonstad   
2023-04-13 17:18   
Compiled builds work without an issue.

> I assume we cannot reproduce this in a clean and small project right?
Right. Cleaning a project and/or reimporting seems to be part of the fix.
(0008437)
jsantos   
2023-04-14 19:54   
I am going to close this. Please, create a new ticket if you find this again on 3.2


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2553 [NoesisGUI] C++ SDK major have not tried 2023-04-03 12:11 2023-04-14 19:24
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Font references starting with '/' not pointing to root folder
Description: It seems that referencing a font like "/#MyFont", instead of pointing to a resource in the root folder is considering the uri to be relative to the loading xaml.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2568 [NoesisGUI] Unity3D feature always 2023-04-13 12:43 2023-04-14 18:53
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Implement support for Single-Pass stereo rendering on Android (Quest2)
Description: Right now, only Multi-pass is implemented. When enabling Single-Pass (MultiView) only the left eye is rendered
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2566 [NoesisGUI] VSCode minor always 2023-04-12 17:11 2023-04-13 17:02
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version:  
Platform: Any
Summary: Implement full support for color decorators on node attribute properties
Description: Currently color decorators are only supported in attribute properties, and Brush objects.

Implement support for all node properties, as in the sample below.

<Button>
  <Button.Background>Blue</Button.Background>
  <Button.Foreground>#FF0DE70D</Button.Foreground>
</Button>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2565 [NoesisGUI] C++ SDK feature always 2023-04-12 16:59 2023-04-12 17:00
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RiveControl: implement StateChanged event
Description: To implement this event we need to talk with Rive team to see how we can get notified when the animation changes to a different state in the state machine.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2564 [NoesisGUI] C++ SDK feature always 2023-04-12 16:57 2023-04-12 16:57
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RiveControl: add support for selecting the artboard or animation to play
Description: A rive file can contain several artboards and animations. Right now only the default artboard or animation is played.
We should provide an API to select which one we want to play.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2472 [NoesisGUI] Unreal major always 2022-11-28 17:49 2023-04-11 18:13
Reporter: tsilmer Platform:  
Assigned To: hcpizzi OS:  
Priority: high OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.1.7  
Platform: Windows
Summary: Incompatibility with Unreal Engine CommonUI plugin
Description: Hi,

Epic has been rolling out a new UI system called CommonUI (https://docs.unrealengine.com/5.0/en-US/common-ui-plugin-for-advanced-user-interfaces-in-unreal-engine/) which is build on top of UMG. The plugin comes standard with UE5, but also works in 4.27. Epic currently uses it for Fortnite and it is currently being used by most of our games too.

There seems to be an incompatibility between the Noesis Plugin and CommonUI in input handling.
Currently after we install, enable and setup CommonUI in a project the "Accept" button in gamepads no longer works, although all the other buttons work just fine.
Tags:
Steps To Reproduce: Reproduction steps for UE5 or UE4.27 (same thing happen on both), using the Noesis UE sample app (downloaded from https://www.noesisengine.com/developers/downloads.php) and the Buttons level:

* Edit `noesisgui-ue4.27-3.1.6-indie\Assets\Buttons\Buttons\MainWindow.xaml` to add GamepadTriggers such as:

```
          <Button x:Name="StartButton" Grid.Row="1" Content="START" Margin="60,0,0,0" Command="{Binding StartCommand}" RenderTransformOrigin="0.5,0.5">
            <b:Interaction.Triggers>
              <b:EventTrigger EventName="MouseEnter">
                <noesis:SetFocusAction/>
              </b:EventTrigger>
              <b:EventTrigger EventName="GotFocus">
                <b:PlaySoundAction Source="AudioSlide.wav" Volume="0.2"/>
              </b:EventTrigger>

              <noesis:GamepadTrigger FiredOn="ButtonDown" Button="Accept">
                <b:PlaySoundAction Source="AudioClick.wav" Volume="0.3"/>
              </noesis:GamepadTrigger>

            <noesis:GamepadTrigger FiredOn="ButtonDown" Button="Cancel">
                <b:PlaySoundAction Source="AudioClick.wav" Volume="0.3"/>
              </noesis:GamepadTrigger>
            </b:Interaction.Triggers>

            <Button.RenderTransform>
              <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform/>
                <TranslateTransform/>
              </TransformGroup>
            </Button.RenderTransform>
          </Button>
```

* Install the Unreal Engine CommonUI plugin
* Change the Viewport class to CommonGameViewportClient as instructed in https://docs.unrealengine.com/5.0/en-US/common-ui-quickstart-guide-for-unreal-engine/
* Notice that the the `Accept` button never triggers, while `Cancel` triggers as expected (you can try other buttons and they all work).
* Add a breakpoint inside the `UNoesisInstance::NativeOnKeyDown` method in `NoesisGUI-UE4.27-3.1.6-Indie\Plugins\NoesisGUI\Source\NoesisRuntime\Private\NoesisInstance.cpp` and also note that the breakpoint is never hit when pressing the Accept button.
Additional Information:
Attached Files: CommonUIWorkaround.patch (6,287 bytes) 2023-01-13 13:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1732&type=bug
Notes
(0008183)
rg_moliver   
2022-12-08 02:46   
Wanted to check in and see if there was any update or ETA on this? thanks so much!
(0008184)
hcpizzi   
2022-12-12 12:46   
Hi,

I've been looking into this. Turns out CommonUI turns the accept gamepad button press into a MouseButtonDown event, in FAnalogCursor::HandleKeyDownEvent (via FCommonAnalogCursor::HandleKeyDownEvent).

It looks like the way to avoid this would be to have the ActionRouter handle the event, but I haven't figured out how to do it. Here's the relevant line in FCommonAnalogCursor::HandleKeyDownEvent:

if (bIsVirtualAccept && ActionRouter.ProcessInput(InKeyEvent.GetKey(), InputEventType) == ERouteUIInputResult::Handled)
(0008195)
sgonchar   
2023-01-09 18:27   
Hello, I'm wondering when can there be an ETA on this? Thank you.
(0008198)
hcpizzi   
2023-01-10 17:32   
Hi,

I'm currently looking into having the ActionRouter handle the input event so that it doesn't decay into a left mouse button down event, but I still haven't figured out how to do it.
(0008200)
sgonchar   
2023-01-10 19:38   
Thank you for looking into it! It's becoming higher and higher pri for us. Eager to see your solution for it.
(0008202)
hcpizzi   
2023-01-11 14:20   
OK, I've got a workaround for this.

The code in FCommonAnalogCursor::HandleKeyDownEvent that handles the Virtual_Accept key does this:

            //@todo DanH: This is a major bummer to have to flip this flag on the input subsystem here, but there is no awareness on a mouse event of whether it's real or not
            // Though tbh, any place that cares should be able to just check the live input mode and infer from that whether this is a mouse click or virtual gamepad click
            UCommonInputSubsystem& InputSubsytem = ActionRouter.GetInputSubsystem();
            InputSubsytem.SetIsGamepadSimulatedClick(bIsVirtualAccept);
            bool bReturnValue = FAnalogCursor::HandleKeyDownEvent(SlateApp, InKeyEvent);
            InputSubsytem.SetIsGamepadSimulatedClick(false);

I can check that IsGamepadSimulatedClick flag in our MouseButtonDown event handler, and convert it back to a Key_GamepadAccept KeyDown/Up event pair.

It's not pretty, but it gets the job done. I can send you a patch if you want to try it first.

What do you think?
(0008205)
sgonchar   
2023-01-11 20:27   
Thank you! If it works in your samples it would work for us as well, I think.
Please send us a patch / change PR or etc we can try on our end when it's ready. I'll see what it takes to go through a release cycle to get this to the game team that is having the issue.
Cheers.
(0008207)
hcpizzi   
2023-01-13 13:22   
Here's the patch for you to try. Please, let us know if it resolves your issue. Thanks.
(0008208)
sgonchar   
2023-01-13 18:28   
Thank you very much! We'll patch and try to push through release process shortly!
(0008408)
sgonchar   
2023-04-06 03:06   
Hello!
Update, please excuse late reply, release / integration process was much longer then we expected.
Fix confirmed, it fixed the issue in live / in game.
- Input works when using common game view port
- input still works when switching back to game view port (I didn't have to use the .cs portion)
Cheers.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2554 [NoesisGUI] VSCode minor always 2023-04-04 12:24 2023-04-11 17:33
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Incorrect autocomplete when XAML is empty
Description: Our extension only shows class suggestions when a '<' is typed.

But when the document is empty, this rule is not followed and I can start typing "Rec" (without <) and get suggestions.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2555 [NoesisGUI] VSCode minor have not tried 2023-04-04 12:27 2023-04-11 16:24
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Boolean and Nullable<Boolean> not showing suggestions
Description: These properties are not showing suggestions for the possible values: True, False, x:Null.

Nullable can be used for more types than boolean, so this should be fixed too
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2557 [NoesisGUI] VSCode minor have not tried 2023-04-04 12:32 2023-04-11 12:57
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Issue with missing namespaces
Description: In the following XAML

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Button x:Name="button" Width="120" Height="50" Content="Button" Margin="5" />
</Grid>

There are a few problems:

1. The underscore is written for "Button" instead of "x:Name"
2. The error message does not indicate the namespace
3. We could expose a quick-fix to this in VsCode
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008412)
jsantos   
2023-04-11 12:57   
This can't be easily solved with the current architecture.

Suspending for now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2556 [NoesisGUI] VSCode minor have not tried 2023-04-04 12:28 2023-04-11 12:43
Reporter: jsantos Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Properties of type Color don't show color suggestions
Description: For example, in this snippet:

  <Ellipse Width="300" Height="300" Margin="5" Stroke="Coral" >
    <Ellipse.Fill>
       <RadialGradientBrush>
         <GradientStop Color="Red" Offset="0"/>
         <GradientStop Color="Blue" Offset="1"/>
       </RadialGradientBrush>
    </Ellipse.Fill>
  </Ellipse>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2559 [NoesisGUI] Unity3D major always 2023-04-04 16:45 2023-04-05 13:51
Reporter: vanHope Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WordlSpace UI with Cinemachine in Unity doesn‘t work
Description: Hey,
I have no problem implementing the World Space UI with normal Cameras like it is explained here:
https://www.noesisengine.com/docs/Gui.C ... d-space-ui

My problem is I can't get it to work with a Cinemachine Bain and virtual cameras. Do you have an example how that has to be setup, so that the World Space UI is being rendered with Cinemachine virtual cameras?
Tags: C#, Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2551 [NoesisGUI] Unity3D feature always 2023-03-30 14:45 2023-03-30 17:15
Reporter: asusralis Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Support for 'Completion for markup extensions and dictionaries' when using VS Code.
Description: https://www.noesisengine.com/forums/viewtopic.php?p=15457#p15457
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2085 [NoesisGUI] C++ SDK major always 2021-08-17 12:59 2023-03-30 16:59
Reporter: decai Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: 3.1.0 Background color with alpha render diffent as 3.0.12 in linear color space
Description: With alpha in linear color space is incorrect, without alpha is correct.
see https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2396&sid=8d16390c7721673fcc293aa9a8e78f81
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2550 [NoesisGUI] Unreal major have not tried 2023-03-30 11:55 2023-03-30 12:11
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Font Fallbacks defined in Noesis settings don't work
Description: Default FontFaces specified into Noesis settings are ignored.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008391)
sfernandez   
2023-03-30 12:11   
This is the patch:

Index: NoesisSettings.cpp
===================================================================
--- NoesisSettings.cpp	(revision 12413)
+++ NoesisSettings.cpp	(revision 12414)
@@ -79,12 +79,15 @@
     }
 }
 
-static void GetFamilyNames(const TArray<uint8>& FontData, TArray<Noesis::FixedString<128>>& FamilyNames)
+static void GetFamilyNames(const TArray<uint8>& FontData, TArray<Noesis::FixedString<128>>& FamilyNames,
+	const Noesis::String& Path)
 {
-	Noesis::Ptr<Noesis::MemoryStream> Stream = Noesis::MakePtr<Noesis::MemoryStream>(FontData.GetData(), FontData.Num());
-	Noesis::Fonts::GetTypefaces(Stream, [&FamilyNames](const Noesis::Typeface& Typeface)
+	Noesis::MemoryStream Stream(FontData.GetData(), FontData.Num());
+	Noesis::Fonts::GetTypefaces(&Stream, [&FamilyNames, &Path](const Noesis::Typeface& Typeface)
     {
-		FamilyNames.AddUnique(Typeface.familyName);
+		Noesis::FixedString<512> PathFamilyName(Path.Str());
+		PathFamilyName.Append(Typeface.familyName);
+		FamilyNames.AddUnique(PathFamilyName.Str());
     });
 }
 
@@ -100,6 +103,9 @@
 
     DefaultFontRefs.Empty(DefaultFonts.Num());
 
+	FString PackageRoot, PackagePath, PackageName;
+	Noesis::String PathStr;
+
     TArray<Noesis::FixedString<128>> FamilyNamesStr;
     for (auto& FontFallback : DefaultFonts)
     {
@@ -110,6 +116,10 @@
             DefaultFontRefs.Add(FontFace);
             NoesisRuntime.RegisterFont(FontFace);
 
+			UPackage* Package = FontFace->GetOutermost();
+			FPackageName::SplitLongPackageName(Package->GetPathName(), PackageRoot, PackagePath, PackageName, false);
+			PathStr = TCHAR_TO_UTF8(*(PackageRoot.LeftChop(1) + ";component" / PackagePath / "#"));
+
 #if !WITH_EDITORONLY_DATA
             if (FontFace->GetLoadingPolicy() != EFontLoadingPolicy::Inline)
             {
@@ -116,7 +126,7 @@
                 TArray<uint8> FileData;
                 FFileHelper::LoadFileToArray(FileData, *FontFace->GetFontFilename());
 
-				GetFamilyNames(FileData, FamilyNamesStr);
+				GetFamilyNames(FileData, FamilyNamesStr, PathStr);
             }
             else
 #endif
@@ -125,7 +135,7 @@
                 const FFontFaceData& FontFaceData = FontFaceDataRef.Get();
                 const TArray<uint8>& FontFaceDataArray = FontFaceData.GetData();
 
-				GetFamilyNames(FontFaceDataArray, FamilyNamesStr);
+				GetFamilyNames(FontFaceDataArray, FamilyNamesStr, PathStr);
             }
         }
     }


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2548 [NoesisGUI] C# SDK feature have not tried 2023-03-29 17:11 2023-03-29 17:38
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Memory management improvements
Description: In order to reduce memory allocations there are a few things we can improve in our C# implementation and API.

* String UTF8 -> Unicode conversion:
 -- use pre-allocated buffer whenever possible to avoid creating new memory on each conversion
 -- study the possibility to cache conversion for some or all strings

* Event args:
 -- can't use structs because inheritance won't be possible then
 -- study the possibility to pool the allocation of this objects
 -- https://www.infoworld.com/article/3221392/how-to-use-the-object-pool-design-pattern-in-c.html
 -- https://learn.microsoft.com/en-us/dotnet/api/system.buffers.arraypool-1?view=net-7.0

* DependencyPropertyChangedEventArgs OldValue/NewValue:
* DependencyObject GetValue/SetValue:
 -- avoid boxing by providing a <T> version
 -- should be used in all our interactivity classes

* IValueConverter Box/Unbox:
 -- study the possibility of using Unsafe.Unbox<T> + pool of boxed values
 -- https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.unsafe.unbox?view=net-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2546 [NoesisGUI] C# SDK major always 2023-03-28 11:41 2023-03-29 13:20
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Font with "Condensed" in the name is not rendered properly
Description: I use Roboto Condensed font (that's the actual name of the family). In 3.1.7 it worked properly, but in 3.2 it seems to go back to rendering the default font. I assume it's due to "Condensed" being in the name and the parser interpreting it as font family Roboto with condensed line spacing (which is not the case here).
Roboto Condensed font is available here: https://fonts.google.com/specimen/Roboto+Condensed
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: viewbox_3_2.png (120,169 bytes) 2023-03-29 09:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1792&type=bug
no_viewbox_3_2.png (96,014 bytes) 2023-03-29 09:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1793&type=bug
viewbox_3_1_7.png (134,606 bytes) 2023-03-29 09:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1794&type=bug
no_viewbox_3_1_7.png (86,298 bytes) 2023-03-29 09:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1795&type=bug
Notes
(0008373)
sfernandez   
2023-03-28 16:57   
After fixing 0002545 I tried the specified Roboto Condensed font and it works as expected, so I think your problems were related to the previous ticket.
I tested the following xaml:

<TextBlock Text="Hello World" FontFamily="pack://application:,,,/Fonts/#Roboto Condensed"/>
<TextBlock Text="Hello World" FontFamily="/Fonts/#Roboto Condensed"/>
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto Condensed"/>


And in all cases the font selected was the correct one.

Could you share the xaml you were using and the file structure (and providers) that were failing for you?
(0008379)
sfernandez   
2023-03-29 12:25   
I see now what is happening, in 3.2 we fully implemented the font differentiation algorithm used by WPF (0001868).
This means that if a style is included in the FontFamily name it will try to match that, overriding the style attributes, so for example:

This text will use "Roboto" + Condensed + Italic, which is "Roboto Condesed Italic" font:
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto" FontStretch="Condensed" FontStyle="Italic"/>

This text will use "Roboto Condensed" font, ignoring the Italic attribute:
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto Condensed" FontStyle="Italic"/>

This text will use "Roboto Condensed Italic" font:
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto Condensed Italic"/>

This text will use "Roboto Condensed Italic" font too, ignoring the Bold attribute:
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto Condensed Italic" FontWeight="Bold"/>

This text will use "Roboto Condensed Bold Italic" font:
<TextBlock Text="Hello World" FontFamily="Fonts/#Roboto Condensed Bold Italic"/>


Our recommedation is to use the plain family name "Roboto", and then specify the rest of styles as attributes. So you can define styles like this:

<FontFamily x:Key="RobotoFont">../Fonts/#Roboto</FontFamily>
<Style x:Key="Roboto" TargetType="TextBlock">
  <Setter Property="FontFamily" Value="{StaticResource RobotoFont}"/>
  <Setter Property="FontStretch" Value="Condensed"/>
</Style>
<Style x:Key="RobotoBoldItalic18" TargetType="TextBlock" BasedOn="{StaticResource Roboto}">
  <Setter Property="FontSize" Value="18"/>
  <Setter Property="FontStyle" Value="Italic"/>
  <Setter Property="FontWeight" Value="Bold"/>
  <Setter Property="LineHeight" Value="20"/>
  <Setter Property="TextWrapping" Value="Wrap"/>
</Style>
(0008383)
sumel007   
2023-03-29 13:07   
Okay, I see now. Thanks for clarifying it. Yeah using Roboto as the font family name and then specifying weight, spacing etc. separately seems to work correctly. It was a little confusing, since the font is called "Roboto Condensed", which is why I was referencing it the way I originally was. But your solution seems to work fine. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2547 [NoesisGUI] Unreal minor N/A 2023-03-29 12:52 2023-03-29 13:08
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version:  
Platform: Any
Summary: Support for linear color and texture parameters in materials
Description: Currently texture material parameters are not supported, and colors are converted to sRGB.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2542 [NoesisGUI] Unreal minor always 2023-03-23 01:52 2023-03-29 12:51
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: NoesisViews can't be set as mouse cursor widgets
Description: A NoesisView causes a crash when used as a mouse cursor where an UMG Widget can be used.
Tags:
Steps To Reproduce: Use CreateWidget with a NoesisView, and pass it to PlayerController::SetMouseCursorWidget.
Additional Information:
Attached Files:
Notes
(0008381)
hcpizzi   
2023-03-29 12:51   
There were several problems. The NoesisInstance wasn't setting a desired size and, after fixing that, the view extents could start at negative offsets. All the issues have been addressed now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2221 [NoesisGUI] Unity3D feature always 2021-12-28 02:47 2023-03-29 12:46
Reporter: CMarinacci Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.1.7  
Platform: Any
Summary: Please add Visual Studio 2022 support for the NoesisGUI Project Templates
Description: Currently the NoesisGUI Project Templates only support Visual Studio 2015, 2017, and 2019.
Tags: Extension, VisuaStudio
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008380)
maherne   
2023-03-29 12:46   
NoesisGUI Project Templates can now be installed for 2022. Due to a change in the Visual Studio API, it has a separate VSIX package (it can be installed via the Extensions window in VS also): https://marketplace.visualstudio.com/items?itemName=NoesisTechnologies.noesistemplates2022

We have updated NoesisGUI Project Templates for older versions of Visual Studio (2017 to 2019), projects generated in those versions are now compatible with VS 2022.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2545 [NoesisGUI] C# SDK major always 2023-03-28 11:39 2023-03-28 14:02
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Embedded fonts not found in Noesis 3.2
Description: See the thread here: https://www.noesisengine.com/forums/viewtopic.php?t=2901
Referencing fonts in 3.2 seems broken and EmbeddedFontProvider.FamilyExists return false when specifying fonts like pack://application:,,,/Fonts/#Work Sans or Fonts/#Work Sans (even though they are in that folder). Appropriate relative path works correctly for finding the font (../Fonts/#Work Sans)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2540 [NoesisGUI] C++ SDK minor always 2023-03-22 16:13 2023-03-27 14:33
Reporter: hcpizzi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.1  
    Target Version: 3.2.1  
Platform: Any
Summary: Rive line drawing not working
Description: Notice the missing lines over the mouth and under the eyes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: unity.png (76,875 bytes) 2023-03-22 16:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1784&type=bug
rive.png (15,238 bytes) 2023-03-22 16:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1785&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2535 [NoesisGUI] Unity3D feature N/A 2023-03-12 12:31 2023-03-27 12:14
Reporter: tylerwsavatronix Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Callbacks to handle unfound resources in Unity
Description: As discussed in https://www.noesisengine.com/forums/viewtopic.php?t=2867 resources that aren't part of the Unity project won't be found if parsing xaml at runtime.

The proposed solution is a callback in the resource providers to allow for manual loading of the resource.
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2526 [NoesisGUI] C++ SDK feature N/A 2023-03-02 14:44 2023-03-27 12:14
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.7  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Add PersistId feature to enable saving and restoring control states
Description: Feature requested in https://www.noesisengine.com/forums/viewtopic.php?t=2868
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2525 [NoesisGUI] Inspector feature N/A 2023-03-01 14:31 2023-03-27 12:14
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Inspector: Support explicit IP communication
Description: Hi guys,

Right now it looks like the inspector is listening to any traffic on a given port and refreshing the servers when it receives data in RemoteCommandsClient.cpp.

Likewise, the game broadcasts on the announcement socket to all IP in RemoteCommands.cpp

We've had a request internally to specify an exact IP address to listen to, e.g. launch the inspector with something like "-ListenIP=x.x.x.x", and maybe even on the game, e.g. "-InspectorIP=x.x.x.x".

This would reduce the chance of clashing / connecting to the wrong IP if we're all on the same domain.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008321)
jsantos   
2023-03-03 21:14   
Hi Steve,

In the latest version of the Inspector (0002418) there is a checkbox for connecting only to local IPs.

Not sure if this is helpful to you, I assume this is for consoles connected to a different IP right?
(0008324)
steveh   
2023-03-06 19:01   
Hi Jésus, I think that would partially help. However, the full solution would be a manual IP entry to support consoles as you have said. Ideally we'd be able to target a specific IP on the network so our consoles and dev machines can communicate directly without broadcasting to all IPs.
(0008325)
jsantos   
2023-03-06 23:36   
Sure, understood.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2514 [NoesisGUI] Unity3D minor always 2023-02-19 01:34 2023-03-27 12:14
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.7  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Space in Glyph Texture
Description: [NOESIS/W] Not enough space in glyph texture to render this frame. Flushing drawing commands. Please increase dimensions

I'm not entirely sure what this means. Can Noesis specify which texture is causing the problem?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008297)
jsantos   
2023-02-20 10:45   
(Last edited: 2023-02-22 19:01)
You need to increase the "Glyph Texture Size" in NoesisGUI settings. The message is not clear enough, I will fix that.

By the way, this kind of doubts are better in the forums

Thanks for the feedback!
(0008298)
stonstad   
2023-02-20 21:23   
(Last edited: 2023-02-20 21:23)
> You need to increase the "Glyph Texture Size" in NoesisGUI settings. The message is not clear enough, I will fix that.

Thanks, Jesus. Under what scenario does this error occur? Is it related to fonts?

> By the way, this kind of doubts are betting in the forums
I'm afraid I do not understand your response.
(0008299)
jsantos   
2023-02-22 19:04   
Sorry for the typo :) I meant, this kind of questions (not bugs) should go in the forums.

That message happens when there are many simultaneous glyphs used in one frame and there is not space for them in the atlas texture. So we need to flush the renderer to make more space.

In general, if you see this message only sporadically it is fine to ignore it.
(0008310)
stonstad   
2023-02-24 15:11   
Understood. Thank you.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2505 [NoesisGUI] Unity3D minor always 2023-02-08 18:12 2023-03-27 12:14
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Transform3D + Effects Rendering Behavior
Description: Given the following XAML:

 <Grid x:Name="_LayoutRoot">
        <noesis:Element.Transform3D>
            <noesis:CompositeTransform3D RotationY="-6"/>
        </noesis:Element.Transform3D>
        <Rectangle ... />
        ...

If an effect such as BlurEffect or DropShadowEffect is applied to the parent the resulting output is missing or corrupt. Please see the following screenshots, A, B, C and D. Note the UI element in the top-left corner.

A. The UI element does not have a composite transform applied. No effect is applied. OK!
B. The UI element does not have a composite transform applied. BlurEffect is applied. OK!
C. The UI element has a composite transform applied. No effect is applied. OK!
D. The UI element has a composite transform applied. BlurEffect is applied. FAIL!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: A.jpg (375,251 bytes) 2023-02-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1747&type=bug
B.jpg (222,718 bytes) 2023-02-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1748&type=bug
C.jpg (375,440 bytes) 2023-02-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1749&type=bug
D.jpg (223,327 bytes) 2023-02-08 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1750&type=bug
Notes
(0008272)
stonstad   
2023-02-09 18:58   
Confirmed that this behavior persists in 3.1.7.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2503 [NoesisGUI] Unity3D minor always 2023-02-07 00:26 2023-03-27 12:14
Reporter: tylerwsavatronix Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: NoesisView component fields not all accessible from code
Description: It looks like the Enable PPAA and Subpixel Rendering checkboxes on the NoesisView component in the editor are not accessible from code.

Consider the following:
var noesisView = MainGuiCamera.gameObject.AddComponent<NoesisView>();

I'd expect to be able to set every field/property that I can set in the editor to also be accessible in code, which is especially important when creating the camera dynamically instead of at design time (in my particular use case, the only thing added to the scene at design time is a ScriptContainer gameobject which contains my startup behavior script. Everything else is dynamic).

So something like

noesisView.EnablePPAA = true;
noesisView.UseSubpixelRendering = true;
Tags:
Steps To Reproduce: In a new Unity project

Create a new camera object

In code:
Get a reference to the camera object (or create one in code)
Attach a NoesisView component to the camera
Attempt to set "Enable PPAA" and/or SubpixelRendering in code
See there is no surfaced field/property for those two.
Additional Information:
Attached Files:
Notes
(0008270)
jsantos   
2023-02-09 17:42   
This is exposed in the RenderFlags property of NoesisView.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2502 [NoesisGUI] Unity3D feature N/A 2023-02-07 00:15 2023-03-27 12:14
Reporter: tylerwsavatronix Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Unity New Input System Action XAML support
Description: As requested by JSantos in the thread https://www.noesisengine.com/forums/viewtopic.php?t=2852#p15211 I'm opening up a ticket for how XAML could be extended to support Unity's new input system, specifically actions.

The specific example I gave was using the Menu3d example and modifying it with a possible way Actions could be supported.

Specifically line 144 of MainMenu.xaml

from
<b:KeyTrigger Key="Esc" ActiveOnFocus="True">
    <b:PlaySoundAction Source="Sounds/WaterDropBig.mp3" Volume="0.5"/>
    <b:InvokeCommandAction Command="{Binding Exit}"/>
</b:KeyTrigger>

to
<b:ActionTrigger Action="MenuBack" ActiveOnFocus="True">
    <b:PlaySoundAction Source="Sounds/WaterDropBig.mp3" Volume="0.5"/>
    <b:InvokeCommandAction Command="{Binding Back}"/>
</b:ActionTrigger >

Ideally anyplace in Noesis that accepts a "Key=" attribute should also accept an Action (whether that be a straight alternative, or a new trigger). It looks like Unreal has a similar concept for input actions as well, so keeping Unity and Unreal as close as feasible in terms of usage within Noesis is probably a good idea.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2500 [NoesisGUI] C++ SDK minor have not tried 2023-02-02 17:31 2023-03-27 12:14
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Disable/bypass the thread checks on objects
Description: When using noesis with jobs the check against thread-safety don't make sense as the job can be executed in different threads in each frame or even the same thread.

We should expose a way to disable this check (at compile time, by API or both)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2487 [NoesisGUI] C++ SDK block always 2023-01-10 09:40 2023-03-27 12:14
Reporter: Logris Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: (3.20b1) Noesis::Shutdown() crashes
Description: https://www.noesisengine.com/forums/viewtopic.php?t=2837&sid=c0a18aa6c93c94b8f8cb1d651bbd14e1

minidump
https://drive.google.com/file/d/1IqJidZX5cA75qySJGuZzP0fiOuzeg985/view?usp=share_link
Tags: C++, crash, Directx11
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008196)
jsantos   
2023-01-10 13:31   
Thanks for the report.

1. Are you able to reproduce this in one of our examples?

2. Could you please double check this is not happening with 3.1.6 ?
(0008199)
Logris   
2023-01-10 17:40   
1. It is difficult
2. Crashes after migration to version 3.2.0b1. The Application code has not changed.

You can provide a debug version Noesis_d.dll + Noesis_d.lib + Noesis_d.pdb?
(0008201)
sfernandez   
2023-01-11 13:21   
Hi, would it be possible to get your application built, so we can execute it ourselves? That way we can use a debug version of Noesis and make changes to narrow the problem.
(0008203)
Logris   
2023-01-11 14:28   
The debug version will be enough app.exe + MinimumContent?
(0008204)
sfernandez   
2023-01-11 16:12   
Yes, whatever minimum files that are needed to launch your application, and that crash on shutdown, would be enough, thanks.
(0008209)
Logris   
2023-01-15 13:36   
https://drive.google.com/file/d/1oU1W5K0-dCxV059D6-B5ZuK5MbKI7iUj/view?usp=sharing

Run app - start.bat

We have implemented a multi-window interface with WindowEx class.
For these purposes, we have slightly changed the code NoesisApp::D3D11RenderContext::Init()
Each window has its own NoesisApp::D3D11RenderContext but all NoesisApp::D3D11RenderContext use one Noesis::RenderDevice (singleton).
Perhaps because of this crash.

in Noesis 2 - 3.1.6 it works fine
(0008211)
sfernandez   
2023-01-16 18:38   
I was able to fix the crash inside Shutdown and generated a new patched library: https://drive.google.com/file/d/1OakiKAz5w8IOMfyHR3meWPnWeKg6SbHk/view?usp=share_link

Anyway, before Shutdown was called I hit an assert while debugging caused by releasing a BaseRefCounted object that was already deleted. Adding some logs it looks it was the RenderDevice. You should verify that you are not deleting the RenderDevice object while there are Ptr still holding a reference.
And also, after Noesis Shutdown finished, some code in your Engine.dll was trying to get the name of a type (Type::GetName()) when all types were already deleted, so it was also crashing.
Let me know if you can fix those issues and then everything closes as expected.
(0008219)
jsantos   
2023-01-17 18:24   
(Last edited: 2023-01-17 18:24)
Just a clarification, if you store the renderer in a Ptr<> it will be automatically destroyed. It is dangerous to invoke manual deletes on BaseComponent instances.

If you want to make sure the instance is being destroyed you can do something like:

int32_t refs = obj->Release();
assert(refs == 0);

(0008222)
Logris   
2023-01-18 17:16   
Hello
Patched the build completes successfully.

The negative number of refs was due to
   //mRenderer.Reset();
   mRenderer->Release();
in D3D11RenderContext::Shutdown()
I did not hesitate to change Reset to Release, but I had to remove this line.

There was another problem. Leaks.
NOESIS[W]: Memory leaks detected: 4112 bytes.

The error appeared in this build.
(0008226)
jsantos   
2023-01-19 14:15   
I can't repro this in our examples. Could you isolate this because I would say, the leaks are real.
(0008231)
Logris   
2023-01-19 20:22   
Noesis::GUI::SetFontDefaultProperties(11.f, FontWeight_Light,
                  FontStretch::FontStretch_Normal, FontStyle::FontStyle_Normal);

Noesis::Init();

Noesis::Shutdown();
"NOESIS[I]: Noesis Shutdown.
NOESIS[W]: Memory leaks detected: 4112 bytes."


Noesis::Init();
Noesis::GUI::SetFontDefaultProperties(11.f, FontWeight_Light,
                  FontStretch::FontStretch_Normal, FontStyle::FontStyle_Normal);
Noesis::Shutdown();
Refs = 0!!!! OK
(0008234)
sfernandez   
2023-01-20 11:41   
The leak comes from creating symbols before the call to Noesis::Init.
We'll analyze how to improve this.
(0008236)
jsantos   
2023-01-20 11:54   
The temp workaround is calling *Noesis::GUI::SetFontDefaultProperties* after Noesis::GUI::Init
(0008237)
Logris   
2023-01-20 13:07   
Ok, thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2483 [NoesisGUI] C++ SDK minor always 2023-01-02 12:49 2023-03-27 12:14
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Memory leak removing Font provider
Description: From https://www.noesisengine.com/forums/viewtopic.php?t=2821

So, I figured out the memory leak issue. It is indeed a bug in our code, but a very odd one, so I suggest you to take a look into it on your side as well or at least document it.

First, while picking apart literally everything inside our resources, I noticed the memory leak only happens if there are TextBlock or TextBox objects in the resources (e.g. in some control templates). The more instances of TextBlock/Box there are the larger the leak.
Then, while trying to remove as much code as possible between load and Shutdown, I noticed we have following lines that are absent from your examples:

Noesis::GUI::SetTextureProvider(0);
Noesis::GUI::SetXamlProvider(0);
Noesis::GUI::SetFontProvider(0);

This code wasn't written by me, but I never paid attention, because it looked like a reasonable thing to do. Turns out it isn't :)
Setting Font provider to null like this causes a memory leak on Shutdown if I have TextBlocks inside resources!
It is also reproducible in your examples, simply by adding GUI::SetFontProvider(0); before Shutdown
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2478 [NoesisGUI] C++ SDK feature always 2022-12-15 17:22 2023-03-27 12:14
Reporter: manuel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: Binding.NotifyOnTargetUpdated and Binding.TargetUpdated event are not implemented
Description: Whenever I try to use Binding.NotifyOnTargetUpdated I got "Unknown member Binding.NotifyOnTargetUpdated".

I could find quite old forum threads about the same topic, so there might already be a bug ticket about this.
According to these forum threads, this feature just has never been implemented:
https://www.noesisengine.com/forums/viewtopic.php?t=452
https://www.noesisengine.com/forums/viewtopic.php?p=9611
Tags:
Steps To Reproduce: In my case, I try to animate a ListBox's position to always center the selected entry. So... any kind of EventTrigger of type TargetUpdated and an animation with NotifyOnTargetUpdated will do. Here is my code as an example:

                    <ListBox.Triggers>
                        <EventTrigger RoutedEvent="Binding.TargetUpdated">
                            <BeginStoryboard Name="MoveAnimation">
                                <Storyboard>
                                    <DoubleAnimation To="{Binding SelectedEpisodeIndex}, NotifyOnTargetUpdated=True}" Storyboard.TargetProperty="RenderTransform.X" Duration="00:00:00.250000" FillBehavior="HoldEnd" IsAdditive="True" IsCumulative="True"/>
                                    <DoubleAnimation To="{Binding SelectedEpisodeIndex}, NotifyOnTargetUpdated=True}" Storyboard.TargetProperty="RenderTransform.Y" Duration="00:00:00.250000" FillBehavior="HoldEnd" IsAdditive="True" IsCumulative="True"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ListBox.Triggers>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2477 [NoesisGUI] C# SDK major always 2022-12-13 09:48 2023-03-27 12:14
Reporter: peerlessDJ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: FormattedText accessed invalid memory for the text
Description: When i implemented a custom TickBar, show error text
Tags: C#
Steps To Reproduce: please see uploaded files
Additional Information:
Attached Files: 1670570849699.png (9,614 bytes) 2022-12-13 09:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1723&type=bug
1670570838845.png (57,611 bytes) 2022-12-13 09:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1724&type=bug
1670570787644.png (4,296 bytes) 2022-12-13 09:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1725&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2476 [NoesisGUI] C# SDK minor have not tried 2022-12-13 06:54 2023-03-27 12:14
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: DependencyProperty.AddOwner fails without default value, invalid callback registration
Description: Calling DependencyProperty.AddOwner for user-defined DP with PropertyMetadata without specifying default value causes runtime exception.

Calling DependencyProperty.AddOwner for user-defined DP with PropertyMetadata with default value and a property change callback causes parent DP value changed callback to be called with arguments from type that called AddOwner.
Tags:
Steps To Reproduce: See forum post: https://www.noesisengine.com/forums/viewtopic.php?t=2813

public partial class UserControlA : UserControl
{
    public static readonly DependencyProperty ValueProperty =
        DependencyProperty.Register("Value", typeof(int), typeof(UserControlA), new PropertyMetadata(5, OnValueChanged));
    ...
}

public partial class UserControlB : UserControl
{
    public static readonly DependencyProperty ValueProperty =
        UserControlA.ValueProperty.AddOwner(typeof(UserControlB), new PropertyMetadata(OnValueChanged));
    ...
}

Instantiating both of these classes in XAML causes runtime exception.

Specifying default value in UserControlB DP registration causes UserControlA.OnValueChanged to be called when UserControlB.Value changes.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2471 [NoesisGUI] C++ SDK minor always 2022-11-28 17:44 2023-03-27 12:14
Reporter: manuel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: ItemCollection does not expose the Count property
Description: Whenever I try to access the Count property of an ItemCollection, I got the following error:

Can't solve PropertyPath: Type 'ItemCollection' does not contain a property named 'Count'
Tags:
Steps To Reproduce: Link to the forum entry where I asked for help with this issue:

https://www.noesisengine.com/forums/viewtopic.php?t=2802
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2470 [NoesisGUI] Unity3D trivial always 2022-11-27 16:51 2023-03-27 12:14
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Texture Import Fails to Remove Alpha
Description: I'm stumped as to what could have changed, or why alpha is not being removed from these images. Maybe it is user error, but it isn't clear to me why.

1.png Directory of PNG images.
2.png Image settings with alpha enabled.
3.png Image resource dictionary
4.png XAML usage
5.png Code behind
6.png result
Tags:
Steps To Reproduce: 1.png - Directory of PNG images.
2.png - Image settings with alpha enabled.
3.png - Image resource dictionary
4.png - XAML usage
5.png - Code behind
6.png - Screenshot of rectangle/image without alpha.
style_2_25.png - Enclosed sample image
Additional Information:
Attached Files: 1.png (173,203 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1715&type=bug
2.png (84,045 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1716&type=bug
3.png (773,096 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1717&type=bug
4.png (109,625 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1718&type=bug
5.png (35,857 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1719&type=bug
6.png (166,965 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1720&type=bug
style_2_25.png (49,833 bytes) 2022-11-27 16:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1721&type=bug
image.png (728,600 bytes) 2022-11-28 16:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1722&type=bug
Notes
(0008177)
sfernandez   
2022-11-28 10:40   
We need to use textures with premultiplied alpha. In Unity we do that automatically to all textures marked with the Noesis label as described in our tutorial: https://www.noesisengine.com/docs/Gui.Core.Unity3DTutorial.html#texture-assets
Can you check that?
(0008178)
jsantos   
2022-11-28 13:29   
I think we could find a way to detect when textures used by Noesis don't have the "noesis" label and emit a warning
(0008179)
stonstad   
2022-11-28 16:22   
*slaps forehead*

Things are so easy with Noesis and I just forgot this step! Thanks guys.
(0008185)
stonstad   
2022-12-16 21:49   
Thank you for the assistance.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2460 [NoesisGUI] Unity3D minor always 2022-11-15 12:11 2023-03-27 12:14
Reporter: Killian Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Windows
Summary: Opacity groups with effects show artifacts / don't render as expected
Description: There a thread in the forum which describes the issue the best way possible.
https://www.noesisengine.com/forums/viewtopic.php?t=2787
Tags: C#, Rendering, Unity, Unity URP, WPF
Steps To Reproduce: Please go to the link above in the description to find XAML code for _xamltoy_ to reproduce the issue.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2443 [NoesisGUI] Unreal block always 2022-10-14 21:04 2023-03-27 12:14
Reporter: dlamb Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Image.Source property does not resolve absolute URI with http scheme
Description: WPF Image controls will display images retrieved at runtime from server locations by setting or binding their Source property to a string that represents an http schemed absolute URI.

Ideally, http schemed URIs would also work for SVG images once support for that image type is added.
Tags:
Steps To Reproduce: Include the following Image tag in your page and notice it does display an image in the blend designer, however when the page is rendered in game the image fails to load and a LogNoesis warning appears to mention that the image not found


<Image Source="https://www.noesisengine.com/images/uploaded/pages/home-home_p1-main.png"></Image>
Additional Information:
Attached Files: image.png (9,749 bytes) 2022-10-14 21:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1694&type=bug
image-2.png (24,113 bytes) 2022-10-14 21:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1695&type=bug
image-3.png (17,985 bytes) 2022-10-14 21:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1696&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2415 [NoesisGUI] Unity3D minor always 2022-09-12 12:10 2023-03-27 12:14
Reporter: DevFear Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Binding TranslateTransform in Style
Description: When working with the User Control style. When TranslateTransform is bound to an element property, then in Blend the layout is updated under the change of this property. But in Unity, the binding seems to disappear and TranslateTransform does not work. There are no errors in the logs.
Tags:
Steps To Reproduce:
<Style TargetType="{x:Type local_windows:BaseLocalWindow}">
        <Setter Property="Width" Value="320" />
        <Setter Property="Height" Value="430" />
        <Setter Property="Background" Value="{DynamicResource LowerLevel}" />
        <Setter Property="RenderTransform">
            <Setter.Value>
                <TransformGroup>
                    <TranslateTransform 
                        X="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local_windows:BaseLocalWindow},
                        Path=OffsetX, Mode=OneWay}"
                        Y="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local_windows:BaseLocalWindow},
                        Path=OffsetY, Mode=OneWay}" />
                </TransformGroup>
            </Setter.Value>
        </Setter>
  </Style>
Additional Information:
Attached Files: Style.PNG (16,348 bytes) 2022-09-12 12:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1679&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2396 [NoesisGUI] C# SDK minor have not tried 2022-08-15 03:54 2023-03-27 12:14
Reporter: colin14321 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Missing Property in TabControl
Description: The Noesis.TabControl is currently missing the SelectedContentStringFormat property in comparison to WPF.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2395 [NoesisGUI] C# SDK minor have not tried 2022-08-15 03:53 2023-03-27 12:14
Reporter: colin14321 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Missing Virtual Methods In Tab Control
Description: The Noesis.TabControl is currently missing in comparison to WPF :

OnItemsChanged event
OnSelectionChanged event
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2393 [NoesisGUI] Unity3D crash always 2022-08-03 11:07 2023-03-27 12:14
Reporter: Sybaris Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Calling any Noesis methods without calling Noesis.GUI.Init() first, results in a Unity crash
Description: This happens for example in Unity Unit Tests. Calling ParseXaml() without initialization first, makes Unity crash.
It would be helpful if the method would throw an exception with a text ala "Call Noesis.GUI.Init() first!".
Tags:
Steps To Reproduce: Create a Unity Unit Test.
Call ParseXaml() with a valid XAML file.
-> Unity crashes.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2391 [NoesisGUI] C# SDK minor have not tried 2022-08-02 18:01 2023-03-27 12:14
Reporter: colin14321 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Add DispatcherTimer from System.Windows.Threading
Description: Missing DispatcherTimer from System.Windows.Threading.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2346 [NoesisGUI] C++ SDK feature have not tried 2022-05-12 10:20 2023-03-27 12:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Implement VirtualizingWrapPanel
Description: Implement virtualization for WrapPanel.

C# reference:
https://www.nuget.org/packages/VirtualizingWrapPanel/
https://www.codeproject.com/Articles/75847/Virtualizing-WrapPanel

Implementing a VirtualPanel tutorial:
1. https://docs.microsoft.com/en-us/archive/blogs/dancre/implementing-a-virtualized-panel-in-wpf-avalon
2. https://docs.microsoft.com/en-us/archive/blogs/dancre/implementing-a-virtualizingpanel-part-2-iitemcontainergenerator
3. https://docs.microsoft.com/en-us/archive/blogs/dancre/implementing-a-virtualizingpanel-part-3-measurecore
4. https://docs.microsoft.com/en-us/archive/blogs/dancre/implementing-a-virtualizingpanel-part-4-the-goods
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2344 [NoesisGUI] C++ SDK tweak always 2022-05-10 16:48 2023-03-27 12:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Avoid using offscreen textures for Image+OpacityMask
Description: Right now everytime an OpacityMask is defined we create an offscreen texture that is then combined with the mask.
But there are cases where it could be optimized, for example when applied to an image we can directly draw the image texture.

Tags:
Steps To Reproduce:
<Image Source="test.png">
  <Image.OpacityMask>
    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
      <GradientStop Offset="0" Color="#FF000000"/>
      <GradientStop Offset="1" Color="#00000000"/>
    </LinearGradientBrush>
  </Image.OpacityMask>
</Image>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2340 [NoesisGUI] C++ SDK feature always 2022-04-29 19:15 2023-03-27 12:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Create ShortcutTrigger that works well with focused TextBoxes
Description: Using KeyBindings for shortcuts has many limitations if not using Ctrl modifiers when focus is inside TextBoxes. Because shortcut letters won't be written into the text box (see https://stackoverflow.com/questions/33133485/wpf-keybinding-swallowing-keys-preventing-textbox-use).

The alternative of using a KeyTrigger presents the opposite problem, because when the TextBox is focused the letters will be correctly added, but the trigger will also fire and execute its actions.

To avoid these problems we need to implement a trigger that is aware of TextBox/PasswordBox being focused before trying to invoke the actions, something like this:

void ShortcutTrigger::OnKeyPress(BaseComponent*, const Noesis::KeyEventArgs& e)
{
    if (GetKey() == e.key && CheckModifiers() &&
        Noesis::DynamicCast<Noesis::TextBox*>(e.source) == 0 &&
        Noesis::DynamicCast<Noesis::PasswordBox*>(e.source) == 0)
    {
        InvokeActions(0);
    }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2320 [NoesisGUI] C# SDK major always 2022-04-05 16:18 2023-03-27 12:14
Reporter: peerlessDJ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: ManagedSDK can't play sounds
Description: I try to build Menu3D-windows (include Buttons, RadialMenu), run it and can't play sounds
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2299 [NoesisGUI] Unity3D major always 2022-03-05 18:26 2023-03-27 12:14
Reporter: Jirdus Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: An element using Transform3D is not rendered if the container in which it is contained has the Blur effect set.
Description: If I have a wrapping container that has Blur effect set, child elements in it that use Transform3D are not rendered (or parts of them that do not have Z==0).
Same result in Unity and XamlToy.
Tags: blur, effect, Rendering, Transform3D, TranslateZ
Steps To Reproduce: This is blurred correctly (A.png):
[code]
<StackPanel Orientation="Horizontal">
    <Rectangle Width="300" Height="200" Fill="CadetBlue" Margin="10">
      <noesis:Element.Transform3D>
        <noesis:CompositeTransform3D RotationY="-30" TranslateZ="-75" CenterX="150" />
      </noesis:Element.Transform3D>
      <Rectangle.Effect>
        <BlurEffect Radius="{Binding Value, ElementName=radius}"/>
      </Rectangle.Effect>
    </Rectangle>
  </StackPanel>
[/code]

This will only display the part of the rectangle where Z==0 (B.png):
<StackPanel Orientation="Horizontal">
    <StackPanel.Effect>
      <BlurEffect Radius="{Binding Value, ElementName=radius}"/>
    </StackPanel.Effect>
    <Rectangle Width="300" Height="200" Fill="CadetBlue" Margin="10">
      <noesis:Element.Transform3D>
        <noesis:CompositeTransform3D RotationY="-30" TranslateZ="-75" CenterX="150" />
      </noesis:Element.Transform3D>
    </Rectangle>
  </StackPanel>
Additional Information:
Attached Files: A.png (30,529 bytes) 2022-03-05 18:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1596&type=bug
B.png (11,125 bytes) 2022-03-05 18:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1597&type=bug
Notes
(0007831)
jsantos   
2022-03-07 15:03   
(Last edited: 2022-03-07 15:03)
Applying 2D-effects on top of 3D-transformation is not recommended as the 3D information is removed (so for example, if you observe your XAML under Virtual Reality, I think the results would be unexpected).

We are going to analyze this with more detail. But I am not sure there is going to be an easy solution.
(0008308)
stonstad   
2023-02-24 15:10   
Jsantos, are there any workarounds to allow applying a blur effect to a framework element that has a transform?
(0008313)
jsantos   
2023-02-27 12:33   
(Last edited: 2023-02-27 12:35)
There are no workaround for this. As mentioned above, we are not sure if there is a solution for this scenario. Applying a 2D effect (BLUR) to a 3D geometry, requires projection the 3D geometry, and that would break VR.

So for now, you need to move the effect under the 3D Transformation. Is that a valid option for you?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2244 [NoesisGUI] C# SDK feature always 2022-01-19 15:11 2023-03-27 12:14
Reporter: asthomas Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Portability suggestions - InitializeComponent and ConnectEvent
Description: I am looking at porting a substantial application from WPF to Noesis. I have some suggestions that I think would make this easier, and eliminate the need for NOESIS-specific code in the window setup (at least in simple cases).

1. Make InitializeComponent virtual for Window, so it only needs to be overridden in cases where the default it not enough. The default could be:
<code>
        protected virtual void InitializeComponent()
        {
            GUI.LoadComponent(this, this.GetType().Name + ".xaml");
        }
</code>

2. Provide a default implementation for ConnectEvent that does the appropriate reflection to automatically add the event handler method to the event, something like this:
<code>
        protected virtual bool ConnectEvent(object source, string eventName, string handlerName)
        {
            EventInfo eventInfo = source.GetType().GetEvent(eventName);
            MethodInfo method = this.GetType().GetMethod(handlerName, BindingFlags.NonPublic | BindingFlags.Instance);

            if (eventInfo != null && method != null)
            {
                System.Type tDelegate = eventInfo.EventHandlerType;
                System.Delegate d = System.Delegate.CreateDelegate(tDelegate, this, method);
                eventInfo.AddEventHandler(source, d);
                return true;
            }
            return false;
        }
</code>
Tags: C#
Steps To Reproduce:
Additional Information: https://www.noesisengine.com/forums/viewtopic.php?p=13852
Attached Files:
Notes
(0007751)
jsantos   
2022-01-20 13:01   
We also have plans to add something similar to ConnectEvent but for x:Name items, something like ConnectVar.

If we are able to make this work for all platforms, the proposed solution in this ticket will allow us to leave InitializeComponent empty, without having to use an extra #ifdef for this.

I am excited about this :)
(0007832)
jsantos   
2022-03-07 19:24   
Thinking more about this, we could do the same in C++, just adding to the reflection each event and each named member. And then the reflection mechanism would connect them, following exactly the same implementation for both C# and C++.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2175 [NoesisGUI] C++ SDK feature always 2021-10-29 12:04 2023-03-27 12:14
Reporter: Ringo Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: UWP
Summary: Feature Request: UWP ARM64 support
Description: Currently, Noesis provides uwp_arm, uwp_x86 and uwp_x86_64 binaries.
The missing piece is uwp_arm64, please add it.

My app is 64-bit only, and I would like to support ARM devices like Surface Pro X.
Such devices are not yet capable to emulate x64 code.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2149 [NoesisGUI] C# SDK minor always 2021-10-15 12:37 2023-03-27 12:14
Reporter: milo Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Textblock.IsHyphenationEnabled property does not work.
Description: Textblock.IsHyphenationEnabled property does not work.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007836)
jsantos   
2022-03-07 20:17   
https://android.googlesource.com/platform/external/hyphenation-patterns/


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1398 [NoesisGUI] Unity3D feature N/A 2019-01-23 11:20 2023-03-27 12:14
Reporter: Khonan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Feature Request : DatagridView
Description: DataGridView are not implemented and I use a lot of them ;)

Be great to get them exported ;)
Tags: DataGridView
Steps To Reproduce: Try to make a Datagridview in unity from an XAML :)
Additional Information:
Attached Files:
Notes
(0005416)
nokola   
2019-01-24 23:01   
Quick idea: You might be able to modify this source to self-implement DataGrid https://github.com/MicrosoftArchive/SilverlightToolkit/tree/master/Release/Silverlight5/SampleSource/Controls/Controls.Samples/DataGrid
(0005419)
Khonan   
2019-01-25 14:37   
Thanks, I'll have a look.

May be in the wpf source code too : https://github.com/dotnet/wpf
(0005420)
nokola   
2019-01-25 16:41   
good point!
(0007375)
Flem100@live.dk   
2021-08-23 14:52   
(Last edited: 2021-08-23 14:52)
I would also love to get Datagrid in Noesis. Does anyone have a working ported version they could share, or something similar even? (Would love to have autogenerated columns though)
I looked into the WPF source code for Datagrid. That's too difficult for me, sadly...

(0007376)
sfernandez   
2021-08-23 16:36   
Have you tried ListView?
(0007379)
Flem100@live.dk   
2021-08-24 12:04   
I actually thought it wasn't supported with the GridView inside. Mostly because your own example (Scoreboard) didn't use it. I have now tested the ListView with GridView and it works just fine. Now I need to figure a way to generate the columns based on the fields of the objects.
Am I so lucky that you already have an example of that (or just a hint perhaps) or do I need to use my own brain? :)
I started creating my own little control which basically worked but needs a lot of work so I would rather use an existing control and ListView should be the way. I just need to add the following code somehow:
objects = new List<Item>() { new Item { Id = 1, Name = "Item1" }, new Item { Id = 2, Name = "Item2" } };
            
            int currentRowIndex = 0;
            
            foreach (var obj in objects)
            {
                int currentColumnIndex = 0;
                g_Root.RowDefinitions.Add(new RowDefinition());
                foreach (PropertyInfo pi in obj.GetType().GetProperties())
                {
                    g_Root.ColumnDefinitions.Add(new ColumnDefinition());

                    TextBlock tb = new TextBlock();
                    tb.Text = obj.GetType().GetProperty(pi.Name).GetValue(obj).ToString();
                    g_Root.Children.Add(tb);
                    Grid.SetRow(tb, currentRowIndex);
                    Grid.SetColumn(tb, currentColumnIndex);
                    currentColumnIndex++;
                }
                currentRowIndex++;
            }
(0007381)
Flem100@live.dk   
2021-08-24 13:57   
(Last edited: 2021-08-25 14:28)
Okay it was fairly simple:

object obj = collectionOfWhateverTypeOfObjects.First();
gv_Data.Columns.Clear();
foreach (PropertyInfo pi in obj.GetType().GetProperties())
{
    var column = new GridViewColumn()
    {
           Header = pi.Name,
           DisplayMemberBinding = new Binding(pi.Name)
     };
     gv_Data.Columns.Add(column);
}
lv_Data.ItemsSource = collectionOfWhateverTypeOfObjects;

One problem though. It works fine on the Blend-side, but you seem to have another version of the Binding class which doesn't fit the normal used in DisplayMemberBinding.
To fix the problem I found this post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1868&p=12469&hilit=DisplayMemberBinding#p12469
That worked :)

(0007382)
sfernandez   
2021-08-25 12:25   
Great, thanks for sharing your solution.
(0008043)
colin14321   
2022-08-15 18:37   
Hi there,

The current project I am currently working on porting from WPF to Noesis utilizes a lot of datagrid. I am working on changing them to ListView, however I was wondering if the DataGrid has plans of being implemented in the future?

Thank you!
(0008044)
sfernandez   
2022-08-16 11:33   
Implementing DataGrid was not planned because using a ListView covers the same scenarios most of the time.
If you think having DataGrid is necessary for your project we can add this task for a future release after our next major version.
(0008046)
nokola   
2022-08-16 18:46   
Not having a DataGrid is OK with me - I implemented the functionality I needed with some combination of list/other views


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1376 [NoesisGUI] C++ SDK minor always 2018-12-18 14:14 2023-03-27 12:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Value returned by IValueConverter not converted to target type
Description: Binding should convert value returned by IValueConverter to the target type if there is a default type converter available.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1544
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1337 [NoesisGUI] C# SDK minor have not tried 2018-10-30 13:13 2023-03-27 12:14
Reporter: Djekke Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2  
Platform: Any
Summary: Error: Cannot implicitly convert type 'Noesis.Binding' to 'Noesis.BindingExpressionBase'
Description: Issue occurred, when I tried to create a simple converter for dynamic creation
of ListView columns from List<string>.
> DisplayMemberBinding = new Binding("[" + column + "]")

Steps to Reproduce:
public object Convert(object value, System.Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
    if (value is List<string> config)
    {
        var grdiView = new GridView();
        foreach (string column in config)
        {
            grdiView.Columns.Add(
                new GridViewColumn
                {
                    Header = column,
                    DisplayMemberBinding = new Binding("[" + column + "]")
                });
        }
        return grdiView;
    }
    return Binding.DoNothing;
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005319)
sfernandez   
2018-11-22 13:50   
In Noesis DisplayMemberBinding contains a BindingExpression, so you would need to do this:
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    if (value is List<string> config)
    {
        var gridView = new GridView();
        foreach (string column in config)
        {
            GridViewColumn col = new GridViewColumn { Header = column});
            BindingOperations.SetBinding(col, GridViewColumn.ColumnProperty, new Binding("[" + column + "]"));
            gridView.Columns.Add(col);
        }
        return gridView;
    }
    return Binding.DoNothing;
}


We will investigate how to expose the type of that property correctly as a Binding object for a future release.
(0006962)
Djekke   
2021-01-19 13:57   
Sorry for late response.
After creating this report I found a workaround for my case that uses entirely different approach and forgot about it.
Sadly, later I encountered this problem from different angle, but at that time I found solution on forum https://www.noesisengine.com/forums/viewtopic.php?t=1868
But now that solution doesn't work anymore too.
So, how am I supposed to dynamically create binding for DisplayMemberBinding property of GridViewColumn?
(0006963)
sfernandez   
2021-01-19 14:18   
(Last edited: 2021-01-19 14:19)
The code will look like this:
public class ProvideValueTarget : IServiceProvider, IProvideValueTarget
{
  public object TargetObject { get; set; }
  public object TargetProperty { get; set; }

  public object GetService(System.Type serviceType)
  {
        if (serviceType == typeof(IProvideValueTarget)) return this;
        return null;
  }
}


void UpdateColumnBinding(GridViewColumn column, string path)
{
  Binding binding = new Binding(path);
  column.DisplayMemberBinding = (BindingExpression)binding.ProvideValue(new ProvideValueTarget { TargetObject = null, TargetProperty = null });
}




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2392 [NoesisGUI] C++ SDK minor always 2022-08-02 21:16 2023-03-17 18:57
Reporter: AnKor Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Noesis::GUI::Shutdown complains about objects created in another thread
Description: Calling Noesis::GUI::Shutdown reports cross-thread access errors for various objects if Views were created (or theme loaded) in a different thread:

[NOESIS/I] Noesis Shutdown
[NOESIS/E] The calling thread (***) cannot access this DispatcherObject because a different thread (***) owns it

The issue has been discussed on the forum: https://www.noesisengine.com/forums/viewtopic.php?t=2664
"It is related to the control templates defined in the theme, there are some objects that are not correctly detached from the creation thread."
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Main-InitThread.zip (3,787 bytes) 2022-08-02 21:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1673&type=bug
Main-UpdateThread.zip (4,015 bytes) 2022-08-02 21:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1674&type=bug
Notes
(0008350)
AnKor   
2023-03-17 18:57   
Today I've got a very similar threading error, but this time it is more severe because it happens when using keyboard to move the Slider thumb.

Easily reproduced with the same Main-InitThread sample I already attached.
Just replace Main.cpp in the "Integration" sample with the one from the archive and change "#if 0" to "#if 1" at line 261 to enable all functionality.
Then run it, go to Video or Audio tab, click on any slider and try to move it by pressing left or right on the keyboard.
I'm getting 3 errors like this:
[NOESIS/E] The calling thread (6512) cannot access this InputBinding because a different thread (8296) owns it

Can you advice are these real errors or can be ignored?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2537 [NoesisGUI] Unity3D minor always 2023-03-15 01:31 2023-03-15 01:57
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version:  
Platform: Any
Summary: Create -> NoesisGUI -> UserControl ... Creates Circular Dependency
Description: See attached screenshot. Easy to fix, not a big deal.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (135,111 bytes) 2023-03-15 01:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1781&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2536 [NoesisGUI] Unity3D minor always 2023-03-15 00:58 2023-03-15 01:46
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version:  
Platform: Any
Summary: 3.2 RC1 Importer Warnings and Error
Description: The property 'importerOverride' in file: 'Assets/Samples/CustomRender/MainWindow.xaml.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: 64b4bcd3c7b059e478ddea3ed52ae78c
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: 5a320a62e80bfe9e4099f01825219764
ScriptedImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 2
  userData:
  assetBundleName:
  assetBundleVariant:
  script: {fileID: 11500000, guid: 588a2920a0444fa4db46ce8339acffd4, type: 3}


The property 'importerOverride' in file: 'Assets/Samples/Rive/Milky Boba.otf.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: 9cf577558a393f24191b72e03260cc6d
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: c6937578d324b79d2ca1725d010043d4
TrueTypeFontImporter:
  externalObjects: {}
  serializedVersion: 4
  fontSize: 16
  forceTextureCase: -2
  characterSpacing: 0
  characterPadding: 1
  includeFontData: 1
  fontNames: []
  fallbackFontReferences: []
  customCharacters:
  fontRenderingMode: 0
  ascentCalculationMode: 1
  useLegacyBoundsCalculation: 0
  shouldRoundAdvanceValue: 1
  userData:
  assetBundleName:
  assetBundleVariant:


The property 'importerOverride' in file: 'Assets/Samples/Rive/MainWindow.xaml.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: 12475109c4e4d0842acebf50b4d9bf8b
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: 5a320a62e80bfe9e4099f01825219764
ScriptedImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 2
  userData:
  assetBundleName:
  assetBundleVariant:
  script: {fileID: 11500000, guid: 588a2920a0444fa4db46ce8339acffd4, type: 3}


The property 'importerOverride' in file: 'Assets/Samples/WorldSpaceUILegacy/LayoutRoot.xaml.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: a908a70baf65a0942a7e1fbf0e0f05ab
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: 5a320a62e80bfe9e4099f01825219764
ScriptedImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 2
  userData:
  assetBundleName:
  assetBundleVariant:
  script: {fileID: 11500000, guid: 588a2920a0444fa4db46ce8339acffd4, type: 3}


The property 'importerOverride' in file: 'Assets/Samples/WorldSpaceUILegacy/WristPanel.xaml.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: 79f0cf888e537fb49861a48e07dc6a83
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: 5a320a62e80bfe9e4099f01825219764
ScriptedImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 2
  userData:
  assetBundleName:
  assetBundleVariant:
  script: {fileID: 11500000, guid: 588a2920a0444fa4db46ce8339acffd4, type: 3}


The property 'importerOverride' in file: 'Assets/Samples/WorldSpaceUILegacy/ObjectPanel.xaml.meta' was not parsed as a Scalar YAML value, please ensure this value is saved in the file as a Scalar value.
Outputting YAML:
fileFormatVersion: 2
guid: 1482e0c0aedb6294595c97c83b3cb14d
importerOverride:
  nativeImporterType: 2089858483
  scriptedImporterType:
    serializedVersion: 2
    Hash: 5a320a62e80bfe9e4099f01825219764
ScriptedImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 2
  userData:
  assetBundleName:
  assetBundleVariant:
  script: {fileID: 11500000, guid: 588a2920a0444fa4db46ce8339acffd4, type: 3}


Unexpected timestamp values detected. This can occur in H.264 videos not encoded with the baseline profile. Timestamps will be skewed to correct the playback for D:/Source/Noesis/My project/Assets/Samples/VideoEffect/Particles.mp4

[NOESIS/E] Assets/Samples/Rive/MainWindow.xaml(66,7): Font not found './#Milky Boba'
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at Noesis 3.2.0/Runtime/NoesisUnity.cs:360)
Noesis.GUI:LoadComponent (object,string) (at Noesis 3.2.0/Runtime/API/Core/NoesisGUI.cs:344)
NoesisUnity:LoadComponent (object,string) (at Noesis 3.2.0/Runtime/NoesisUnity.cs:273)
Rive.MainWindow:InitializeComponent () (at Assets/Samples/Rive/MainWindow.xaml.cs:26)
Rive.MainWindow:.ctor () (at Assets/Samples/Rive/MainWindow.xaml.cs:20)
(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure)
Noesis.Extend:CreateInstance (intptr,intptr) (at Noesis 3.2.0/Runtime/API/Core/Extend.cs:5723)
Noesis.GUI:LoadXaml (System.IO.Stream,string) (at Noesis 3.2.0/Runtime/API/Core/NoesisGUI.cs:292)
NoesisXaml:Load () (at Noesis 3.2.0/Runtime/NoesisXaml.cs:17)
NoesisPostprocessor/<>c__DisplayClass1_1:<OnPostprocessAllAssets>b__0 () (at Noesis 3.2.0/Editor/NoesisPostprocessor.cs:41)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()



Tags:
Steps To Reproduce: No idea if this is user error on my part. I'm just getting started w/ 3.2. I copied the samples folder into .\assets.
Additional Information:
Attached Files:
Notes
(0008347)
jsantos   
2023-03-15 01:04   
Unity version?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2534 [NoesisGUI] C++ SDK major always 2023-03-11 19:16 2023-03-13 12:36
Reporter: Ringo Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: ToolBar overflow is empty
Description: Was quickly checking the beta, looks good.
But there is a serious regression for ToolBar. When it is overflown, the overflow popup is always empty.
Works as expected in stable 3.1.6 version.
Tags:
Steps To Reproduce: 1. Create ToolBar
2. Fill with some items for toolbar to overflow
3. Open overflow
4. Observe empty popup
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2532 [NoesisGUI] Unity3D minor always 2023-03-09 23:33 2023-03-09 23:33
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version:  
Platform: Any
Summary: Previews fail on MacOS after changing scene
Description: As reported on the forums: https://www.noesisengine.com/forums/viewtopic.php?t=2879&sid=bc74bfb80390f609ee15378366eb324c

When using MacOS, the first time I select a XAML file from an example in 3.2.0b6 I can see a rendered preview. When I open another scene from another example and select a XAML file, no preview is rendered and I get a null texture passed to GUI.DrawTexture, ArgumentNullException: Value cannot be null.
Parameter name: mesh error. I don’t see this error under Windows.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2315 [NoesisGUI] C# SDK major always 2022-03-25 09:38 2023-03-09 19:46
Reporter: anton.sodergren_pdx Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: CollectionSortBehavior outputs empty collection in Blend
Description: When using CollectionSortBehavior to display collections as sorted, the displayed collection is completely empty when showing it in Blend. Even if the source collection of the behavior is populated with data, when an ItemsControl has its ItemsSource bound to the CollectionSortBehavior, the displayed list will be completely empty.

This works fine when displaying the GUI in the real application (in C++), but not in Blend.

See this forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2574&p=14055#p14051
Tags: Noesis.GUI.Extensions
Steps To Reproduce: 1. Add a CollectionSortBehavior to a window XAML file, like this:
<b:Interaction.Behaviors>
    <noesis:CollectionSortBehavior x:Name="SortBehavior"
        ItemsSource="{Binding MyCollection}"
        Comparer="{Binding MyComparer}" />
</b:Interaction.Behaviors>

2. Make sure that MyCollection is a collection populated with data and that MyComparer is a valid comparer object.

3. Bind the source collection to a list view, like this:
<ListView x:Name="MyListView" ItemsSource="{Binding MyCollection}" />

4. View the list view in the designer window, or start the application within Blend to preview how it looks.
5. Notice that the data of the collection is properly displayed in the list view.
6. Change the list view so that it is instead bound to the output of the CollectionSortBehavior, like this:
<ListView x:Name="MyListView" ItemsSource="{Binding SortedItems, ElementName=SortBehavior}" />

7. View how the list view looks and notice that the list view is now instead displayed as empty.
8. Start the real Noesis application.
9. Notice that the list view is now properly displayed, with sorting applied.
Additional Information:
Attached Files:
Notes
(0007882)
jsantos   
2022-03-28 20:16   
Sorry for the delay on this. Team is still traveling back from GDC.

By the way @sfernandez, I don't know if apart from fixing this we should also implement CollectionView at some point.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2531 [NoesisGUI] Unity3D major always 2023-03-08 17:11 2023-03-08 22:30
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis Post Processor Missing
Description: Please see enclosed screenshot. The Noesis post processor tag is missing.
Tags:
Steps To Reproduce: Upgraded to Noesis 3.1.7.
Additional Information:
Attached Files: image.png (165,680 bytes) 2023-03-08 17:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1779&type=bug
Notes
(0008333)
stonstad   
2023-03-08 17:12   
Nevermind, found by searching. I guess this is a Unity thing.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2528 [NoesisGUI] C++ SDK minor have not tried 2023-03-06 18:59 2023-03-07 00:09
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Suggestion: Storyboard::IsPlayingOrQueued
Description: Hi guys,

We have several situations where we want to check if the Storyboard is playing or is due to play during the next update. I think the following would work:

bool Storyboard::InternalIsPlayingOrQueued(FrameworkElement* target) const
{
    Controllables::ConstIterator it = mControllables.Find(target);
    if (it != mControllables.End())
    {
        Clock* clock = it->value;
        NS_ASSERT(clock != 0);
        return clock->GetCurrentState() == ClockState_Active || clock->GetCurrentState() == ClockState_Stopped;
    }

    return false;
}



I think checking for stopped clocks is enough since that's what they default to, and they will be set to activate during the next tick.

This is pretty useful when we want to kick off animations then later on run some conditional logic depending on whether the animations are currently playing or not.

Cheers

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008326)
jsantos   
2023-03-06 23:37   
Hi Steve, is there any plan to update to the stable 3.2 (out of beta planned for next week) ?
(0008327)
steveh   
2023-03-06 23:47   
Hey Jesús, I doubt it, we're at the stage in the project now where all third party libraries are pretty locked in stone. We'd have to have a good reason to upgrade at this point, e.g. critical bug fixes which can't be individually pulled from SVN.
(0008328)
jsantos   
2023-03-07 00:09   
Yes, that makes sense. Thanks for the information.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2418 [NoesisGUI] Inspector feature N/A 2022-09-13 11:42 2023-03-03 21:12
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Add an option to limit Inspector target to local applications only
Description: Currently Inspector "Connect to..." dialog will list all applications on the same network (subnet), which is useful for scenarios where remote inspection is necessary. But in a team environment where
- Several developers on the same network may use Inspector simultaneously
- Developers mostly use Inspector to debug local applications
the list will show too many similar targets, and it's unclear which application should be chosen as a target. It will be nice if there's an option to limit the list to local applications only.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: InspectorConnectToDialog.png (101,940 bytes) 2022-09-14 11:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1681&type=bug
Notes
(0008066)
jsantos   
2022-09-13 13:11   
Thanks for this report! Could you please attach a screenshot with what you see in the "Connect to..." dialog? Just to think possible solutions and also to improve UX.
(0008070)
satorp   
2022-09-14 11:11   
Here is a screenshot of the dialog depicting 3 different applications (different colors) being run on several machines. One possible solution is to add a checkbox to enable IP address filtering (only show address of local machine). It will be also helpful if we can sort the list (e.g. by clicking on the list headers).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2484 [NoesisGUI] C# SDK minor always 2023-01-04 14:22 2023-03-03 19:18
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: TextBlock.BaseLineOffset is not available
Description: TextBlock.BaselineOffset is not implemented and using it in xaml prints an error.
Tags:
Steps To Reproduce: Create a textblock and set BaselineOffset to any value.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2524 [NoesisGUI] C++ SDK minor always 2023-03-01 10:52 2023-03-01 11:08
Reporter: maherne Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version:  
Platform: Any
Summary: Add support for Visual Studio 2022 in Blend projects
Description: Currently none of the Blend projects, in our SDK and samples, support Visual Studio 2022, due to targeting .net framework 4.5 - which is out of support.

Fix this by selecting the .net framework version based on the Visual Studio version.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2521 [NoesisGUI] C# SDK major always 2023-02-23 17:06 2023-03-01 10:38
Reporter: voula_d Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.7  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Adding controls to canvas dynamically not working
Description: I'm trying to add controls to a canvas by dynamically loading xaml. But no controls are added to the canvas, or rather I can see that they are added as Children but never get rendered. I get the following error in the output: Null item added to UIElementCollection. The following link contains code that reproduces the issue.

https://drive.google.com/file/d/1XU4QjiElK47VUMmFRtn2_j2yXBDbcFxS/view?usp=sharing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008303)
sfernandez   
2023-02-23 19:40   
The error message indicates that you are trying to add a null object to the UIElement collection.
Debugging a bit your application I realized that you are redefining the UserControl type to point to NoesisUserControl:
using UserControl = Noesis.Portability.NoesisUserControl;

And the xaml you are dynamically loading is a plain UserControl, but when adding it to the Canvas you are casting to NoesisUserControl (because of the type redefinition), so the cast returns null. Changing the cast to UIElement for example will fix it:
theCanvas.Children.Add(child as UIElement);
(0008305)
voula_d   
2023-02-24 09:37   
You are absolutely right and I am sorry for the silly mistake. The sample now works but our production scenario is a lot more complex and it still does not work as expected, i.e. controls are not added to the canvas dynamically. I will try to reproduce our problem again and will get back to you. Thank you.
(0008317)
jsantos   
2023-03-01 10:38   
Marking this as solved. If necessary, please, open a new ticket with a more specific problem.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2334 [NoesisGUI] Unity3D minor always 2022-04-14 20:35 2023-02-28 12:31
Reporter: Oxlamon Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Windows
Summary: Bug in inventory system
Description: 1. Noesis GUI 3.1.4 installed.
2. Fresh github tutorials downloaded.
3. Two exceptions while run inventory sample.

[code]
[NOESIS/E] Binding failed: Path=IsDragOver, Source=InventoryViewModel(''), Target=Inventory.DropItemBehavior(''), TargetProperty=Inventory.DropItemBehavior.IsDragOver
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/NoesisUnity.cs:357)
Noesis.FrameworkElement:set_DataContext (object) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/API/Proxies/FrameworkElement.cs:534)
InventoryViewModel:Start () (at Assets/NoesisGUI/Samples/Inventory/InventoryViewModel.cs:312)

[NOESIS/E] Binding failed: Path=MoveFocus, Source=InventoryViewModel(''), Target=NoesisApp.PropertyChangedTrigger(''), TargetProperty=NoesisApp.PropertyChangedTrigger.Binding
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/NoesisUnity.cs:357)
Noesis.FrameworkElement:set_DataContext (object) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/API/Proxies/FrameworkElement.cs:534)
InventoryViewModel:Start () (at Assets/NoesisGUI/Samples/Inventory/InventoryViewModel.cs:312)
[/code]

Minimum xaml example:
[code]<UserControl x:Class="Inventory.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Inventory"
        xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
        x:Name="Root">

    <UserControl.Resources>
    <Style x:Key="Style.EquipSlot" TargetType="{x:Type ContentControl}">
        <Setter Property="noesis:StyleInteraction.Behaviors">
            <Setter.Value>
                <noesis:StyleBehaviorCollection>
                    <local:DropItemBehavior
                        IsDragOver="{Binding IsDragOver, Mode=OneWayToSource}"
                        DropCommand="{Binding DataContext.DropItem, ElementName=Root}"/>
                </noesis:StyleBehaviorCollection>
            </Setter.Value>
        </Setter>
    </Style>
    </UserControl.Resources>
</UserControl>
[/code]

give error:
[code]
[NOESIS/E] Binding failed: Path=IsDragOver, Source=InventoryViewModel(''), Target=Inventory.DropItemBehavior(''), TargetProperty=Inventory.DropItemBehavior.IsDragOver
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/NoesisUnity.cs:357)
Noesis.FrameworkElement:set_DataContext (object) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/API/Proxies/FrameworkElement.cs:534)
InventoryViewModel:Start () (at Assets/NoesisGUI/Samples/Inventory/InventoryViewModel.cs:312)
[/code]
Tags:
Steps To Reproduce: Minimum xaml example (for inventory project):
[code]<UserControl x:Class="Inventory.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:Inventory"
        xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
        x:Name="Root">

    <UserControl.Resources>
    <Style x:Key="Style.EquipSlot" TargetType="{x:Type ContentControl}">
        <Setter Property="noesis:StyleInteraction.Behaviors">
            <Setter.Value>
                <noesis:StyleBehaviorCollection>
                    <local:DropItemBehavior
                        IsDragOver="{Binding IsDragOver, Mode=OneWayToSource}"
                        DropCommand="{Binding DataContext.DropItem, ElementName=Root}"/>
                </noesis:StyleBehaviorCollection>
            </Setter.Value>
        </Setter>
    </Style>
    </UserControl.Resources>
</UserControl>
[/code]

give error:
[code]
[NOESIS/E] Binding failed: Path=IsDragOver, Source=InventoryViewModel(''), Target=Inventory.DropItemBehavior(''), TargetProperty=Inventory.DropItemBehavior.IsDragOver
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/NoesisUnity.cs:357)
Noesis.FrameworkElement:set_DataContext (object) (at D:/Downloads/NoesisGUI-Unity-3.1.4-Indie/Runtime/API/Proxies/FrameworkElement.cs:534)
InventoryViewModel:Start () (at Assets/NoesisGUI/Samples/Inventory/InventoryViewModel.cs:312)
[/code]
Additional Information:
Attached Files:
Notes
(0008275)
sfernandez   
2023-02-13 12:05   
Those are binding error logs (there is a bug related to those errors we have to fix), but they shouldn't affect the execution of the sample.
Is there anything else in the sample that is not working for you?
(0008276)
sfernandez   
2023-02-13 12:07   
Hi @miZyind, you also mentioned having trouble with this sample, anything else apart from the binding error logs?
(0008278)
miZyind   
2023-02-14 05:32   
Hello @sfernandez, I used to get the runtime error on v3.1.6.
When running the sample, only the background image appears on the screen without interactive objects.
However, I didn't record the error in detail at that time.
After I downloaded the latest v3.1.7, the sample worked properly with only the ignorable binding error left.
In short, this sample is working fine for me now, thanks for your help!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1613 [NoesisGUI] Unity3D feature N/A 2020-01-03 11:44 2023-02-27 17:59
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Expose OnRender
Description: To create Decorators without the OnRender method I devised a setup as explained here: [url]https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1420&p=8316&hilit=Decorator+OnRender#p8316[/url]
Unfortunately, this method only works partially, i.e. with static content there is no problem at all, but with dynamic content the control cannot be made to shrink to fit the content. I've tried numerous things to get it to work properly but I think I need to conclude that without the OnRender method custom Decorators will simply not work properly.
Tags: Decorator
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007212)
KeldorKatarn   
2021-05-03 14:36   
OnRender is also pretty important to create some custom panels and other controls in my experience. I've used it in several projects to create some additional containers that draw separators and other stuff. This is definitely something I might eventually need as well.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2523 [NoesisGUI] Unity3D feature N/A 2023-02-24 21:49 2023-02-27 11:50
Reporter: Aliakbar Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Implementing RichTextBox
Description: I want to implement a Text editor (something like Microsoft word) and I need RichTextBox
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2435 [NoesisGUI] C++ SDK feature N/A 2022-09-29 16:29 2023-02-26 17:28
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Add support for a second texture in custom Shader Brushes
Description: Right now only the texture corresponding to the Image associated to the brush can be samples in a custom shader.

We should extend this to, at least, support a secondary texture. Note that this texture will use the same UV coordinates than the first one.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008164)
jsantos   
2022-11-17 20:57   
Added a SetTexture method to BrushShader, this way, new texture dependency properties can be created in new brushes.

public static readonly DependencyProperty TextureProperty = DependencyProperty.Register(
    "Texture", typeof(ImageSource), typeof(NoiseBrush), new PropertyMetadata(null, OnTextureChanged));

private static void OnTextureChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if (d is NoiseBrush brush)
    {
        brush.SetTexture((ImageSource)e.NewValue, 0);
    }
}

The extra texture is passed in the t4 register:

Texture2D input: register(t4);
SamplerState inputSampler: register(s4);

half4 GetCustomPattern(in In i)
{
    return input.Sample(inputSampler, i.uv0);
}


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1848 [NoesisGUI] C++ SDK minor always 2020-11-26 17:47 2023-02-26 17:28
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for Google Stadia
Description: Implement support for Google Stadia
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2389 [NoesisGUI] C++ SDK feature N/A 2022-08-01 12:27 2023-02-23 18:44
Reporter: jsantos Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Implement Accessibility and AutomationProperties
Description: As a long time, .NET developer one of the things, I have loved about XAML is its under-the-covers support for UI Automation through the AutomationProperties https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.automation.automationproperties?view=winrt-22000 which in turn provides a ton of basic Accessibility support.

https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/
https://docs.microsoft.com/en-us/windows/win32/winauto/entry-uiauto-win32

Complying with Accessibility requirements like screen reader support and others is quite easy to achieve on many XAML platforms because of these AutomationProperties.
Another beneficial side effect of those properties is the ability to run a variety of off-the-shelf automation test tools against the applications.
Automated testing, and being able to use existing tools that are based on the UI Automation standards would be a very nice to have

Here are just a couple of examples of common tools that are commonly used on many projects that leverage the UI Automation standards and the AutomationProperties:

https://docs.microsoft.com/en-us/windows/win32/winauto/inspect-objects
https://docs.microsoft.com/en-us/windows/win32/winauto/ui-automation-verify

There are other standards that are also potentially relevant like this one for example:

https://docs.microsoft.com/en-us/compliance/regulatory/offering-wcag-2-1

Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
https://appium.io/
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2494 [NoesisGUI] Unity3D minor always 2023-01-17 05:07 2023-02-20 19:30
Reporter: ckfinite Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version:  
Platform: Any
Summary: Changing content from a DataTrigger causes a crash to desktop on destruction
Description: Taken from a larger example,
[code]
                            <Menu IsMainMenu="False">
                                <MenuItem ItemsSource="{Binding Items}">
                                    <MenuItem.ItemContainerStyle>
                                        <Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource MenuItem}">
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding Property}" Value="False">
                                                    <Setter Property="Header" Value="{Binding Header}"/>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding Property}" Value="True">
                                                    <Setter Property="Header">
                                                        <Setter.Value>
                                                            <TextBlock/>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </MenuItem.ItemContainerStyle>
                                </MenuItem>
                            </Menu>
[/code]
crashes Unity to desktop when it is destroyed (such as when the underlying viewmodel is changed). I suspect that the control created by the inactive setter is retained therein even after it is destroyed creating an invalid but retained reference that crashes the system upon its reuse. Refactoring this to use a datatemplate avoids the crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008283)
sfernandez   
2023-02-14 14:36   
I was unable to make Unity crash with latest version (3.1.7) of NoesisGUI.

Anyway, setting the Header this way won't work because the <TextBlock> element can only be the child of a single MenuItem. If I create a test using that Style then I get an error message indicating that: "Child already has a logical parent".

So the solution, as you already mentioned, is to use DataTemplates, that way a different visual tree for the header is generated from the template for each MenuItem.
Would it be ok to close this ticket?
(0008289)
ckfinite   
2023-02-15 15:06   
Yes, it's fine to close the ticket; I suspect that what was causing the crash was precisely they "has a logical parent" issue which wasn't correctly checked for in 3.0.12> Thank you for looking into it!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2282 [NoesisGUI] Unreal minor always 2022-02-14 19:08 2023-02-17 16:41
Reporter: lowprofile Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: [Unreal Editor] NoesisObjectWrapper cleanup interfering with view models data context cleanup
Description: We developed a way to create blueprint view models from XAML via custom "data context properties" elements.
When we do so, we pass to the property the path to the blueprint class and the property instantiates an instance of that class dynamically :



<UserControl x:Class="view.start_screen"
             common:DataContextProperty.DataContextBP="/Game/UI/Noesis/viewmodels/StartScreen/StartScreenViewModel.StartScreenViewModel_C">
</UserControl>

void FDataContextProperty::OnLoadedBP(Noesis::BaseComponent* const InObj, Noesis::RoutedEventArgs const& /*InArgs*/)
{
    Noesis::FrameworkElement* const Element = Noesis::DynamicCast<Noesis::FrameworkElement*>(InObj);
    checkf(Element != nullptr, TEXT("DataContextBP property can only be attached to only FrameworkElement"));
    Element->Loaded() -= OnLoadedBP;
    utils::FViewModelUtils::SetDataContext(Element, GetDataContextBP(Element).Str());
}

void FDataContextProperty::OnDataContextBPChanged(Noesis::DependencyObject* const InObj, Noesis::DependencyPropertyChangedEventArgs const& /*InArgs*/)
{
    Noesis::FrameworkElement* const Element = Noesis::DynamicCast<Noesis::FrameworkElement*>(InObj);
    checkf(Element != nullptr, TEXT("DataContextBP property can only be attached to only FrameworkElement"));
    if (Element->GetView())
    {
        utils::FViewModelUtils::SetDataContext(Element, GetDataContextBP(InObj).Str());
    }
    else
    {
        Element->Loaded() += OnLoadedBP;
    }
    Element->Initialized() += OnInitializedBP;
}



Now for those dynamically created blueprint view models to stay loaded, we have to keep a reference to them somewhere. To achieve that, we added a map in our parent NoesisInstance view that keeps references to all currently active blueprint view model instance. Each time we create a VM that way, we register it to that map so that it doesn't get garbage collected while that VM is in use :



Noesis::Ptr<Noesis::BaseComponent> FUIViewModelLocator::CreateViewModel(FString const& InBlueprintPath)
{
    checkf(!InBlueprintPath.IsEmpty(), TEXT("All BP view models should have a path"));
    UClass* BlueprintClass = LoadClass<UViewModelBase>(nullptr, *InBlueprintPath);
    if (BlueprintClass != nullptr)
    {
        UViewModelBase* BlueprintObj = NewObject<UViewModelBase>(GetTransientPackage(), BlueprintClass);
        Noesis::Ptr<Noesis::BaseComponent> DataContext = Noesis::Ptr<Noesis::BaseComponent>(NoesisCreateComponentForUObject(BlueprintObj));
        H13NoesisInstance->AddViewModelInstance(BlueprintObj);

        return DataContext;
    }
    UE_LOG(LogSysNoesis, Error, TEXT("Failed to load blueprint view model class at %s"), *InBlueprintPath);
    return nullptr;
}



But obviously we then have to clean this up. ie. if we assign a different BP data context to something, or if we just remove elements that have those BP data context assigned, we have to remove their respective entries from the map (and allow garbage collection to now operate on those objects that are now no longer in use).
To achieve this, we listen to the OnDestroy and OnPropertyChanged event on the element that the data context property is attached to. When those are called, we grab the element data context object as it was, remove it from the map, and reinstantiate a new one, in the case of the OnPropertychanged, for the new data context to assign.



void FDataContextProperty::OnDestroyBP(Noesis::DependencyObject* const InDependencyObject)
{
    Noesis::FrameworkElement* const Element = Noesis::DynamicCast<Noesis::FrameworkElement*>(InDependencyObject);
    checkf(Element != nullptr, TEXT("DataContextBP or DataContextBPShared property can only be attached to only FrameworkElement"));
    utils::FViewModelUtils::ClearDataContext(Element);
    Element->Destroyed() -= OnDestroyBP;
}

void FViewModelUtils::ClearDataContext(Noesis::FrameworkElement* const InFrameworkElement)
{
    checkf(InFrameworkElement != nullptr, TEXT("We need a valid Framework element to clear the context from"));
    Noesis::BaseComponent* const DataContext = InFrameworkElement->GetDataContext();
    // We might not have set any context on an element voluntarily if that element was for example created just for the UE editor (see other comments above)
    if (DataContext != nullptr)
    {
        UViewModelBase* const BlueprintObj = Cast<UViewModelBase>(NoesisCreateUObjectForComponent(DataContext));
        // the Noesis instance is itself a view model that doesn't derive from UViewModelBase and can still call this method
        if (BlueprintObj != nullptr)
        {
            BlueprintObj->GetH13NoesisInstance()->GetViewModelLocator()->DestroyViewModel(BlueprintObj);
        }
        InFrameworkElement->SetDataContext(nullptr);
    }
}

void FUIViewModelLocator::DestroyViewModel(UViewModelBase* const BlueprintObj)
{
    checkf(IsValid(BlueprintObj) && !BlueprintObj->IsUnreachable(), TEXT("Trying to destroy a null view model object"));
    BlueprintObj->OnDestruction();
    H13NoesisInstance->RemoveViewModelInstance(BlueprintObj);
}



Now the problem comes when we shutdown the game (ie. press stop in the editor or just close down the editor while the game is being played).
At that moment, we unload all our elements and all our UObjects at the same time. And when OnDestroy gets called on elements that are attached to a BP data context, that data context UObject has already been unloaded or is on the verge of being unloaded (ie. IsUnreachable returns true on it).
So the FViewModelUtils::ClearDataContext method above, that would normally call NoesisCreateUObjectForComponent to convert from the BaseComponent attached to our custom property to the actual UObject it contains, fails, because NoesisCreateUObjectForComponent actually returns null at that point. Even worse, it can sometimes fail to DynamicCast the component into a NoesisObjectWrapper, since the NoesisObjectWrapper::GetClassType() method only returns a valid type if its wrapped UObject is actually still valid. This leads to NoesisCreateUObjectForComponent actually trying to reconstruct a new NoesisObjectWrapper causing an exception.

To fix this, I added a new method to the NoesisTypeClass.h/cpp named NoesisHasUObjectForComponent.
This method essentially does what NoesisCreateUObjectForComponent checks at the beginning but leaves out the rest like this :



NOESISRUNTIME_API bool NoesisHasUObjectForComponent(Noesis::BaseComponent* Component)
{
    if (Component == nullptr)
        return false;

    NoesisObjectWrapper* Wrapper = Noesis::DynamicCast<NoesisObjectWrapper*>(Component);
    if (Wrapper != nullptr)
    {
        return (ObjectMap.FindKey(Wrapper) != nullptr);
    }

    return false;
}



So if the wrapped object is already unloaded and the ObjectMap was already cleaned up, or if the DynamicCast fails and the returned wrapper variable is null, we return false.
That way, I was able to change my initial FViewModelUtils::ClearDataContext method this way :



void FViewModelUtils::ClearDataContext(Noesis::FrameworkElement* const InFrameworkElement)
{
    checkf(InFrameworkElement != nullptr, TEXT("We need a valid Framework element to clear the context from"));
    Noesis::BaseComponent* const DataContext = InFrameworkElement->GetDataContext();

    // We might not have set any context on an element voluntarily if that element was for example created just for the UE editor (see other comments above)
    if (DataContext != nullptr)
    {
        // we can be clearing data context as the UObject is also being destroyed, in which case Noesis might have already cleared its NoesisObjectWrapper part
        // in that case, NoesisHasUObjectForComponent should return false
        if (NoesisHasUObjectForComponent(DataContext))
        {
            UViewModelBase* const BlueprintObj = Cast<UViewModelBase>(NoesisCreateUObjectForComponent(DataContext));
            // the Noesis instance is itself a view model that doesn't derive from UViewModelBase and can still call this method
            if (BlueprintObj != nullptr)
            {
                BlueprintObj->GetH13NoesisInstance()->GetViewModelLocator()->DestroyViewModel(BlueprintObj);
            }
        }

        InFrameworkElement->SetDataContext(nullptr);
    }
}



This made it now work safely on shutdown.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008294)
hcpizzi   
2023-02-17 16:41   
I've added a function NoesisFindUObjectForComponent that you could use similarly to your proposed NoesisHasUObjectForComponent.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2496 [NoesisGUI] Unity3D minor always 2023-01-27 20:54 2023-02-14 12:08
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: NoesisViewEditor.OnPreviewGUI Crash
Description: On app domain reload I am getting the following exception:

NullReferenceException: Object reference not set to an instance of an object
  at NoesisViewEditor.OnPreviewGUI (UnityEngine.Rect rect_, UnityEngine.GUIStyle background) [0x00076] in C:\Source\StellarConquest\StellarConquest.Utilities\Noesis\3.1.5\Editor\NoesisViewEditor.cs:215
  at UnityEditor.Editor.OnInteractivePreviewGUI (UnityEngine.Rect r, UnityEngine.GUIStyle background) [0x00001] in <f7044ab663d344a2badf1160e57d1c1d>:0
at UnityEditor.ObjectPreview.DrawPreview (UnityEditor.IPreviewable defaultPreview, UnityEngine.Rect previewArea, UnityEngine.Object[] targets) [0x00363] in <f7044ab663d344a2badf1160e57d1c1d>:0
  at UnityEditor.Editor.DrawPreview (UnityEngine.Rect previewArea) [0x00009] in <f7044ab663d344a2badf1160e57d1c1d>:0
  at UnityEditor.PropertyEditor.DrawPreviewAndLabels () [0x0050f] in <f7044ab663d344a2badf1160e57d1c1d>:0
  at UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clip

GUILayout: Mismatched LayoutGroup.repaint
Crash!!!
SymInit: Symbol-SearchPath: 'C:/Program Files/Unity/Hub/Editor/2022.2.1f1/Editor/Data/Mono;.;C:\Source\StellarConquest\StellarConquest.Presentation.Unity;C:\Source\StellarConquest\StellarConquest.Presentation.Unity\Library\BurstCache\JIT;C:\Program Files\Unity\Hub\Editor\2022.2.1f1\Editor;C:\Windows;C:\Windows\system32;', symOptions: 534, UserName: 'Shaun Tonstad'
Tags:
Steps To Reproduce: Encl. dump and error logs.
Additional Information:
Attached Files: Crash_2023-01-27_195208836.zip (904,513 bytes) 2023-01-27 20:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1739&type=bug
Notes
(0008282)
sfernandez   
2023-02-14 12:07   
The native crash was related to the texture corruption bug we fixed for 3.1.7 (issue 0002495).

The null reference exception in NoesisViewEditor can be fixed with the following patch:

-        GUI.Label(new Rect(rect_.x + 5, rect_.y + 5, rect_.width, rect_.height), view.Xaml.uri, _previewHeaderStyle);
+        string uri = view.Xaml != null ? view.Xaml.uri : "No XAML selected";
+        GUI.Label(new Rect(rect_.x + 5, rect_.y + 5, rect_.width, rect_.height), uri, _previewHeaderStyle);


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2495 [NoesisGUI] Unity3D crash always 2023-01-19 20:35 2023-02-14 12:05
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Any
Summary: Texture Corruption Built Assembly
Description: This is a revival of the prior bug concerning runtime corruption of textures imported and used in Noesis due to an issue with texture pointers. This time, the bug manifests in built Unity players. I tried reimporting all UI textures and assets. While that previously fixed the issue in the editor, the issue manifests in all builds. It's an instant crash for the game's player.

Encl. crash.dmp
Encl. player.log
Encl. screenshot of texture corruption.
Tags:
Steps To Reproduce: Encl. crash.dmp
Encl. player.log
Encl. screenshot of texture corruption.
Additional Information:
Attached Files: Stellar Conquest.zip (87,027 bytes) 2023-01-19 20:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1737&type=bug
Textures Corruption.jpg (1,235,147 bytes) 2023-01-19 20:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1738&type=bug
Editor Test Image.png (1,603,616 bytes) 2023-01-27 23:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1740&type=bug
Notes
(0008232)
stonstad   
2023-01-19 22:50   
Just adding a note here that with this particular bug, it isn't possible to create a working Unity player. I'm available to perform any/all troubleshooting necessary to resolve this issue, as it is a release blocker. Thanks.
(0008233)
stonstad   
2023-01-19 22:53   
The original issue w/ detail is here: https://www.noesisengine.com/bugs/view.php?id=2453

I tried a fresh Unity build but that did not work. This is happening in Unity 2022.2.1f1.
(0008235)
jsantos   
2023-01-20 11:48   
Is this using D3D12?
(0008238)
stonstad   
2023-01-20 14:45   
Initialize engine version: 2022.2.1f1 (4fead5835099)
Direct3D:
    Version: Direct3D 11.0 [level 11.1]
    Renderer: NVIDIA GeForce RTX 4080 (ID=0x2704)
    Vendor: NVIDIA
    VRAM: 16064 MB
    Driver: 31.0.15.2802
(0008239)
stonstad   
2023-01-21 22:17   
I think this raises an important question -- what is it that I am doing that is different, even potentially incorrect compared to other Noesis users?

1. Is it specific to Unity version, meaning that other Noesis users have not released a build using Unity 2022.2.x or later?
2. Is it due to the quantity and type of images I am referencing in my image resource dictionaries?
3. Is it a Unity bug that manifests rarely?

Jesus, should I run the scirpt the looks for texture pointer changes again, and have it dump to the log file within a build executable?
(0008240)
jsantos   
2023-01-24 18:31   
So far, I don't know why this is happening on your project and not in others projects.

I have been testing different scenarios today, I am unable to break anything (even using hundreds of textures).

So, first thing we need to do is making sure we are in the same scenario as 0002453, so yes, please, run the script to search for pointer changes and let's focus in one texture only for now.
(0008241)
jsantos   
2023-01-24 18:31   
Are you using more plugins that could interfering with us?
(0008242)
stonstad   
2023-01-25 00:00   
I'm not aware of any plugins that might affect texture handles. I'll run the previous script and report back here.
(0008243)
stonstad   
2023-01-27 16:19   
I'm working on this right now and I have some questions that might help me better identify a cause.

- When is the texture memory address assigned? i.e. is this a real memory address that is assigned upon load to GPU memory, or is this a Unity handle assigned on import?
- If the address is loaded incorrectly from the start, would I be able to detect a change?
- These textures currently exist in a folder within assets. They are not in \Resources, and they are not part of an asset bundle. Is this OK?
- Is there a way to get the texture handle from a Noesis ImageSource? This would let me cycle through all textures used in the UI and scan for handle changes.
(0008244)
stonstad   
2023-01-27 16:54   
The texture pointer does not appear to be changed -- but incorrect textures are shown. i.e. instead of a weapon I see a player's hat as a rectangle's image source.

Is there a way to reliably iterate through the resources in a resource dictionary?
(0008245)
stonstad   
2023-01-27 17:07   
Your answers to these questions will definitely help me out. In the interim, I am going to send over a stripped down project.
(0008246)
stonstad   
2023-01-27 20:21   
OK, the problem only manifests when images are created within a visual tree containing a top-level ViewBox which is programmatically sized. Still researching.
(0008247)
stonstad   
2023-01-27 20:25   
(Last edited: 2023-01-27 20:47)
This is likely not a Unity pointer issue. I think it is related to Noesis pointer arithmetic and how images (and underlying textures) are displayed in a visual tree with a transformation matrix.

My reproduction workflow is to have a visual tree with the following:

NoesisView -> UserControl -> ViewBox -> CustomUserControl -> WrapPanel -> { 100 Rectangles }

- CustomUserControl sets its width/height based on a desired size and scaling ratio. I don't use Noesis scaling because it wasn't available when I built my UI.
- If the rectangles have no brush set the compiled binary does NOT crash
- If the rectangles are assigned textures the compiled binary DOES crash. This occurs in the editor, sometimes. However, it is consistent in binaries.
- It appears that if the wrap panel does not exceed a certain dimension a crash does not occur.

** edit. This is not it. I have no idea why it selectively fails.
(0008249)
jsantos   
2023-01-28 02:01   
Thanks for the time creating this repro!
(0008252)
stonstad   
2023-01-30 22:56   
Were you able to reproduce the behavior with the test project?
(0008253)
stonstad   
2023-01-31 13:54   
It appears that disabling mipmap generation stops texture commingling and crashes.
(0008256)
jsantos   
2023-02-02 17:59   
We have been extremely busy with 3.2 Beta2 (planned for releasing today).

After that, we will start testing your project.

Thanks for your patience
(0008258)
sfernandez   
2023-02-03 21:09   
I'm working on your repro project, building the player with our library in debug.
Let's see if this provides some useful info.

I'll keep you informed.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2501 [NoesisGUI] C# SDK minor have not tried 2023-02-03 16:32 2023-02-09 18:11
Reporter: staublicht Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Data Tab for Sample Data does not show up in Blend for Visual Studio 2022
Description: Data Tab for Sample Data does not show up in Blend for Visual Studio 2022
Tags:
Steps To Reproduce: Open a project that has sample design data in VS 2022 Blend, like the Scoreboard demo
Additional Information:
Attached Files: vs2019.jpg (81,287 bytes) 2023-02-03 16:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1744&type=bug
Notes
(0008271)
sfernandez   
2023-02-09 18:11   
The Data panel was something that was initially available in VS 2022 only for .NET Framework projects (not in .NET projects).
But it seems Microsoft broke it in recent versions of VS 2022: https://developercommunity.visualstudio.com/t/triggers-and-data-window-not-available-in-blend-fo/1616950
And doesn't look as a priority for them to fix it.

Right now the solution is to stick to VS 2019.

We are also working on a long term solution, our own tool Noesis Studio, multiplatform, with better integration for Unreal/Unity and custom engines, and more Designer friendly.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2506 [NoesisGUI] Unity3D crash random 2023-02-08 18:34 2023-02-09 16:42
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis.XamlProvider:Noesis_RaiseXamlChanged Crashes
Description: I keep getting crashes from Noesis when I edit XAML and then alt-tab back to the Unity editor. It happens about 40% of the time that I edit XAML. It has happened before, but never this bad. I am working in XAML today and I am on my fifth crash in an hour.

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.XamlProvider:Noesis_RaiseXamlChanged <0x0011b>
      at Noesis.XamlProvider:RaiseXamlChanged <0x0016a>
      at NoesisXamlProvider:ReloadXaml <0x00182>
      at NoesisPostprocessor:ReloadXaml <0x00132>
      at <>c__DisplayClass1_1:<OnPostprocessAllAssets>b__0 <0x0038a>
      at UnityEditor.EditorApplication:Internal_CallUpdateFunctions <0x00327>
      at System.Object:runtime_invoke_void <0x00184>
=================================================================
Received signal SIGSEGV
Obtained 28 stack frames
0x00007ffecf79b53e (Noesis) MultiBindingExpression_UpdateSource
0x00007ffecf83c327 (Noesis) VirtualizationCacheLength_GetStaticType
0x00007ffecf84e9fc (Noesis) KeyboardFocusChangedEventArgs_OldFocus_get
0x00007ffecf84e95f (Noesis) KeyboardFocusChangedEventArgs_OldFocus_get
0x00007ffecf8110b7 (Noesis) Noesis_RenderDevice_SetRenderTarget
0x00007ffecf811e27 (Noesis) Noesis_RenderDevice_SetRenderTarget
0x00007ffecf8ad0e4 (Noesis) Noesis_RaiseTextureChanged
Tags:
Steps To Reproduce: Encl. Crash Dump and Editor Logs
Additional Information:
Attached Files: Crash_2023-02-08_173044850.zip (796,286 bytes) 2023-02-09 00:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1751&type=bug
Crash_2023-02-08_224856654.zip (1,104,261 bytes) 2023-02-09 00:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1752&type=bug
Crash_2023-02-08_170327742.zip (714,752 bytes) 2023-02-09 00:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1753&type=bug
Notes
(0008263)
sfernandez   
2023-02-08 18:47   
Could you please attach the crash dumps?
(0008264)
stonstad   
2023-02-09 00:35   
(0008265)
stonstad   
2023-02-09 00:36   
(0008266)
stonstad   
2023-02-09 00:37   
(0008268)
stonstad   
2023-02-09 16:42   
I'm on 3.1.7. I'll report back if this behavior continues.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2473 [NoesisGUI] C# SDK major always 2022-11-30 13:31 2023-02-08 13:04
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Any
Summary: OpenGLRenderDevice doesn't have sRGB parameter in C# constructor
Description: RenderDeviceGL constructor in C# is parameterless, even though in native SDK constructor we can determine if we want to use sRGB or not.
Would it be possible to add this parameter to the C# constructor? We need this feature for our game.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2504 [NoesisGUI] C++ SDK feature always 2023-02-07 18:46 2023-02-07 20:06
Reporter: Logris Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Windows
Summary: RiveControl (Mouse Events)
Description: Add mouse message processing to RiveControl
https://www.noesisengine.com/forums/viewtopic.php?t=2858

p.s. found a typo in RiveControl
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files: download.png (2,834 bytes) 2023-02-07 18:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1745&type=bug
Typo.png (13,822 bytes) 2023-02-07 18:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1746&type=bug
Notes
(0008260)
Logris   
2023-02-07 18:50   
(0008262)
sfernandez   
2023-02-07 20:06   
Thanks for pointing out the bug in GetState(), I've fixed it too.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2366 [NoesisGUI] C++ SDK feature always 2022-06-27 21:09 2023-02-07 20:05
Reporter: ext.smichalak Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Any
Summary: Display::Close() for PlayStation and Xbox
Description: Regarding this forum post: https://www.noesisengine.com/forums/viewtopic.php?t=2639 we would like to kindly ask you to implement `Display::Close()` for PlayStation and Xbox. We don't use this in production, it's needed for our test apps only. Thank you!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1704 [NoesisGUI] C# SDK minor sometimes 2020-05-27 14:08 2023-02-02 17:31
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Errors spam on NoesisGUI Shutdown
Description: Hi guys,
we're still using the 3.0.0 RC6 build and why investigating some logs with the game stuck on exit I've noticed that sometimes there is a massive dump of entries like:
The calling thread (18460) cannot access this object (TextBlock) because a different thread owns it (12484)
The calling thread (18460) cannot access this object (ContentPresenter) because a different thread owns it (12484)
The calling thread (7052) cannot access this object (View) because a different thread owns it (12484)

I guess it's related to the .NET finalizer thread.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006409)
jsantos   
2020-05-28 11:12   
(Last edited: 2020-05-28 11:12)
And I assume you don't have a thread (12484) that is accessing a view created in a different thread , do you?

(0006411)
ai_enabled   
2020-05-28 16:03   
@jsantos, I'm certain this cannot be the case. Our game engine is mostly single-threaded. Multiple threads are used only to load assets and perform similar loading tasks that don't affect UI or logic. The rest are kept in the main thread to keep me sane :-)

Alas, I cannot reproduce this issue. I've searched my own logs folder (with two dozens of log files for the past two weeks) and found only a single log file where this issue appeared. And it never appeared in the debug version of the game (there is a hundred of log files for the past month)...so it's very random. I will update the task when I gather more info.
(0006429)
jsantos   
2020-06-08 14:08   
12484, 18460 are numbers we get from the current thread ID. So I am 99% confident Noesis objects were accessed from those threads. I am not sure if we could have a bug here @sfernandez

It would be really helpful if you could dump all your thread ids to the log.
(0006430)
ai_enabled   
2020-06-08 14:23   
Could it be that the .NET finalizer thread is accessing these objects during the finalization stage? It's happening during the application shutdown only (and it's a very rare/random issue).
I will add the logging of all the thread IDs on shutdown if I notice that this issue continues.
(0006431)
jsantos   
2020-06-08 14:26   
Yes, that could be the reason and I would say it is a bug @sfernandez
(0006432)
sfernandez   
2020-06-08 14:34   
(Last edited: 2020-06-08 14:39)
Unless we have a bug, all objects are released in the main frame. When a C# proxy is destroyed in the finalizer thread we enqueue the release of its reference to occur always in the main thread.
Perhaps these errors are unveiling another kind of bug. If you can provide a game build that generates those random errors I can take a look.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2499 [NoesisGUI] C++ SDK minor always 2023-02-02 11:59 2023-02-02 17:22
Reporter: sckriel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Read-only TextBox accepts whitespace
Description: If a TextBox's "IsReadOnly" property is set to True, you can still enter whitespace to change the string.
Tags:
Steps To Reproduce: Load the following XAML snippet:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel>
    <TextBox x:Name="__text__" Text="This is a test" IsReadOnly="True" Height="30" Width="150" AcceptsReturn="True" AcceptsTab="True"/>
    <TextBlock Text="{Binding Path=Text, ElementName=__text__}"/>
  </StackPanel>
</Grid>

You will be able to add spaces, line breaks and tab spaces to the textbox.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2497 [NoesisGUI] C++ SDK minor always 2023-01-30 08:56 2023-02-02 17:17
Reporter: sckriel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Flow Direction layout incorrect
Description: We’ve noticed something strange about how Noesis implements the Flow Direction property. This occurs if you are setting flow direction on a panel and on its children.

If the Flow Direction properties are set during initialization, the behaviour is correct. However, if the Flow Direction is changed afterwards, the result is not correct. Instead of repeating the layout algorithm, the content of the panel is simply flipped horizontally.

A XAML file illustrating the problem is attached. The combo box changes the flow direction of the third line. When this is changed to RightToLeft, I expect the third line to match the second line. Instead, it is simply flipped horizontally.
Tags:
Steps To Reproduce: 1. Load the attached XAML file.
2. Change the combo box to "RightToLeft"
Additional Information:
Attached Files: FlowDirectionBug.xaml (1,638 bytes) 2023-01-30 08:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1741&type=bug
after.png (9,953 bytes) 2023-01-30 08:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1742&type=bug
before.png (9,940 bytes) 2023-01-30 08:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1743&type=bug
Notes
(0008250)
sfernandez   
2023-01-30 10:48   
Hi Steven,

FlowDirection is not supported in 3.1. We implemented full support for FlowDirection and RTL languages (like arabic) in 3.2 version.
Can I ask what are you trying to accomplish by using the FlowDirection property? maybe if it is something simple it can be achieved in a different way without upgrading to 3.2 version yet.
(0008255)
sfernandez   
2023-02-02 17:17   
Ok, thanks for the explanation, should we close this issue then?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2427 [NoesisGUI] C++ SDK feature N/A 2022-09-21 13:40 2023-02-01 17:45
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Improvement to memory callbacks
Description: Right now there are a few annoyances in our memory callbacks that must be fixed:

- allocSize() callback is not easy to implement by many clients. We should remove this and keep the size internally when memory tracking is active. We should also offer a method to disable memory tracking at runtime (for clients without source code).
- realloc() should provide the oldsize too to help customers with advanced allocators

We should also expose a category enum for each allocator to classify memory usage stats.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1894 [NoesisGUI] C# SDK feature N/A 2021-01-20 15:48 2023-02-01 16:33
Reporter: peter_e-h_easylaser Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Inspector support for macOS
Description: Being able to run Inspector in macOS would be great.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2486 [NoesisGUI] C++ SDK minor always 2023-01-05 14:56 2023-01-26 14:35
Reporter: adriano Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Windows
Summary: Bezier and arc strokes do not emit Mouse Events
Description: Hi,

Bezier Paths that only contain Stroke (not Filled) do not emit Mouse Events.
Probably related to this issue: https://www.noesisengine.com/bugs/view.php?id=2060
Tags: C++, Hittest
Steps To Reproduce: - Create a Bezier Path that only contains Stroke
- Add a MouseDown event to it
- Run the application and try to click it - The event will not be fired
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2060 [NoesisGUI] C# SDK minor always 2021-07-14 21:21 2023-01-26 14:33
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: TouchDown not fired for a touch in the Arc part of a Path
Description: We noticed that touch down is not triggered in arcs, like the arc part of this path:
m 75,75 l 52.5,52.5 a 70,75 45 0 1 -105,0 z
 
Seen here:
SVG Path Visualizer (svg-path-visualizer.netlify.app)
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2453 [NoesisGUI] Unity3D crash random 2022-11-05 20:25 2023-01-20 11:45
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: DragEventArgs_GetAllowedEffectsHelper Crash
Description: Crash occurs randomly without user input. Encl. crash.dmp.
Tags:
Steps To Reproduce: ========== OUTPUTTING STACK TRACE ==================

0x00007FF875AD2DC8 (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FF875AD307B (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FF875A53C44 (Noesis) Noesis_RenderDeviceD3D12_WrapTexture
0x00007FF875A52B45 (Noesis) Noesis_RegisterLogCallback
0x00007FF8758B289C (Noesis) NullableSize_GetStaticType
0x00007FF875ABA053 (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FF875ABA1DE (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FF87581EF68 (Noesis) Uri_GetStaticType
0x00007FF87590E394 (Noesis) MultiBindingExpression_UpdateSource
0x00007FF87590CAA8 (Noesis) MultiBindingExpression_UpdateSource
0x00007FF875A5148F (Noesis) Noesis_RegisterLogCallback
0x00007FF7575FA72A (Unity) GfxDeviceWorker::RunCommand
0x00007FF75760183D (Unity) GfxDeviceWorker::RunExt
0x00007FF757601958 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF755C92FC7 (Unity) Thread::RunThreadWrapper
0x00007FF9A997244D (KERNEL32) BaseThreadInitThunk
0x00007FF9AABCDFB8 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
Additional Information:
Attached Files: crash.dmp (3,568,185 bytes) 2022-11-05 20:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1702&type=bug
Editor.log (1,817,298 bytes) 2022-11-05 20:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1703&type=bug
029a3290-d41d-415b-859c-9335aaaaf4ba.png (152,480 bytes) 2022-11-07 15:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1706&type=bug
image.png (87,334 bytes) 2022-11-07 16:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1708&type=bug
TexturePointerCheck.cs (634 bytes) 2022-11-07 20:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1709&type=bug
Editor-2.log (59,638 bytes) 2022-11-07 20:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1710&type=bug
image-2.png (1,895,870 bytes) 2022-11-07 20:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1712&type=bug
Notes
(0008115)
sfernandez   
2022-11-07 11:14   
(Last edited: 2022-11-07 11:17)
Hi, this crash and the one in issue 0002454 both happen when loading the following texture asset:
Assets/User Interface/Images/engineering/029a3290-d41d-415b-859c-9335aaaaf4ba.png

Do you know if there is anything in particular with that texture?
Were you updating the texture when those crashes occur?
Is this crash happening also with 3.1.4 version?
(0008116)
stonstad   
2022-11-07 15:35   
(Last edited: 2022-11-07 15:36)
I can confirm the asset exists. It is not corrupt because I can open it in third-party image editors, and it has historically worked for a year+. However, this UI element normally appears in a screen that is affected by the shared bug referenced above. The graphics corruption is somehow related.
(0008117)
stonstad   
2022-11-07 15:37   
It may be related to Unity version. I downgraded to 3.1.3 and the corruption persists. The crashes stopped (coincidence) but I ran into a separate scrolling bug, and I upgraded back to 3.1.5.
(0008119)
jsantos   
2022-11-07 15:39   
I assume this is not going to be possible, but... are you able to reproduce this in a smaller scenario?
(0008120)
stonstad   
2022-11-07 15:51   
Hard to say. I'm working to isolate it right now, in context of the game. Here's the XAML for the image:

    <ImageBrush x:Key="029a3290-d41d-415b-859c-9335aaaaf4ba" ImageSource="Images/engineering/029a3290-d41d-415b-859c-9335aaaaf4ba.png" />
(0008121)
stonstad   
2022-11-07 16:05   
Strangely, I am seeing incorrect images/textures shown. That image of a station blueprint cannot possibly appear on this screen. It is highly likely that incorrect texture memory addresses are being referenced within Noesis.
(0008122)
stonstad   
2022-11-07 16:06   
Hopefully I am not sending too many messages. Maybe you have a discord channel? Anyway, these images are presented via an ImageBrush pointing to a resource.

object resource = root.TryFindResource(resourceKey);
ImageBrush imageBrush = resource as ImageBrush;
(0008123)
stonstad   
2022-11-07 16:07   
Also worth nothing -- every time I load the screen the image shown above i.e. shields switches to a random image.
(0008124)
stonstad   
2022-11-07 16:10   
These images (which are loaded into image brushes via merged resource dictionaries. I am thinking this is where the texture addresses are getting messed up.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Packages/com.noesis.noesisgui/Theme/NoesisTheme.DarkBlue.xaml"/>
        <ResourceDictionary Source="/Packages/com.noesis.noesisgui/Theme/NoesisTheme.Styles.xaml"/>

        <ResourceDictionary Source="ResourcesImages.xaml"/> ********** HERE
        <ResourceDictionary Source="ResourcesCommon.xaml"/>
        <ResourceDictionary Source="ResourcesTheme.xaml"/>

    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

Do you have any insight into how to validate if Unity is doing what your texture loading logic expects?
(0008126)
stonstad   
2022-11-07 16:28   
OK, this is the end of the line. If I disable the following code the crashes stop. These image brushes are no longer populated, which is where the behavior manifests.

object resource = root.TryFindResource(resourceKey);
if (resource == null)
   return null;
ImageBrush imageBrush = resource as ImageBrush;

// subsequent access to imageBrush causes crash when texture memory/address is incorrect!
(0008127)
stonstad   
2022-11-07 17:21   
Confirmed it is not caused by a Unity upgrade. Behavior occurs in 2022.1.20f1 and 2021.3.13f1. Issue is manifest in UserControl.TryFindResource(resourceKey)

Please let me know if you have a debug build you would like me to try, as I am actively developing today. Thanks.
(0008128)
jsantos   
2022-11-07 18:08   
Thanks for the details!

I think I have an idea of what's going on here. Probably, Unity is changing the internal low-level native pointer of textures, whenever all the memory is consumed. By the documentation this shouldn't happen (or at least there is no way to know when it happens, except for when the pixel data of a Texture object is modified, and I think this not your case).

To verify this, could you please log the output of Texture.GetNativeTexturePtr for the problematic texture, every frame and see if it changes whenever we crash?
(0008129)
stonstad   
2022-11-07 19:28   
Is there a particular approach you would like me to use to obtain a handle to the texture from the image source?

I have:

object resource = root.TryFindResource(resourceKey);
ImageBrush imageBrush = resource as ImageBrush;

I'm google searching to see how to obtain the underlying texture pointer.
(0008130)
stonstad   
2022-11-07 19:35   
To clarify the above, I am not directly creating a texture. I am loading an image source from a XAML dictionary. I'll try to see if I can find the associated Unity texture.
(0008132)
jsantos   
2022-11-07 19:50   
Yeah, that was my suggestion. Just create a monobehaviour with a Texture property, set the value to the problematic texture and dump the GetNativeTexturePtr per frame till you crash your game.
(0008133)
stonstad   
2022-11-07 20:01   
(Last edited: 2022-11-07 20:01)
The pointer address changes after Unity's start method is invoked. See sample script and output.

Texture bbcadff4-ef43-4152-9626-bac7a57d2967 has pointer 2084922559920
UnityEngine.Debug:Log (object)
TexturePointerCheck:Start () (at Assets/TexturePointerCheck.cs:14)
(Filename: Assets/TexturePointerCheck.cs Line: 14)

2084922559920 != 2087889289776
UnityEngine.Debug:LogError (object)
TexturePointerCheck:Update () (at Assets/TexturePointerCheck.cs:22)
(Filename: Assets/TexturePointerCheck.cs Line: 22)

*edited to include missing log text.

OK, what's next?
(0008135)
stonstad   
2022-11-07 20:04   
Unity Docs. "Note: When you use the Unity APIs to modify the pixel data of a Texture object, it changes the underlying graphics API native pointer. Call GetNativeTexturePtr to get the new native pointer."

OK, I am looking to see if I modify it anywhere. I don't believe I am.
(0008136)
stonstad   
2022-11-07 20:08   
(Last edited: 2022-11-07 20:09)
I am not finding any code which indicates this texture or any of the ones affected are modified. What can I do next?
(0008137)
jsantos   
2022-11-07 20:17   
Could you check if the pointer is changing only for textures that crash?
(0008138)
stonstad   
2022-11-07 20:26   
It is easy to see which ones have modified pointers because they visually glitch or show the wrong texture data.

Textures that are assigned in XAML work OK:
<Rectangle Fill="{StaticResource Starpedia_Down}" Width="150" Height="133">

Textures that are loaded dynamically based on player inventory, using UserControl.TryFindResource(resourceKey) appear to all fail.
(0008139)
stonstad   
2022-11-07 20:33   
(Last edited: 2022-11-07 20:34)
Please ignore this graphic. It does not show any errors. I did not mean to attach it.
(0008140)
stonstad   
2022-11-07 20:35   
Please also disregard: "Textures that are loaded dynamically based on player inventory, using UserControl.TryFindResource(resourceKey) appear to all fail. I'm not sure this is the case.
(0008141)
jsantos   
2022-11-07 20:35   
So, only the images located at "ResourcesImages.xaml" have problems?

Could you check if "ResourcesImages.xaml" has all images as dependencies? (in the Unity Inspector of the XAML)
(0008142)
stonstad   
2022-11-07 20:41   
I reimported all images and the error is not occurring. Still checking/confirming.
(0008143)
stonstad   
2022-11-07 20:43   
Yes, ResourcesImages.xaml does appear to have all images loaded. I do not know what it looked like when the error was manifesting. I am no longer getting any errors. Everything is working as intended. The fix appears to be reimporting all images. I should have tried this sooner.
(0008144)
stonstad   
2022-11-07 20:47   
I'm good to close this issue. Source control is not showing any changed files other than my unity scene after reimporting all images. Is it correct to say that the texture pointer is stored in the v2 asset database?
(0008145)
jsantos   
2022-11-07 20:47   
So, your TexturePointerCheck is no longer detecting changes in the pointers?
(0008146)
stonstad   
2022-11-07 20:58   
Yes, that is correct. The same script referencing the same texture no longer shows a change during runtime.
(0008149)
jsantos   
2022-11-09 16:25   
Probably, the texture was imported in an old format, and Unity was upgrading it, loading it again in another pointer. This could explain why rebuilding the texture fixed the issue. Anyway, I am contacting Unity to get more information about this.

Closing for now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2475 [NoesisGUI] C++ SDK crash have not tried 2022-12-12 14:40 2023-01-19 19:33
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Any
Summary: Crash destroying template with IsMouseOver triggers
Description: crash of freeze on destroy of template with mouseenter triggers
we currently have an itemscontrol that crashes on removal of an element, when we spam the button inside that element

the child element has a grid with a rectangle and an ellipse inside , but grid and rectangle can be set to collapsed with triggers
Tags:
Steps To Reproduce: <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Visibility" Value="Visible" TargetName="hover"/>
                        </Trigger>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2492 [NoesisGUI] C++ SDK crash always 2023-01-13 19:38 2023-01-19 10:10
Reporter: jack.barkov Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Windows
Summary: Noesis::TextBox::GetRangeBounds() - Crash
Description: I have a hard to reproduce problem happening in my application.

My test app is a chat, where you press enter, a TextBox is displayed, the user types a text and presses enter to send.

Sometimes when the user does this, the crash happens on:
Noesis.dll!Noesis::TextBox::GetRangeBounds()

Then I tried to reproduce in the noesis examples until I managed to reproduce in the c++ sample.login example.

To reproduce basically apply the patch below and run the program that you will simulate what happens in my program. Here the crash happens in a few seconds after opening.

Stacktrace:

     Noesis.dll!Noesis::TextBox::GetRangeBounds() + 6 bytes Unknown
     [Frames below may be incorrect and/or missing, no symbols loaded for Noesis.dll]
> NoesisApp.dll!TsfTextStore::GetTextExt(unsigned long vcView=0, long acpStart=0, long acpEnd=0, tagRECT * prc=0x012fee14, int * pfClipped=0x012fedcc) Line 654 C++
     TextInputFramework.dll!CACPWrap::GetTextExt(unsigned long,struct IAnchor *,struct IAnchor *,struct tagRECT *,int *) Unknown
     TextInputFramework.dll!CContextView::GetTextExt(unsigned long,struct ITfRange *,struct tagRECT *,int *) Unknown
     TextInputFramework.dll!CInputContextAdapter::GetLayoutBounds(unsigned int,struct EditControlRange const &,struct TextRect *,struct TextRect *) Unknown
     TextInputFramework.dll!CTSF3LayoutQuery::Execute(struct IInputContextAdapter *) Unknown
     TextInputFramework.dll!CInputContextAdapter::_ExecuteOperation(class CTSF3Operation *,bool) Unknown
     TextInputFramework.dll!CInputContextAdapter::GetLayoutBounds(struct EditControlRange,struct TextRect *,struct TextRect *) Unknown
     TextInputFramework.dll!CTextInputClientOwnerAsync::GetLayoutBoundsAsync(struct EditControlRange) Unknown
     TextInputFramework.dll!TextInputClient::UpdateLayoutInfo(unsigned int,bool) Unknown
     TextInputFramework.dll!TextInputClient::EditControlLayoutChanged(unsigned int) Unknown
     TextInputFramework.dll!<lambda>(void)() Unknown
     TextInputFramework.dll!CTextInputClientFreeThread::RunOrDispatch(unsigned int,class std::function<long >,bool) Unknown
     TextInputFramework.dll!CTextInputClientFreeThread::EditControlLayoutChanged(unsigned int) Unknown
     TextInputFramework.dll!CInputContextAdapter::OnEditSessionEnded(unsigned long,struct ITfEditRecord *,bool) Unknown
     TextInputFramework.dll!CInputContext::_NotifyEndEdit(void) Unknown
     TextInputFramework.dll!CInputContext::_SynchAppChanges(unsigned long) Unknown
     TextInputFramework.dll!CInputContext::OnLockGranted(unsigned long) Unknown
     TextInputFramework.dll!CACPWrap::OnLockGranted(unsigned long) Unknown
     NoesisApp.dll!TsfTextStore::RequestLock(unsigned long dwLockFlags=2, HRESULT * phrSession=0x012ff1a4) Line 318 C++
     TextInputFramework.dll!CACPWrap::RequestLock(unsigned long,long *) Unknown
     TextInputFramework.dll!SafeRequestLock(struct ITextStoreAnchor *,unsigned long,long *) Unknown
     TextInputFramework.dll!CInputContext::OnLayoutChange(enum __MIDL___MIDL_itf_textstor_0000_0000_0002,unsigned long) Unknown
     TextInputFramework.dll!CACPWrap::OnLayoutChange(enum __MIDL___MIDL_itf_textstor_0000_0000_0002,unsigned long) Unknown
     NoesisApp.dll!TsfTextStore::OnLayoutChanged() Line 198 C++
     NoesisApp.dll!TsfTextStore::OnScrollChanged(Noesis::BaseComponent * __formal=0x1a77ab28, const Noesis::RoutedEventArgs & __formal={...}) Line 1035 C++
     NoesisApp.dll!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::MemberFuncStub<TsfTextStore,void (__thiscall TsfTextStore::*)(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>=0x1a77ab28, const Noesis::RoutedEventArgs & <args_1>={...}, const void * __formal=0x012ff458, bool(*)(const void *) __formal=0x79599b20) Line 473 C++
     Noesis.dll!Noesis::UIElement::NotifyHandlers() + 140 bytes Unknown
     Noesis.dll!Noesis::UIElement::BubblingEvent() + 90 bytes Unknown
     Noesis.dll!Noesis::ScrollViewer::OnLayoutUpdated() + 956 bytes Unknown
     Noesis.dll!Noesis::UIElement::RaiseEvent() + 100 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 1867 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 3086 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 2669 bytes Unknown
     Noesis.dll!Noesis::Visual::GetContentBoundsCore() + 5163 bytes Unknown
     NoesisApp.dll!NoesisApp::Window::Render(double time=0.94558699999999996) Line 213 C++
     NoesisApp.dll!NoesisApp::Application::Tick(double time=0.94558699999999996) Line 217 C++
     NoesisApp.dll!NoesisApp::ApplicationLauncher::OnTick(double time=0.94558699999999996) Line 116 C++
     NoesisApp.dll!NoesisApp::DisplayLauncher::Run::__l2::<lambda_1>::operator()(NoesisApp::Display * __formal=0x015d6c00) Line 42 C++
     NoesisApp.dll!Noesis::Delegate<void __cdecl(NoesisApp::Display *)>::FunctorStub<`NoesisApp::DisplayLauncher::Run'::`2'::<lambda_1>>::Invoke(NoesisApp::Display * <args_0>=0x015d6c00) Line 432 C++
     Samples.Login.exe!Noesis::Delegate<void __cdecl(NoesisApp::Display *)>::operator()(NoesisApp::Display * <args_0>=0x015d6c00) Line 172 C++
     Samples.Login.exe!Noesis::Delegate<void __cdecl(NoesisApp::Display *)>::MultiDelegate::Invoke(NoesisApp::Display * <args_0>=0x015d6c00) Line 576 C++
     NoesisApp.dll!Noesis::Delegate<void __cdecl(NoesisApp::Display *)>::operator()(NoesisApp::Display * <args_0>=0x015d6c00) Line 172 C++
     NoesisApp.dll!NoesisApp::Win32Display::EnterMessageLoop(bool runInBackground=false) Line 482 C++
     NoesisApp.dll!NoesisApp::DisplayLauncher::Run() Line 47 C++
     Samples.Login.exe!NsMain(int argc=1, char * * argv=0x015204c8) Line 71 C++
     Samples.Login.exe!WinMain(HINSTANCE__ * __formal=0x00ed0000, HINSTANCE__ * __formal=0x00000000, char * __formal=0x0151a01e, int __formal=10) Line 36 C++
     Samples.Login.exe!invoke_main() Line 107 C++
     Samples.Login.exe!__scrt_common_main_seh() Line 288 C++
     Samples.Login.exe!__scrt_common_main() Line 331 C++
     Samples.Login.exe!WinMainCRTStartup(void * __formal=0x010a1000) Line 17 C++
     kernel32.dll!@BaseThreadInitThunk@12() Unknown
     ntdll.dll!___RtlUserThreadStart@8() Unknown
     ntdll.dll!__RtlUserThreadStart@8() Unknown

Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files: MainWindow.patch.zip (1,321 bytes) 2023-01-13 19:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1733&type=bug
helloworld-1.png (311,737 bytes) 2023-01-16 22:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1734&type=bug
glut-1.png (257,064 bytes) 2023-01-17 00:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1735&type=bug
Main.cpp (21,572 bytes) 2023-01-17 00:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1736&type=bug
Notes
(0008212)
sfernandez   
2023-01-16 19:11   
(Last edited: 2023-01-16 19:12)
Could you try the following patch in TSF.cpp located in Src/Packages/App/Win32Display:

Index: TSF.cpp
===================================================================
--- TSF.cpp	(revision 11921)
+++ TSF.cpp	(working copy)
@@ -650,6 +650,12 @@
         NS_ASSERT(mTextBox != 0);
         mTextBox->UpdateLayout();
 
+        // UpdateLayout can release the focus from the TextBox, in that case we just return
+        if (mTextBox == 0)
+        {
+            return E_INVALIDARG;
+        }
+
         // Get bounding box of the selected text
         Rect bounds = mTextBox->GetRangeBounds(acpStart, acpEnd);
 

(0008214)
jack.barkov   
2023-01-16 22:31   
(Last edited: 2023-01-16 22:38)
I can't explain exactly what happened, however, in Sample.Login.exe the error stopped happening.
But in my application even with the patch you sent me, the crash continues.

My application uses several views, and this view that the crash happens is precisely the view that has the TextBox.

Sometimes the crash doesn't happen, but the process goes into an infinite loop inside noesis when pause is always in the same stacktrace.


     Noesis.dll!Noesis::GUI::SetSoftwareKeyboardCallback() + 1883 bytes Unknown
     [Frames below may be incorrect and/or missing, no symbols loaded for Noesis.dll]
     Noesis.dll!Noesis::UIElement::RaiseEvent() + 30 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 1867 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 3086 bytes Unknown
     Noesis.dll!Noesis::Viewbox::StaticGetClassType() + 2669 bytes Unknown
     Noesis.dll!Noesis::Visual::GetContentBoundsCore() + 5163 bytes Unknown
 
I couldn't quite understand how this patch you sent me would work.

How could `mTextBox->UpdateLayout();` invalidate the `mTextBox` pointer by setting nullptr right after it was called? Doesn't seem to make much sense...

I'm trying to figure out how to best reproduce the problem, but I'm having trouble.

Would it be possible to make available a Noesis.dll in debug or the pdb of Noesis.dll release build 3.1.6.11756 x86 as jsantos sent me once so we can see the stacktrace in more detail?

Thanks
(0008215)
jack.barkov   
2023-01-16 22:47   
Trying to reproduce the problem, a situation happened that the crash happens again on the same line.
I know this crash is due to the TextBox being without any style, however, the crash happens again on the same line. This is not the case with my application, as I am using the default Noesis theme.

To reproduce, in the examples use Sample.HelloWorld.exe, replace the MainWindow.xaml content with:

<Window x:Class="HelloWorld.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:HelloWorld"
        mc:Ignorable="d"
        FontFamily="./#Aero Matics"
        FontSize="36"
        Background="#FF124C7A"
        Title="NoesisGUI - Hello, World!">

    <Grid>
        <Viewbox>
            <Grid Width="325.8" Margin="24">
                <TextBox x:Name="ChatInput" Visibility="Visible" />
            </Grid>
        </Viewbox>
    </Grid>
</Window>


When opening the application click on the pink field and the crash will happen exactly on the same line again.

Could it be that the fact that the field has Visibility="Collapsed" when I press VK_RETURN in my application could be causing the TSF to have a problem with regard to style?

Thanks
(0008216)
jack.barkov   
2023-01-17 00:10   
I tried to reproduce the problem using a very simple implementation with Sample.IntegrationGLUT.exe.
After many attempts, I managed to have the exact same crash that I have in my application.

The crash sometimes happens quickly, sometimes it takes time to happen.
I really have no idea what's going on...

Below is a file on google drive with everything compiled and prepared in debug.

I moved the TSF implementation into the integration glut, I made the TSF calls manually with the patch you sent me.

Inside the file below, you will find a dump that I took in debug in my VS along with the exe, and pdb of the moment of execution.
I hope I can help with something.

https://drive.google.com/file/d/1pVraAG-BTwhO6DKPVh5kw9vwDPCxgBhf/view?usp=sharing

I also attached a print of the stacktrace at the time of the error (which is the same as the attached dump /bin/Samples.IntegrationGLUT.dmp)

Thanks,
(0008217)
jack.barkov   
2023-01-17 00:33   
From what I could understand, in the example above it happens when you start giving dozens of clicks on the text fields until suddenly the crash happens. I only left a test block in the video as you can see, but anyway I will send here the cpp I used in this video.

I made a video showing the crash happening (sorry for the fact that it's on a cell phone, but my resolution is very high, and this was the best way I imagined for the video to be readable)

Link:
https://youtu.be/hDG296REfV0

Thanks,
(0008218)
sfernandez   
2023-01-17 17:36   
Thanks a lot for your examples and feedback. I was able to find a bug in the processing of the LayoutUpdated event.
Please try the following patched library and let me know if your problems are solved: https://drive.google.com/file/d/1qouAu1fUyqM--el4kdFA6MTHjB0to5S2/view?usp=share_link
(0008220)
jack.barkov   
2023-01-17 21:45   
I did the test with the example I prepared yesterday and it really seems to have solved it.

My application is x86 only, could you provide me with an x86 build to test better?

Thanks,
(0008223)
sfernandez   
2023-01-18 19:49   
Of course, here you are: https://drive.google.com/file/d/1MF5r5eCZfFZ2R6qOX4yt2EMbKtd2SgZq/view?usp=share_link
(0008224)
jack.barkov   
2023-01-18 22:21   
I did some tests here and it seems to have really solved it! No bugs happened again.

Is it safe to use this dll until the next version 3.1.7 comes out?

Thanks!
(0008225)
sfernandez   
2023-01-19 10:09   
Yes, you can use this patched library in the meantime.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2490 [NoesisGUI] Unity3D minor always 2023-01-13 02:08 2023-01-18 19:31
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Windows
Summary: [NOESIS/E] 'Converter<Brush>' binding converter failed to convert value '' (type 'String')
Description: We get this error message:

[NOESIS/E] 'Converter<Brush>' binding converter failed to convert value '' (type 'String')

But no indication of what is causing the issue, so we're not sure how to fix it.

Reference thread: https://www.noesisengine.com/forums/viewtopic.php?t=2833
Tags:
Steps To Reproduce: 1) Open unity editor
2) Play in editor
3) Receive lots of errors about Converter<Brush> - but no errors that point where the problem is.
Additional Information:
Attached Files:
Notes
(0008206)
sfernandez   
2023-01-13 11:52   
Hi, I generated a new library that fixes the missing binding messages for converter errors, could you please give it a try:
https://drive.google.com/file/d/18stjNrt-4jWg2kTHqdcINI7ia3trdw8S/view?usp=share_link

Now when a binding converter fails it should always show a couple of error messages:
[NOESIS/E] 'Converter<Brush>' binding converter failed to convert value '' (type 'String')
[NOESIS/E] Binding failed: Path=Text, Source=TextBox('txt'), Target=Rectangle(''), TargetProperty=Shape.Fill

And if you provide a FallbackValue in the binding then the messages are logged as warnings (as it happens with the rest of binding errors), indicating that the fallback value will be used:
[NOESIS/W] 'Converter<Brush>' binding converter failed to convert value '' (type 'String')
[NOESIS/W] Binding failed: Path=Text, Source=TextBox('txt'), Target=Rectangle(''), TargetProperty=Shape.Fill. The fallback value will be used

(0008221)
samc   
2023-01-17 22:14   
This works! Thanks so much!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2489 [NoesisGUI] Unity3D major always 2023-01-12 20:09 2023-01-12 20:14
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.7  
    Target Version: 3.1.7  
Platform: Any
Summary: Meta file conflicts in 3.1.6
Description: Meta files for scripts under Runtime/API folder have conflicting GUIDs reporting warnings in Unity when installing the package:

GUID [3c88babd0bf855a89a7398a084ec3a25] for asset 'Packages/com.noesis.noesisgui/Runtime/API/Core/BoxedFreezableCollection.cs.meta' conflicts with:
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2479 [NoesisGUI] Unity3D minor random 2022-12-16 21:49 2022-12-19 12:52
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Noesis_RenderDeviceD3D12_WrapTexture
Description: Random crash with Noesis in call stack. Not reproducible at this time.

========== OUTPUTTING STACK TRACE ==================

0x00007FFBFC72DE2B (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC74BF8A (d3d11) D3D11CreateDeviceAndSwapChain
0x00007FFBFC72EB86 (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC72FBCC (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC7305FE (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC730D64 (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC71E4ED (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC73C429 (d3d11) EnableFeatureLevelUpgrade
0x00007FFBFC73C3D2 (d3d11) EnableFeatureLevelUpgrade
0x00007FFA50472EA8 (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FFA5047307B (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FFA503F3C44 (Noesis) Noesis_RenderDeviceD3D12_WrapTexture
0x00007FFA503F2B45 (Noesis) Noesis_RegisterLogCallback
0x00007FFA5025289C (Noesis) NullableSize_GetStaticType
0x00007FFA5045A053 (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FFA5045A1DE (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FFA501BEF68 (Noesis) Uri_GetStaticType
0x00007FFA502AE394 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA502ACAA8 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA503F148F (Noesis) Noesis_RegisterLogCallback
0x00007FF6082E9904 (Unity) GfxDeviceWorker::RunCommand
0x00007FF6082F005D (Unity) GfxDeviceWorker::RunExt
0x00007FF6082F0178 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF6069D78E7 (Unity) Thread::RunThreadWrapper
0x00007FFC0118247D (KERNEL32) BaseThreadInitThunk
0x00007FFC02BEDFB8 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Editor.log (39,799 bytes) 2022-12-16 21:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1726&type=bug
crash.zip (1,230,882 bytes) 2022-12-16 21:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1727&type=bug
Editor.zip (955,245 bytes) 2022-12-16 22:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1728&type=bug
Notes
(0008186)
stonstad   
2022-12-16 22:04   
Subsequent crash. Thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2267 [NoesisGUI] C++ SDK minor always 2022-02-10 07:10 2022-12-15 12:20
Reporter: spadapet Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Centered Popup shows in the corner until the view is resized
Description: I want to show a Popup in the center of its parent. Setting <Popup Placement="Center"> is supposed to do the trick, but the layout is incorrect until the view is resized. I'd rather not use a workaround like write code to manually place the Popup in the center.
Tags:
Steps To Reproduce: STEPS:

1. Paste the following XAML in XamlToy (https://www.noesisengine.com/xamltoy)

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Popup Placement="Center" IsOpen="True">
    <Border BorderBrush="Black" BorderThickness="2" Padding="50">
      <Button Content="Button in popup" />
    </Border>
  </Popup>
</Grid>

RESULT:
The popup shows in the upper left corner. If you resize the browser, then the popup shows in the center like it should.

EXPECT:
Start off in the center
Additional Information:
Attached Files:
Notes
(0007796)
spadapet   
2022-02-10 15:10   
I realized this only happens when Popup.IsOpen has an initial value of True. That's rare for a Popup so this bug is really trivial, I can easily work around it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2027 [NoesisGUI] Unity3D minor always 2021-05-23 07:17 2022-12-15 12:10
Reporter: jamieh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version:  
Platform: Any
Summary: ToolTips that contain content with a LayoutTransform/ScaleTransform on them are not properly sized
Description: If you put a Layout/Scale Transform on the content contained within a ToolTip and give it a ScaleX/Y of 2 or greater, the tooltip is not properly sizing to contain the content. The bigger the scale value, the worse the problem gets. The content is cut off and not displayed properly.

I duplicated this in WPF and it displays properly.

Note, I marked this "minor" just because it is a display error. It is somewhat major to us as we will not be able to upgrade our product to Noesis 3.0.12 or greater until this problem is resolved.
Tags: C#, Unity
Steps To Reproduce: I have uploaded sample projects to OneDrive:

Unity Project:
https://1drv.ms/u/s!AjEAlWO9Yl9unM8Hk7VX5Z8piOy1pw?e=wqRfcO

WPF Project:
https://1drv.ms/u/s!AjEAlWO9Yl9unM8Gk3rM93Eu1K6PQw?e=rCkosl

Additional Information:
Attached Files:
Notes
(0007328)
jamieh   
2021-07-16 20:39   
Just checking back--is this going to be in the 3.1 update? Thanks.
(0007336)
sfernandez   
2021-07-21 13:10   
It is fixed for 3.1 version, but I'm seeing that our popup logic is limiting tooltip size to an 85% of the available target surface.
I don't see WPF doing anything like that so I think we should change it. I'm keeping this ticket open for that purpose.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2091 [NoesisGUI] C++ SDK feature N/A 2021-08-24 18:05 2022-12-13 11:48
Reporter: satorp Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: i18n for text wrapping and trimming
Description: Current text wrapping and trimming algorithm does not work well with Japanese or other East Asian languages.
- Line breaks currently occur only on spaces/hypens (word boundaries in English). In Japanese for example, there's no concept of word boundary (basically break can occur anywhere), but there are special rules to prohibit break before or after some punctuation/special characters
- Line trimming with word ellipsis does not work with Japanese text (all text will be removed)
- WPF does not seem to have these issues

Our current priority is to support Japanese language. We have a working patch but it involves modifying VGLTextLayout implementation, which is not very pretty. Let me know if you want to have it for reference.

If out-of-the-box support is hard to achieve, another workable option might be to have the line break rule isolated possibly as a callback so it can be implemented by application. For Japanese, it will be possible to determine a break condition by examining the current and previous characters on a line if provided as context to the callback.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007384)
jsantos   
2021-08-25 20:33   
We started the implementation of supporting RTL languages, as part of these changes we are also going to have a new shaping algorithm that should fix all issues we have right now.

I will also revisit the current line breaking algorithm.

Yes, please, having your modifications will help and also if possible a XAML showcasing the issue.
(0007419)
satorp   
2021-09-08 06:37   
I've added a private note, but maybe you can't see it? I'm not sure how this bug tracker system works.

How should I provide the patch to you? I see that I could upload files here, but I'm not sure if it's ok to post the codes publicly. The private mode does not seem to support uploading files as well.
(0007420)
jsantos   
2021-09-08 13:43   
Hi Sator, yes of course I remember about you. :)

Sorry for the delay, please, send the patch to support@noesisengine.com

Thank you very much!
(0008041)
jsantos   
2022-08-12 18:00   
(Last edited: 2022-08-12 18:00)
We have implemented the Unicode Line Breaking Algorithm (http://www.unicode.org/reports/tr14/) in the Arabic Branch (NoesisSDK/branches/Arabic/). This branch is going to be the official 3.2, planned to be released next month.

When building this branch, make sure to enable shaping in BuildSettings.h because it is disabled for now by default (official release will have it enabled)

#define NS_TEXT_SHAPING 1

I am going to close this ticket, if you find specific problems, please create new tickets with corresponding scenarios and Xamls.

Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1948 [NoesisGUI] Unreal minor always 2021-03-24 08:42 2022-12-05 22:51
Reporter: jakub.hubacek Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.9  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: CombinedGeometry and GeometryGroup missing implementation
Description: Combined Geometry is not fully implemented.

XAML snippet bellow results in different outcome in MS Blend and in XAML Toy ( or in ue4)

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"

  d:DesignWidth="1280" d:DesignHeight="720">

<Grid x:Name="LayoutRoot">
<Border Background="#00D1C1">
<Border.Clip>

<CombinedGeometry GeometryCombineMode="Exclude">
<CombinedGeometry.Geometry1>
<RectangleGeometry RadiusX="6" RadiusY="6" Rect="0,0,350,83"/>
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<EllipseGeometry RadiusX="10" RadiusY="10" Center="3,3"/>
</CombinedGeometry.Geometry2>
</CombinedGeometry>

</Border.Clip>
</Border>
</Grid>
</Grid>
Tags: combinedgeometry
Steps To Reproduce: 1. Take example for combined geometry from Microsoft documentation.
2. Verify behaviour in MS Blend
3. Import blend into UE4 / or put the code inside XAML Toy
4. Observe it does not look same as in the MS Blend
Additional Information:
Attached Files: unnamed.png (7,013 bytes) 2021-03-24 08:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1395&type=bug
unnamed (1).png (1,548 bytes) 2021-03-24 08:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1396&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2442 [NoesisGUI] C# SDK crash always 2022-10-14 20:10 2022-12-01 20:44
Reporter: ladwhn3 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Access violation in Noesis_RenderDeviceD3D12_Create
Description: When trying to use RenderContextD3D12 in HelloWorld C# sample, an Access violation exception is thrown in Noesis_RenderDeviceD3D12_Create.

Exception is not thrown and RenderContextD3D12 works fine when app's target framework is .NET 6.0 or 7.0. HelloWorld sample targets .NET Framework.

Exception is thrown when compiling with Native AOT in .NET 7.0. Stack trace in Noesis module looks exactly the same.

 # Child-SP RetAddr Call Site
00 00000032`90df5ee0 00007ff9`5efbb1f9 Noesis!MouseWheelEventArgs_Delta_get+0x84c
01 00000032`90df60b0 00007ff9`5efbd3fc Noesis!MouseEventArgs_RightButton_get+0x2529
02 00000032`90dfe370 00007ff9`5efb92b3 Noesis!MouseEventArgs_RightButton_get+0x472c
03 00000032`90dfe7a0 00007ff9`5efbf172 Noesis!MouseEventArgs_RightButton_get+0x5e3
04 00000032`90dfe800 00007ff9`5ef43a05 Noesis!MouseWheelEventArgs_Delta_get+0x1072
05 00000032`90dfe850 00007ff9`f9385c96 Noesis!Noesis_RenderDeviceD3D12_Create+0x65
06 00000032`90dfe8a0 00007ff9`f937f97c 0x00007ff9`f9385c96
07 00000032`90dfe960 00007ff9`f936523e Noesis_App_RenderContexts_D3D12_1606ca80000!NoesisApp.RenderContextD3D12.Init+0xec
08 00000032`90dfe9c0 00007ff9`f93644a3 Noesis_App_1606c900000!NoesisApp.Application.Start+0x5ce
09 00000032`90dfeb40 00007ff9`f9190b4f Noesis_App_1606c900000!NoesisApp.Application.Run+0x13
0a 00000032`90dfeb90 00007ffa`58696893 HelloWorld!HelloWorld.App.Main+0x6f [...\HelloWorld\C#\Projects\windows\App.cs @ 23]
0b 00000032`90dfebe0 00007ffa`586967b0 clr!CallDescrWorkerInternal+0x83
0c 00000032`90dfec20 00007ffa`58697050 clr!CallDescrWorkerWithHandler+0x4e
0d 00000032`90dfec60 00007ffa`588218c4 clr!MethodDescCallSite::CallTargetWorker+0xfa
0e 00000032`90dfed60 00007ffa`5882216f clr!RunMain+0x25f
0f 00000032`90dfef40 00007ffa`58822022 clr!Assembly::ExecuteMainMethod+0xb7
10 00000032`90dff230 00007ffa`58821968 clr!SystemDomain::ExecuteMainMethod+0x643
11 00000032`90dff830 00007ffa`588216c1 clr!ExecuteEXE+0x3f
12 00000032`90dff8a0 00007ffa`588222d4 clr!_CorExeMainInternal+0xb2
13 00000032`90dff930 00007ffa`59f38c01 clr!CorExeMain+0x14
14 00000032`90dff970 00007ffa`5b1eac42 mscoreei!CorExeMain+0x112
15 00000032`90dff9d0 00007ffa`75277034 MSCOREE!CorExeMain_Exported+0x72
16 00000032`90dffa00 00007ffa`75da26a1 KERNEL32!BaseThreadInitThunk+0x14
17 00000032`90dffa30 00000000`00000000 ntdll!RtlUserThreadStart+0x21
Tags: D3D12
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008102)
jsantos   
2022-10-17 12:17   
Thanks for reporting this. We haven't tried Native AOT Deployment yet.

Is this also happening with D3D11 ?
(0008103)
ladwhn3   
2022-10-17 13:47   
Exception is thrown for Native AOT but also for .NET Framework (which HelloWorld sample targets, so the issue can be easily reproduced). Excuse my confusing syntax.

D3D11 does not have this issue.
(0008182)
sfernandez   
2022-12-01 20:40   
(Last edited: 2022-12-01 20:44)
The callstack for the error is:

>   Noesis.dll!NoesisApp::D3D12RenderDevice::CreatePipelines(NoesisApp::D3D12RenderDevice::Program * program, unsigned char shader_, const char * label_, D3D12_GRAPHICS_PIPELINE_STATE_DESC & desc) Line 2036	C++
    Noesis.dll!NoesisApp::D3D12RenderDevice::CreateShaders() Line 2200	C++
    Noesis.dll!NoesisApp::D3D12RenderDevice::D3D12RenderDevice(ID3D12Device * device, ID3D12Fence * frameFence, DXGI_FORMAT colorFormat, DXGI_FORMAT stencilFormat, DXGI_SAMPLE_DESC sampleDesc, bool sRGB) Line 362	C++
    Noesis.dll!NoesisApp::D3D12Factory::CreateDevice(ID3D12Device * device, ID3D12Fence * frameFence, DXGI_FORMAT colorFormat, DXGI_FORMAT stencilFormat, DXGI_SAMPLE_DESC sampleDesc, bool sRGB) Line 22	C++
    Noesis.dll!Noesis_RenderDeviceD3D12_Create(void * device, void * frameFence, int colorFormat, int stencilFormat, int samples, bool sRGB) Line 175	C++

D3D12: Removing Device.
DXGI_ERROR_DEVICE_REMOVED (0x887a0005): The GPU instance has been suspended.
DXGI_ERROR_DRIVER_INTERNAL_ERROR (0x887A0020): The driver encountered a problem and was put into the device removed state.

The error occur when calling: mDevice->CreateGraphicsPipelineState(&desc, DX_ARGS(&program->pso[i]));


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2469 [NoesisGUI] XamlToy minor always 2022-11-27 03:32 2022-11-28 17:43
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Slider.IsMoveToPointEnabled Not Implemented?
Description: IsMoveToPointEnabled Gets or sets a value that indicates whether the Thumb of a Slider moves immediately to the location of the mouse click that occurs while the mouse pointer pauses on the Slider track

I don't believe this is implemented. If I click on the slider track it moves the thumb even when I have this value set to false;
Tags:
Steps To Reproduce: <Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
    <Grid Background="{StaticResource Brush.Window.Background}">
        <StackPanel Margin="10,10,-10,0" HorizontalAlignment="Center" VerticalAlignment="Center">
            <StackPanel Orientation="Horizontal">
                <StackPanel>
                    <TextBlock Text="Default Button" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <Button Content="Enabled"/>
                    <Button Content="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel Margin="20,0">
                    <TextBlock Text="Toggle Button" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <ToggleButton Content="Enabled"/>
                    <ToggleButton Content="Checked" IsChecked="True" Margin="0,5,0,0"/>
                    <ToggleButton Content="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                    <ToggleButton Content="Checked" IsChecked="True" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel>
                    <TextBlock Text="Toggle Switch" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <ToggleButton Style="{StaticResource Style.ToggleSwitch}" Content="Enabled"/>
                    <ToggleButton Style="{StaticResource Style.ToggleSwitch}" Content="Checked" IsChecked="True" Margin="0,5,0,0"/>
                    <ToggleButton Style="{StaticResource Style.ToggleSwitch}" Content="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                    <ToggleButton Style="{StaticResource Style.ToggleSwitch}" Content="Checked" IsChecked="True" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel Margin="20,0">
                    <TextBlock Text="CheckBox" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <CheckBox Content="Enabled"/>
                    <CheckBox Content="Checked" IsChecked="True" Margin="0,5,0,0"/>
                    <CheckBox Content="3-State" IsChecked="{x:Null}" IsThreeState="True" Margin="0,5,0,0"/>
                    <CheckBox Content="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                    <CheckBox Content="Checked" IsChecked="True" IsEnabled="False" Margin="0,5,0,0"/>
                    <CheckBox Content="3-State" IsChecked="{x:Null}" IsThreeState="True" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel Margin="20,0">
                    <TextBlock Text="RadioButton" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <StackPanel>
                        <RadioButton Content="Enabled"/>
                        <RadioButton Content="Checked" IsChecked="True" Margin="0,5,0,0"/>
                    </StackPanel>
                    <StackPanel>
                        <RadioButton Content="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                        <RadioButton Content="Checked" IsChecked="True" IsEnabled="False" Margin="0,5,0,0"/>
                    </StackPanel>
                </StackPanel>
            </StackPanel>
            <StackPanel Orientation="Horizontal" Margin="0,20,0,0">
                <StackPanel>
                    <TextBlock Text="TextBox" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <TextBox Text="Enabled"/>
                    <TextBox noesis:Text.Placeholder="Placeholder" Margin="0,5,0,0"/>
                    <TextBox Text="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel Margin="20,0">
                    <TextBlock Text="PasswordBox" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <PasswordBox Password="Enabled"/>
                    <PasswordBox noesis:Text.Placeholder="Placeholder" Margin="0,5,0,0"/>
                    <PasswordBox Password="Disabled" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel>
                    <TextBlock Text="Slider" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <Slider Value="0" MinWidth="120" IsMoveToPointEnabled="False"/>
                    <Slider Value="1" TickPlacement="Both" Margin="0,5,0,0" IsMoveToPointEnabled="False"/>
                    <Slider Value="2" IsDirectionReversed="True" TickPlacement="BottomRight" Margin="0,5,0,0" IsMoveToPointEnabled="False"/>
                    <Slider Value="5" IsEnabled="False" Margin="0,5,0,0"/>
                </StackPanel>
                <StackPanel Margin="20,0">
                    <TextBlock Text="ListBox" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <ListBox BorderBrush="{StaticResource Brush.Border.Normal}" BorderThickness="1">
                        <ListBoxItem Content="Unselected"/>
                        <ListBoxItem Content="Selected" IsSelected="True"/>
                        <ListBoxItem Content="Disabled" IsEnabled="False"/>
                    </ListBox>
                </StackPanel>
                <StackPanel>
                    <TextBlock Text="TreeView" FontSize="18" TextAlignment="Center" Margin="0,0,0,10"/>
                    <TreeView BorderBrush="{StaticResource Brush.Border.Normal}" BorderThickness="1">
                        <TreeViewItem Header="Expanded" IsExpanded="True">
                            <TreeViewItem Header="Child"/>
                        </TreeViewItem>
                        <TreeViewItem Header="Collapsed">
                            <TreeViewItem Header="Child"/>
                        </TreeViewItem>
                        <TreeViewItem Header="Disabled" IsEnabled="False">
                            <TreeViewItem Header="Child"/>
                        </TreeViewItem>
                    </TreeView>
                </StackPanel>
            </StackPanel>
        </StackPanel>
    </Grid>
</Grid>
Additional Information:
Attached Files:
Notes
(0008176)
sfernandez   
2022-11-28 10:36   
This property doesn't mean that, when set to false, clicking the track bar won't do anything, it advances the slider by its LargeChange property value.
When this property is set to true what happens is that the thumb is moved directly to the position you clicked in the track bar.

If you want to disable the track bar clicks you can modify the Slider template and remove the RepeatButtons placed in the Track that are in charge of moving the thumb by LargeChange increments.
(0008180)
stonstad   
2022-11-28 16:23   
Understood. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2468 [NoesisGUI] Unity3D major always 2022-11-21 14:59 2022-11-23 11:02
Reporter: Rafael Munoz Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Named element with Interaction triggers declared are not executed when we have hot-reloaded
Description: After a hot-reload interaction triggers are not triggering ( for a named element )

We can workaround this but it would be interesting to be able to use hot-reload without this issue.
Tags: HotReload, Unity
Steps To Reproduce: Download the following build

https://drive.google.com/file/d/11nuDYhb39AVcdRwHvV_wGMmRm1uV0aPj/view

The instructions are included in the build
Additional Information:
Attached Files:
Notes
(0008174)
jsantos   
2022-11-23 11:02   
In Noesis 3.2 we have implemented a new Hot-Reload algorithm that is much better and similarly to WPF it tries to preserve as much state as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2465 [NoesisGUI] XamlToy minor always 2022-11-18 19:19 2022-11-23 10:46
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Error Loading TextureName, using fallback texture (XamlToy)
Description: This gist fails to load an image into an image source.

https://www.noesisengine.com/xamltoy/d1e8b77f970d1896ceee6cd7dd6cb1f6

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008169)
stonstad   
2022-11-18 19:19   
Reported error is

all-57b5c051be.js:1
       [NOESIS/E] Error loading 'cosmos.png', using fallback texture
(0008173)
jsantos   
2022-11-23 10:45   
I need to verify but we have memory limits in the XamlToy runtime and I am pretty sure these images can't be allocated.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2466 [NoesisGUI] Unity3D crash always 2022-11-21 12:00 2022-11-21 12:18
Reporter: quanchao Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Android
Summary: Got a UNKNOWN while executing native code.
Description: =================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at UnityEngine.GameObject:SetActive <0x0009b>
      at XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive <0x000d2>
      at XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive <0x0006a>
      at <unknown> <0xffffffff>
      at XLua.LuaDLL.Lua:lua_pcall <0x000a2>
      at XLua.DelegateBridge:PCall <0x00042>
      at XLua.DelegateBridge:__Gen_Delegate_Imp4 <0x0011a>
      at UnityEngine.UI.FreeTypeScrollView:SetDataForItemAtIndex <0x0005e>
      at UnityEngine.UI.FreeTypeScrollView:OnGetItemForDataIndex <0x0002a>
      at UnityEngine.UI.FreeTypeScrollView:ResetCriticalItems <0x001d2>
      at UnityEngine.UI.FreeTypeScrollView:InternalUpdateData <0x003ca>
      at UnityEngine.UI.FreeTypeScrollView:UpdateData <0x0004a>
      at XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData <0x000c2>
      at XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData <0x0006a>
      at <unknown> <0xffffffff>
      at ACE.TJFramework:NativePerformFunctionInMainThread <0x00086>
      at ACE.TJFramework:Update <0x00022>
      at ACE.Launch:Update <0x00062>
      at System.Object:runtime_invoke_void__this__ <0x00087>
=================================================================
Received signal SIGSEGV
Obtained 54 stack frames
0x00007ff7e39eb564 (Unity) UI::CanvasManager::AddCanvas
0x00007ff7e39ff8c3 (Unity) UI::Canvas::AddToManager
0x00007ff7e39ffef5 (Unity) UI::Canvas::AwakeFromLoad
0x00007ff7e348ad47 (Unity) AwakeFromLoadQueue::InvokeAwakeFromLoad
0x00007ff7e3485ac3 (Unity) AwakeFromLoadQueue::AwakeFromLoadAllQueues
0x00007ff7e2d60cca (Unity) GameObject::ActivateAwakeRecursively
0x00007ff7e2d68489 (Unity) GameObject::SetSelfActive
0x00007ff7e268d73b (Unity) GameObject_CUSTOM_SetActive
0x0000020a6e088d5c (Mono JIT Code) (wrapper managed-to-native) UnityEngine.GameObject:SetActive (UnityEngine.GameObject,bool)
0x0000020a6f72dbd3 (Mono JIT Code) [UnityEngineGameObjectWrap.cs:739] XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive (intptr)
0x0000020a6ee3c26b (Mono JIT Code) (wrapper native-to-managed) XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive (intptr)
0x00007ffdd21debdc (xlua) cls_newindexer
0x00007ffdd21d2cb0 (xlua)
0x00007ffdd22d687b (xlua) lua_pcall
0x00000206b7593443 (Mono JIT Code) (wrapper managed-to-native) XLua.LuaDLL.Lua:lua_pcall (intptr,int,int,int)
0x0000020a6f41c843 (Mono JIT Code) [DelegateBridge.cs:138] XLua.DelegateBridge:PCall (intptr,int,int,int)
0x0000020a990b011b (Mono JIT Code) [DelegatesGensBridge.cs:123] XLua.DelegateBridge:__Gen_Delegate_Imp4 (int,UnityEngine.GameObject)
0x0000020a6f5bffbf (Mono JIT Code) [FreeTypeScrollView.cs:503] UnityEngine.UI.FreeTypeScrollView:SetDataForItemAtIndex (UnityEngine.RectTransform,int)
0x0000020a6f72ff7b (Mono JIT Code) [FreeTypeScrollView.cs:496] UnityEngine.UI.FreeTypeScrollView:OnGetItemForDataIndex (UnityEngine.RectTransform,int)
0x0000020aa1e8e5a3 (Mono JIT Code) [FreeTypeScrollView.cs:285] UnityEngine.UI.FreeTypeScrollView:ResetCriticalItems ()
0x0000020aa1e8e28b (Mono JIT Code) [FreeTypeScrollView.cs:275] UnityEngine.UI.FreeTypeScrollView:InternalUpdateData ()
0x0000020aa1e8dceb (Mono JIT Code) [FreeTypeScrollView.cs:140] UnityEngine.UI.FreeTypeScrollView:UpdateData ()
0x0000020aa1e8db33 (Mono JIT Code) [UnityEngineUIFreeTypeScrollViewWrap.cs:327] XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData (intptr)
0x0000020aa1e887eb (Mono JIT Code) (wrapper native-to-managed) XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData (intptr)
0x00007ffdd21debdc (xlua) cls_newindexer
0x00007ffdd21d2cb0 (xlua)
0x00007ffdd22d687b (xlua) lua_pcall
0x00007ffdd22059ad (xlua) vfprintf
0x00007ffdd22052b5 (xlua) vfprintf
0x00007ffdd21e1745 (xlua) xlua_upvalueindex
0x0000020a6f5f3d27 (Mono JIT Code) (wrapper managed-to-native) ACE.TJFramework:NativePerformFunctionInMainThread ()
0x0000020a6f5f3b13 (Mono JIT Code) [TJFramework.cs:181] ACE.TJFramework:Update ()
0x0000020a6e1b6b63 (Mono JIT Code) [Launch.cs:135] ACE.Launch:Update ()
0x0000020ab998d438 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffdbbd0fe24 (mono-2.0-bdwgc) [mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007ffdbbc4e764 (mono-2.0-bdwgc) [object.c:3066] do_runtime_invoke
0x00007ffdbbc4e8fc (mono-2.0-bdwgc) [object.c:3113] mono_runtime_invoke
0x00007ff7e33d5994 (Unity) scripting_method_invoke
0x00007ff7e33b5214 (Unity) ScriptingInvocation::Invoke
0x00007ff7e339e4f4 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff7e339e5e2 (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff7e2e8b138 (Unity) BaseBehaviourManager::CommonUpdate<BehaviourManager>
0x00007ff7e2e9278a (Unity) BehaviourManager::Update
0x00007ff7e30a6edd (Unity) `InitPlayerLoopCallbacks'::`2'::UpdateScriptRunBehaviourUpdateRegistrator::Forward
0x00007ff7e308cb4a (Unity) ExecutePlayerLoop
0x00007ff7e308ccd6 (Unity) ExecutePlayerLoop
0x00007ff7e3092de9 (Unity) PlayerLoop
0x00007ff7e3ff35ff (Unity) PlayerLoopController::UpdateScene
0x00007ff7e3ff189f (Unity) Application::TickTimer
0x00007ff7e444200a (Unity) MainMessageLoop
0x00007ff7e44468bb (Unity) WinMain
0x00007ff7e580477e (Unity) __scrt_common_main_seh
0x00007ffe79135550 (KERNEL32) BaseThreadInitThunk
0x00007ffe79fe485b (ntdll) RtlUserThreadStart
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008172)
jsantos   
2022-11-21 12:18   
This is not related to NoesisGUI


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2467 [NoesisGUI] Unity3D crash always 2022-11-21 12:02 2022-11-21 12:17
Reporter: quanchao Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Got a UNKNOWN while executing native code.
Description: =================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at UnityEngine.GameObject:SetActive <0x0009b>
      at XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive <0x000d2>
      at XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive <0x0006a>
      at <unknown> <0xffffffff>
      at XLua.LuaDLL.Lua:lua_pcall <0x000a2>
      at XLua.DelegateBridge:PCall <0x00042>
      at XLua.DelegateBridge:__Gen_Delegate_Imp4 <0x0011a>
      at UnityEngine.UI.FreeTypeScrollView:SetDataForItemAtIndex <0x0005e>
      at UnityEngine.UI.FreeTypeScrollView:OnGetItemForDataIndex <0x0002a>
      at UnityEngine.UI.FreeTypeScrollView:ResetCriticalItems <0x001d2>
      at UnityEngine.UI.FreeTypeScrollView:InternalUpdateData <0x003ca>
      at UnityEngine.UI.FreeTypeScrollView:UpdateData <0x0004a>
      at XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData <0x000c2>
      at XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData <0x0006a>
      at <unknown> <0xffffffff>
      at ACE.TJFramework:NativePerformFunctionInMainThread <0x00086>
      at ACE.TJFramework:Update <0x00022>
      at ACE.Launch:Update <0x00062>
      at System.Object:runtime_invoke_void__this__ <0x00087>
=================================================================
Received signal SIGSEGV
Obtained 54 stack frames
0x00007ff7e39eb564 (Unity) UI::CanvasManager::AddCanvas
0x00007ff7e39ff8c3 (Unity) UI::Canvas::AddToManager
0x00007ff7e39ffef5 (Unity) UI::Canvas::AwakeFromLoad
0x00007ff7e348ad47 (Unity) AwakeFromLoadQueue::InvokeAwakeFromLoad
0x00007ff7e3485ac3 (Unity) AwakeFromLoadQueue::AwakeFromLoadAllQueues
0x00007ff7e2d60cca (Unity) GameObject::ActivateAwakeRecursively
0x00007ff7e2d68489 (Unity) GameObject::SetSelfActive
0x00007ff7e268d73b (Unity) GameObject_CUSTOM_SetActive
0x0000020a6e088d5c (Mono JIT Code) (wrapper managed-to-native) UnityEngine.GameObject:SetActive (UnityEngine.GameObject,bool)
0x0000020a6f72dbd3 (Mono JIT Code) [UnityEngineGameObjectWrap.cs:739] XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive (intptr)
0x0000020a6ee3c26b (Mono JIT Code) (wrapper native-to-managed) XLua.CSObjectWrap.UnityEngineGameObjectWrap:_m_SetActive (intptr)
0x00007ffdd21debdc (xlua) cls_newindexer
0x00007ffdd21d2cb0 (xlua)
0x00007ffdd22d687b (xlua) lua_pcall
0x00000206b7593443 (Mono JIT Code) (wrapper managed-to-native) XLua.LuaDLL.Lua:lua_pcall (intptr,int,int,int)
0x0000020a6f41c843 (Mono JIT Code) [DelegateBridge.cs:138] XLua.DelegateBridge:PCall (intptr,int,int,int)
0x0000020a990b011b (Mono JIT Code) [DelegatesGensBridge.cs:123] XLua.DelegateBridge:__Gen_Delegate_Imp4 (int,UnityEngine.GameObject)
0x0000020a6f5bffbf (Mono JIT Code) [FreeTypeScrollView.cs:503] UnityEngine.UI.FreeTypeScrollView:SetDataForItemAtIndex (UnityEngine.RectTransform,int)
0x0000020a6f72ff7b (Mono JIT Code) [FreeTypeScrollView.cs:496] UnityEngine.UI.FreeTypeScrollView:OnGetItemForDataIndex (UnityEngine.RectTransform,int)
0x0000020aa1e8e5a3 (Mono JIT Code) [FreeTypeScrollView.cs:285] UnityEngine.UI.FreeTypeScrollView:ResetCriticalItems ()
0x0000020aa1e8e28b (Mono JIT Code) [FreeTypeScrollView.cs:275] UnityEngine.UI.FreeTypeScrollView:InternalUpdateData ()
0x0000020aa1e8dceb (Mono JIT Code) [FreeTypeScrollView.cs:140] UnityEngine.UI.FreeTypeScrollView:UpdateData ()
0x0000020aa1e8db33 (Mono JIT Code) [UnityEngineUIFreeTypeScrollViewWrap.cs:327] XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData (intptr)
0x0000020aa1e887eb (Mono JIT Code) (wrapper native-to-managed) XLua.CSObjectWrap.UnityEngineUIFreeTypeScrollViewWrap:_m_UpdateData (intptr)
0x00007ffdd21debdc (xlua) cls_newindexer
0x00007ffdd21d2cb0 (xlua)
0x00007ffdd22d687b (xlua) lua_pcall
0x00007ffdd22059ad (xlua) vfprintf
0x00007ffdd22052b5 (xlua) vfprintf
0x00007ffdd21e1745 (xlua) xlua_upvalueindex
0x0000020a6f5f3d27 (Mono JIT Code) (wrapper managed-to-native) ACE.TJFramework:NativePerformFunctionInMainThread ()
0x0000020a6f5f3b13 (Mono JIT Code) [TJFramework.cs:181] ACE.TJFramework:Update ()
0x0000020a6e1b6b63 (Mono JIT Code) [Launch.cs:135] ACE.Launch:Update ()
0x0000020ab998d438 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffdbbd0fe24 (mono-2.0-bdwgc) [mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007ffdbbc4e764 (mono-2.0-bdwgc) [object.c:3066] do_runtime_invoke
0x00007ffdbbc4e8fc (mono-2.0-bdwgc) [object.c:3113] mono_runtime_invoke
0x00007ff7e33d5994 (Unity) scripting_method_invoke
0x00007ff7e33b5214 (Unity) ScriptingInvocation::Invoke
0x00007ff7e339e4f4 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff7e339e5e2 (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff7e2e8b138 (Unity) BaseBehaviourManager::CommonUpdate<BehaviourManager>
0x00007ff7e2e9278a (Unity) BehaviourManager::Update
0x00007ff7e30a6edd (Unity) `InitPlayerLoopCallbacks'::`2'::UpdateScriptRunBehaviourUpdateRegistrator::Forward
0x00007ff7e308cb4a (Unity) ExecutePlayerLoop
0x00007ff7e308ccd6 (Unity) ExecutePlayerLoop
0x00007ff7e3092de9 (Unity) PlayerLoop
0x00007ff7e3ff35ff (Unity) PlayerLoopController::UpdateScene
0x00007ff7e3ff189f (Unity) Application::TickTimer
0x00007ff7e444200a (Unity) MainMessageLoop
0x00007ff7e44468bb (Unity) WinMain
0x00007ff7e580477e (Unity) __scrt_common_main_seh
0x00007ffe79135550 (KERNEL32) BaseThreadInitThunk
0x00007ffe79fe485b (ntdll) RtlUserThreadStart
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008171)
jsantos   
2022-11-21 12:17   
This is not related to NoesisGUI


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2463 [NoesisGUI] C# SDK minor always 2022-11-18 17:45 2022-11-18 18:13
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Error Can't register embedded resources in C# SDK
Description: I have a project that builds and runs fine on 3.1.2. However, after updating the NuGet packages to 3.1.5, I am given this error:

[NOESIS/W] Can't register embedded resources for 'NoesisDotNetFrameworkTest', no common namespace in types and resources found
[NOESIS/E] Xaml not found 'App.xaml'
Exception thrown: 'System.InvalidOperationException' in Noesis.App.dll
An unhandled exception of type 'System.InvalidOperationException' occurred in Noesis.App.dll
Startup window not defined
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008168)
jsantos   
2022-11-18 17:51   
(Last edited: 2022-11-18 18:13)
In 3.1.6 we have changed a bit the way Embedded resources are loaded. Note that this is our implementation in the App Framework and it can be changed to a different one by client code.

1. Assembly is now always mandatory (as in WPF)

Noesis.GUI.LoadComponent(this, "/Localization;component/MainWindow.xaml");

2. The URIs must be prepended with the RootNamespace. We recommend setting it to empty in your csproj

<RootNamespace></RootNamespace>

https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.vcprojectengine.vcproject.rootnamespace?view=visualstudiosdk-2019

We have added better error messages to help with the migration.
All our examples have been updated.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2464 [NoesisGUI] Unreal minor always 2022-11-18 17:55 2022-11-18 17:56
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Unreal Blueprint - Set W/Notify Regression
Description: It appears that if I reference Noesis views within game project settings (custom developer settings) then if I add any Noesis Set W/Notify nodes within the referenced views they regress after engine restart (the set nodes delete themselves)

The settings are then loaded into a component attached to the player controller. The UI component is simple and essentially just stores the classes from the game settings on construct and then add them to viewport via some functions.

Am I doing something wrong here, is it intended and possibly just how unreal and plugins work? I was incredibly confused as to why they were just getting deleted. I thought it might have been an issue with asset monitoring but no. It appears if I reboot the engine without the game settings referencing any views then the nodes stay. The nodes delete only on engine start.
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?t=2648
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2441 [NoesisGUI] Unreal minor always 2022-10-14 16:35 2022-11-18 11:06
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Changes to Application Resources xaml not setting the new dictionary
Description: The issue is that if I make a change to any of the merged resource dictionaries included in the application resource dictionary, then reimport them in Unreal, I do not see the changes.
To see the changes, I have to re-select the app level resource dictionary in the settings panel, then shutdown Unreal Editor. Upon restarting the editor, I will see the changes

Upon reimport of the resource dictionary it should set the Application Resources in the Noesis plugin, to reload this without switching to another dictionary or restarting the editor.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008167)
hcpizzi   
2022-11-18 11:06   
If the reimported XAML is the ApplicationResources XAML, SetApplicationResources is called.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2436 [NoesisGUI] C++ SDK major always 2022-10-04 01:21 2022-11-18 10:09
Reporter: tsilmer Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: GamepadTrigger does not work inside ContextMenu
Description: Any kind of Interaction.Triggers such as KeyTrigger, EventTrigger, etc work as expected when used inside a ContextMenu. But when a GamepadTrigger is used it does not trigger the actions.
Tags:
Steps To Reproduce: In the following example, the action under KeyTrigger works as expected, while the GamepadTrigger is never executed (the same GamepadTrigger outside of the ContextMenu also works just fine):

<DataTemplate x:Key="TreeViewComponentStyle">
  <Border x:Name="OuterBorder">
    <Border.ContextMenu>
      <ContextMenu Name="MyContextMenu">
        <MenuItem Header="Test" />

         <b:Interaction.Triggers>
            <noesis:GamepadTrigger Button="Cancel" FiredOn="ButtonDown">
              <b:InvokeCommandAction Command="{Binding Path=DataContext.DebugPrint, ElementName=MainWindow}" CommandParameter="GAMEPAD_TRIGGER"/>
            </noesis:GamepadTrigger>

            <b:KeyTrigger Key="a">
              <b:InvokeCommandAction Command="{Binding Path=DataContext.DebugPrint, ElementName=MainWindow}" CommandParameter="KEY_TRIGGER"/>
            </b:KeyTrigger>
          </b:Interaction.Triggers>
      </ContextMenu>
    </Border.ContextMenu>
  </Border>
</DataTemplate>
Additional Information:
Attached Files:
Notes
(0008089)
sfernandez   
2022-10-06 19:35   
By default (ActiveOnFocus="False") KeyTrigger and GamepadTrigger hook to the XAML root to listen for the KeyDown/Up event.
In this case what is happening with the KeyTrigger Key="A" is that no element in the event route is handling that key, so it reaches the root, and then the KeyTrigger can process the event and execute the actions.
But for GamepadTrigger Button="Cancel" the MenuItem that has the submenu opened, as it is part of the event route, it handles the key (Cancel == Escape) and closes the submenu, so when the event reaches the root it is already handled and the GamepadTrigger is not processed.

If you use another gamepad button (for example the "Menu" button) that is not handled by elements in the tree, then the GamepadTrigger works as expected.

But what you should do is to set ActiveOnFocus="True" so the GamepadTrigger is processed on the ContextMenu where you are defining it. That way the trigger can be processed and execute its actions before other elements in the tree.

<ContextMenu Name="MyContextMenu">
         <b:Interaction.Triggers>
            <noesis:GamepadTrigger Button="Cancel" FiredOn="ButtonDown" ActiveOnFocus="True">
              <b:InvokeCommandAction Command="{Binding Path=DataContext.DebugPrint, ElementName=MainWindow}" CommandParameter="GAMEPAD_TRIGGER"/>
            </noesis:GamepadTrigger>
         <b:Interaction.Triggers>
  ...
</ContextMenu>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2437 [NoesisGUI] C++ SDK major sometimes 2022-10-04 01:23 2022-11-18 10:08
Reporter: tsilmer Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: ContextMenu Placement intermittently not being respected
Description: We are running into a weird intermittent issue with the placement of ContextMenus. Sometimes when we open our app, the ContextMenuService.PlacementTarget and ContextMenuService.Placement properties that we set in a element is not respected and the ContextMenu is instead always placed at the mouse cursor position. The issue is intermittent though, so sometimes it works as expected and sometimes it does not, it only happens when we open the app, if we open the app and it works once then it always works and vice versa.

More details on this forum thread: https://www.noesisengine.com/forums/viewtopic.php?t=2734
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008104)
sfernandez   
2022-10-18 10:11   
Could you please try with the following patch:

Index: ContextMenu.cpp
===================================================================
--- ContextMenu.cpp	(revision 11643)
+++ ContextMenu.cpp	(working copy)
@@ -159,14 +159,6 @@
         // Set node parent
         ParentClass::SetNodeParent(parent);
 
-        // Update context menu placement
-        CoerceValue<bool>(HasDropShadowProperty);
-        CoerceValue<float>(HorizontalOffsetProperty);
-        CoerceValue<PlacementMode>(PlacementProperty);
-        CoerceValue<Rect>(PlacementRectangleProperty);
-        CoerceValue<Ptr<UIElement>>(PlacementTargetProperty);
-        CoerceValue<float>(VerticalOffsetProperty);
-
         // Notify menu items
         MenuItem::SetIsInsideContextMenu(this, parent != 0);
     }
@@ -418,7 +410,13 @@
         mPopupInternal->SetChild(this);
         mPopupInternal->Bind(this);
 
+        // Update context menu placement
+        CoerceValue<bool>(HasDropShadowProperty);
+        CoerceValue<float>(HorizontalOffsetProperty);
+        CoerceValue<PlacementMode>(PlacementProperty);
+        CoerceValue<Rect>(PlacementRectangleProperty);
         CoerceValue<Ptr<UIElement>>(PlacementTargetProperty);
+        CoerceValue<float>(VerticalOffsetProperty);
 
         Mouse* mouse = GetMouse();
         mMenuCapture = DynamicCast<Menu*>(mouse->GetCaptured());
(0008147)
sfernandez   
2022-11-08 11:22   
Hello, did you find time to try the mentioned patch? We want to include this in the following 3.1.6 release that is coming by the end of this week.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2462 [NoesisGUI] C++ SDK crash always 2022-11-17 18:57 2022-11-18 01:13
Reporter: AnKor Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Memory corruption in Noesis::String::Replace
Description: String::Replace does not increase capacity when replacement string is larger than the number of replaced characters (e.g. when "inserts > removes").
This causes memmove to write outside of allocated memory and corrupts the stack for small strings (or heap for large strings).

There's a simple workaround (either call Reserve before Replace or use Erase + Insert combo), but the bug seems pretty major and non-obvious.
Tags:
Steps To Reproduce: A simple code snippet:
Noesis::String x = "12345-67890";
x.Replace(5, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");

Results in the following state:
mSize=36
mCapacity=23
mIsSmall=1

and potentially corrupts adjacent data on the stack.
Additional Information:
Attached Files:
Notes
(0008165)
jsantos   
2022-11-18 01:13   
Thanks for catching this! Patch fixing the issue:

Index: String.inl
===================================================================
--- String.inl	(revision 11729)
+++ String.inl	(working copy)
@@ -430,10 +430,17 @@
     NS_ASSERT(pos <= mSize);
     NS_ASSERT(str != nullptr);
 
-    char* dest = Begin() + pos;
     uint32_t removes = Min(n, mSize - pos);
     uint32_t inserts = (uint32_t)strlen(str);
+    uint32_t newSize = mSize + inserts - removes;
 
+    if (NS_UNLIKELY(newSize > Capacity()))
+    {
+        Grow(newSize);
+    }
+
+    char* dest = Begin() + pos;
+
     if (removes != inserts)
     {
         memmove(dest + inserts, dest + removes, mSize - pos - removes + 1);
@@ -440,7 +447,7 @@
     }
 
     memcpy(dest, str, inserts);
-    ForceSize(mSize + inserts - removes);
+    ForceSize(newSize);
 }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2461 [NoesisGUI] C++ SDK feature have not tried 2022-11-17 07:49 2022-11-17 09:33
Reporter: peerlessDJ Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Load image(other resource) from network
Description: provide an implementation for this in our App Framework.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1153 [NoesisGUI] C++ SDK major always 2017-09-20 03:31 2022-11-16 16:39
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Memory leak when using ContextMenuService.PlacementTarget
Description: From http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1178

The following XAML causes memory leak. The datacontext object (i.e. the object that provide SomeProperty property) is not released even after UI element is destroyed.

    <Grid x:Name="MyGrid" Grid.Row="0" Background="WhiteSmoke" ContextMenuService.PlacementTarget="{Binding ElementName=MyGrid}">
        <Grid.ContextMenu>
            <ContextMenu>
                <MenuItem Header="{Binding SomeProperty}"></MenuItem>
            </ContextMenu>
        </Grid.ContextMenu>
    </Grid>

Need to activate the context menu at least once (i.e right-click on the grid) to reproduce the leak.

Memory doesn't leak if I either remove the ContextMenuService.PlacementTarget or the Header="{Binding SomeProperty}".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008161)
sfernandez   
2022-11-16 16:39   
Solved in changeset r11723


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1338 [NoesisGUI] C++ SDK major always 2018-10-30 13:22 2022-11-16 16:38
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: cyclic reference when using child user control with DataContext binding on the Parent Control
Description: simplified XAML for Window:

<Window x:Class="TrackEditor"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Background="#303033" Height="300" Width="900"
        Title="Track editor" x:Name="window" IsEnableWindowButtons="True">

  <Grid>
   
<!--UserControl.-->
    <WindowCaption Height="30" VerticalAlignment="Top" Background="#01000000" Margin="1,1,30,1" DataContext="{Binding ElementName=window}">
    </WindowCaption>

  </Grid>
</Window>


if you use DataContext = "{Binding ElementName = window}"> then when you destroy a window, mView.Reset () does not call WindowCaption () destructor and you cannot destroy Window () because of NumRefCounts > 1

Window is holding a WindowCaption,
WindowCaption holds a window
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008160)
sfernandez   
2022-11-16 16:38   
Solved in changeset r11723


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1287 [NoesisGUI] C++ SDK minor always 2018-04-10 11:02 2022-11-16 16:37
Reporter: hcpizzi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Circular dependency produces memory leaks
Description: Attached xaml demonstrates the problem. The ToolTip binding to an ancestor is the source of the problem, without that binding there is no memory leak.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CircularDependency.xaml (325 bytes) 2018-04-10 11:02
https://www.noesisengine.com/bugs/file_download.php?file_id=931&type=bug
Notes
(0005343)
sfernandez   
2018-11-23 19:31   
(Last edited: 2022-06-27 14:01)
The solution is:
- When an element gets Unloaded from the UI tree, detect properties with a binding expression and reset all the values stored in the DP.
- Once element is added to the UI tree again (Loaded), then evaluate those expressions again to restore the effective value.

When property is not using bindings, at least we should show a warning indicating the possible memory leaks and what property is causing it.
(0008159)
sfernandez   
2022-11-16 16:37   
Solved in changeset r11723


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2430 [NoesisGUI] Unreal major always 2022-09-23 13:07 2022-11-15 16:55
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Noesis widget blocks input for other UMG widgets or actor mouse over events
Description: Related to forum posts:
https://www.noesisengine.com/forums/viewtopic.php?t=2718
https://www.noesisengine.com/forums/viewtopic.php?t=1273

The current implementation blocks input because Noesis widget is changing default Visibility to Visible and the widget geometry covers the entire screen.
We have to leave the default Visibility set to SelfHitTestInvisible, so we can perform a HitTest with the actual UI elements of the Noesis View to determine if Noesis widget should block the input.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: HittestFix.patch (4,229 bytes) 2022-09-23 14:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1689&type=bug
Notes
(0008083)
hcpizzi   
2022-09-23 14:57   
Hi,

We've found a way to overcome this issue. I've attached a patch with our solution. It requires setting the Visibility in the NoesisView to SelfHitTestInvisible or "Not Hit-Testable (Self Only)" as is displayed in the editor.

With these changes NoesisViews should behave like UMG Widgets with respect to the Visibility property:

Visible means inputs are blocked, even in areas with no background.
SelfHitTestInvisible means inputs are only blocked if you are hitting an active part of the UI.
HitTestInvisible means every input is ignored.

We've also made the change to make SelfHitTestInvisible the default Visibility value for NoesisViews. This is what UMG does, and the only reason we defaulted fo Visible was because otherwise we wouldn't get any input events.

Please, try this patch and let us know if this fixes the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2413 [NoesisGUI] Unity3D major always 2022-09-07 15:09 2022-11-15 14:07
Reporter: t-ifs Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: NoesisPostprocess in Unity causes the editor to get stuck
Description: There seems to be a wide ranging issue with Unity 2021 where after using the play mode, many different types of errors created in the asset XAML files will cause the Unity Editor to freeze waiting for the assets to be processed and Unity editor has to be forcefully terminated to proceed from this. The error seems to reproduce most commonly when having two controls with the same name present in the xaml file, but only after play mode has been entered at least once.
Tags:
Steps To Reproduce: Create an empty Unity project with 2021.3.9f1
Import Noesis package into the project
Import Buttons sample from the package
Open Buttons sample Scene
Enter Play Mode
Exit Play Mode
Open MainWindow.xaml in text editor
Duplicate the whole <Button x:Name="StartButton" /> in the Xaml file (do not rename the duplicated control) and save
Refocus Unity and see how the Editor gets stuck processing the asset
Additional Information:
Attached Files: image.png (34,234 bytes) 2022-09-07 15:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1676&type=bug
Notes
(0008058)
jsantos   
2022-09-08 10:41   
Thank you for the time to report this. We were in conversations with Unity, time ago, with a problem in our importers, but we were unable to give them a deterministic way to reproduce. We will investigate this issue soon.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2260 [NoesisGUI] C# SDK minor always 2022-02-07 20:47 2022-11-15 13:02
Reporter: sumel007 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Inheriting from AnimationTimeline is not supported yet in C#
Description: As described in this thread, it's not possible to inherit from AnimationTimeLine to animate types that do not have their own animation classes out of the box.
https://www.noesisengine.com/forums/viewtopic.php?f=3&p=13926#p13926
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2372 [NoesisGUI] Unity3D feature N/A 2022-07-05 12:38 2022-11-15 13:01
Reporter: ismael_aheartful Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Custom Animations Unsupported on Unity / C#
Description: I ran into an issue in our project with animations. I was trying to create a panel that can fade In/Out in the middle of the other animation, interrupting the Fade In for the Fade Out, or the other way around, starting the animation with the current opacity value (only using "To", not "From"). I created a custom animation extending from DoubleAnimation in our Blend project, to solve the issue with the duration of those animations having always the same duration with less value difference, and changed it to have constant speed or delta, so the animation feels the same with any starting opacity value.

The problem is that it is not supported on C#/Unity, as I was being told in the forums by jsantos, after I tried the code and Found that there's no way to extend any base or defined animation class in the Noesis package. So for the moment I have to approach the issue adjusting the design a bit.

Here's a simple snippet of the class that works as intented on Blend.


using System;
using System.Windows;
using System.Windows.Media.Animation;

public class DoubleFixedSpeedAnimation : DoubleAnimation {

        public static readonly DependencyProperty ValuePerSecondProperty = DependencyProperty.Register("ValuePerSecond", typeof(double), typeof(DoubleFixedSpeedAnimation));

        public double ValuePerSecond {
            get { return (double)GetValue(ValuePerSecondProperty); }
            set { SetValue(ValuePerSecondProperty, value); }
        }
        protected override Freezable CreateInstanceCore() {
            return new DoubleFixedSpeedAnimation();
        }
        protected override double GetCurrentValueCore(double defaultOriginValue, double defaultDestinationValue, AnimationClock animationClock) {
            double destinationValue = To ?? defaultDestinationValue;
            double originValue = From ?? defaultOriginValue;
            double value = originValue + ValuePerSecond * animationClock.CurrentTime.Value.TotalSeconds;
            return ValuePerSecond > 0 ? Math.Min(destinationValue, value) : Math.Max(destinationValue, value);
        }
    }
Tags: Animations, C#, Unity
Steps To Reproduce: - Implement a class extending from AnimationBase or any implemented animation like DoubleAnimation.
- Works on Blend project.
- Unsupported on Unity.
Additional Information:
Attached Files:
Notes
(0008155)
sfernandez   
2022-11-15 13:01   
Added new sample to GitHub: https://github.com/Noesis/Tutorials/tree/master/Samples/CustomAnimation


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2452 [NoesisGUI] C++ SDK minor always 2022-11-04 16:26 2022-11-14 16:31
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: can't make a resource from an enum value
Description: <PlacementMode x:Key="IconPlacement">Top</PlacementMode>

when I tried making this resource , noesis threw an error, it seems to be fine in wpf though
assert: Enum node can't have attributes.
Tags:
Steps To Reproduce: place
<PlacementMode x:Key="IconPlacement">Top</PlacementMode>


in a ResourceDictionary and
and use it some where
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2459 [NoesisGUI] C# SDK minor always 2022-11-14 07:35 2022-11-14 15:56
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: PolyLineSegment constructor has invalid signature
Description: PolyLineSegment class has a constructor with the following signature:

public PolyLineSegment(ref Point points, uint numPoints, bool isStroked)

which should be:

public PolyLineSegment(IEnumerable<Point> points, bool isStroked)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2377 [NoesisGUI] Unity3D minor always 2022-07-12 23:47 2022-11-14 14:19
Reporter: Feldruebe Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Font Importer cannot be changed
Description: Same Behaviour as in 0002262.
Noesis: 3.1.5
Unity Version: Unity 20221.1.3f1
Tags:
Steps To Reproduce: See: 0002262

https://www.noesisengine.com/forums/viewtopic.php?t=2634
Additional Information:
Attached Files: Unity_Ofcs7iDH3C.png (91,599 bytes) 2022-07-12 23:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1663&type=bug
Notes
(0008152)
jsantos   
2022-11-14 14:19   
(Last edited: 2022-11-14 14:19)
Fixed with the following patch

Index: NoesisPostprocessor.cs
===================================================================
--- NoesisPostprocessor.cs	(revision 11702)
+++ NoesisPostprocessor.cs	(working copy)
@@ -101,8 +101,8 @@
             else if (IsFont(assetPath))
             {
                 // Noesis uses a custom font importer that replaces Unity's default one
-                if (AssetDatabase.GetImporterOverride(assetPath) == null)
+                if (assetImporter.importSettingsMissing)
                 {
                     AssetDatabase.SetImporterOverride<NoesisFontImporter>(assetPath);
                 }




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2438 [NoesisGUI] Unity3D major always 2022-10-06 23:03 2022-11-12 02:54
Reporter: CaptainCatSparrow Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Android
Summary: Unity URP camera stacking not working properly with Noesis GUI (GUI is invisible) on Android device
Description: NoesisGUI version 3.1.5
Unity version 2021.2.16f1
URP version 12.1.6
Tags: Android, Unity, Unity URP
Steps To Reproduce: A simple project to reproduce an issue is attached.
Camera stacking example with 2 camera: 1st is for 3d world, 2nd is for NoesisGUI. Everything works fine in Editor (Game/Simulator view) on Play.
On Android device NoesisGui is not visible, but button clicks/taps are working (in the attached example the text "Controls Gallery" in the center of the screen is tapable and changes non-noesis camera background color on tap).
Additional Information:
Attached Files: Gallery.zip (4,621,516 bytes) 2022-10-06 23:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1692&type=bug
Capture.rdc (1,549,154 bytes) 2022-10-09 23:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1693&type=bug
Notes
(0008092)
jsantos   
2022-10-07 12:46   
Thanks for the report.

One question, to see if this is Noesis or Unity related. If in the UI camera (2nd one), you render geometry instead of UI, does the geometry disappear too?
(0008093)
CaptainCatSparrow   
2022-10-07 14:01   
Just tested it: a 3D cube added to scene (in a view of UI camera) is visible both in editor and device.
(0008094)
CaptainCatSparrow   
2022-10-07 14:11   
Initially tested on Huawei Honor 9. Just tested on another device (Xiaomi Redmi Note 7), the issue is still reproducible
(0008095)
jsantos   
2022-10-07 18:04   
I will investigate this as soon as possible.

If you could send a renderdoc capture (from android) before that, I can start figuring out things.

Thanks!
(0008096)
CaptainCatSparrow   
2022-10-09 23:47   
Never actually worked with renderdoc, so if anything is wrong let me know
(0008097)
jsantos   
2022-10-10 11:04   
Thank you!
(0008151)
jsantos   
2022-11-12 02:54   
We have been testing different versions of URP recently and based on our measurements, we strongly encourage to avoid camera stacking on Android. There is a lot of overhead loading and storing intermediate render targets. It gives me the impression Camera Stacking is not well tested on Android (I would even say, URP in general). As you discovered is also buggy in comparison with how Desktop is implemented. Latest versions we tested (2022.1) are a bit better but still quite inefficient and buggy.

In NoesisGUI 3.1.6 we have exposed a new property in the View to control when the UI renderpass executes ("Injection Point"). This way, camera stacking can be avoided.

Please, feel free to reopen to comment.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2385 [NoesisGUI] Unity3D minor have not tried 2022-07-20 17:57 2022-11-12 02:47
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: UI not rendering when camera clearing set to SkyBox
Description: https://www.noesisengine.com/forums/viewtopic.php?t=2654
Tags:
Steps To Reproduce: 1) Make new project using "3D Core URP" template (Unity 2021.3.6f1)
2) Setup NoesisGUI package and add "Hello World Sample"
3) Open "Hello World Sample"
4) Run --> Works ok
5) Change Camera Background to Sky-Box
6) Run --> Only Skybox is shown
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2355 [NoesisGUI] C++ SDK feature have not tried 2022-05-26 13:08 2022-11-11 17:49
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Implement an official localization solution
Description: The approach could be to use a MarkupExtension that would be able to get localized strings from resource dictionaries. It will allow you to specify the source dictionary globally for a whole view, or locally for part of the UI using an inheritable attached property (and more things like fallback texts for design time), something like this:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:l="clr-namespace:Localization"
  l:Loc.Source="Languages/lang-en.xaml">
  <TextBlock Text="{l:Loc PageTitle, Id=Title}"/>
  ...
  <StackPanel l:Loc.Source="Languages/lang-fr.xaml">
    <TextBlock Text="{l:Loc Id=Name}"/>...
    <TextBlock Text="{l:Loc Id=Address}"/>...
  </StackPanel>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1963 [NoesisGUI] C++ SDK feature have not tried 2021-04-09 18:20 2022-11-11 17:48
Reporter: sfernandez Platform:  
Assigned To: maherne OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Create a RichTextFormatterBehavior or attached property
Description: Create a behavior or attached property that automatically parses an "html" formatted string
"< b >Lorem ipsum dolor sit amet, </ b > consectetur < i >adipiscing</ i > elit."

 and generates the corresponding inlines for a TextBlock.

<TextBlock>
  <Bold>Lorem ipsum dolor sit amet, </Bold> consectetur <Italic>adipiscing</Italic> elit.
</TextBlock>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: RichTextAttachedPropertyExample.zip (3,580 bytes) 2022-07-12 12:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1662&type=bug
Notes
(0007301)
sfernandez   
2021-06-17 11:24   
(Last edited: 2021-06-17 11:33)
The easiest and simplest way to expose this is through an attached property. We already provide some extensions in the Text class like noesis:Text.Placeholder, so we can add a new one for this:

<TextBlock noesis:Text.RichText="This is an [b]example[/b] of rich text"/>


(0007482)
sgonchar   
2021-09-27 19:24   
(Last edited: 2021-09-27 19:25)
Hello, wondering if we can get an ETA on this?

(0007488)
jsantos   
2021-09-28 16:51   
We had to remove this from 3.0.X because stabilizing 3.1.X has become the top priority.

Also, this feature is going to be an example in the Application framework, I am not even sure if the syntax we are going to use will be what you need (we are considering using something like markdown) or even if it will have all the features you need.

So probably we could have a call about this, we can provide a minimal template that you can improve.

Or wait for our example, but I am pretty sure you will add modifications.
(0007553)
sfernandez   
2021-11-02 11:44   
(Last edited: 2021-11-02 11:45)
The idea is having an attached property:

<TextBlock local:TextHelpers.FormattedText="To [B]shoot[/B] something, hold [INPUT:AIM_WEAPON] and then press [INPUT:FIRE_GUN]."/>


With a property changed callback that processes the original string and generates the corresponding inlines, something like this:

static void OnFormattedTextChanged(DependencyObject* d, const DependencyPropertyChangedEventArgs& e)
{
    TextBlock* textBlock = DynamicCast<TextBlock*>(d);
    if (textBlock != nullptr)
    {
      InlineCollection* inlines = textBlock->GetInlines();
      inlines->Clear();

      const String& str = e.NewValue<String>();
      Vector<Token> tokens = ParseFormattedText(str.Str());
      for (Token token: tokens)
      {
        switch (token.type)
        {
          case TokenType_Run:
            inlines->Add(MakePtr<Run>(token.text.Str()));
            break;
          case TokenType_Bold:
            inlines->Add(MakePtr<Bold>(MakeRun<Run>(token.text.Str())));
            break;
          case TokenType_Image:
            Ptr<Image> image = MakePtr<Image>();
            image->SetSource(token.imageSource);
            inlines->Add(MakePtr<InlineUIContainer>(image));
            break;
          ...
        }
      }
    }
}


(0007942)
sfernandez   
2022-05-26 13:20   
We can extend this even with support for generating bindings automatically, for example, given the following formatted string:

The cost of fuel is: [b]{Fuel.Cost}[/b]


We can generate something like this:

<TextBlock>
  <Run Text="The cost of fuel is:"/>
  <Bold><Run Text="{Binding Fuel.Cost}"/></Bold>
</TextBlock>


That will automatically bind to the TextBlock data context.
(0008007)
sfernandez   
2022-07-01 11:31   
Related to this forum post: https://www.noesisengine.com/forums/viewtopic.php?p=14304&hilit=1963#p14253
(0008016)
maherne   
2022-07-11 16:51   
We have created an example RichText attached property, which will be included in an upcoming release. I've attached the example here in case you wish to start using it.

This example is ready for use in production, and can be easily modified to support new BBCode tags.

Documentation for use of the attached property, and for extending the BBCode tag support, can be found in comments within the RichText.h and RichText.cpp files.
(0008017)
maherne   
2022-07-12 12:20   
Updated example, with an XML namespace correction.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2454 [NoesisGUI] Unity3D major always 2022-11-05 21:35 2022-11-09 16:26
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: XAML Graphics Corruption
Description: The following XAML icons are replaced with... render target output? See the "Reactor" icon in the top left. The icon is missing and instead it shows a grayscale view of the current render target. The same thing appears under "Device Bays" and it flickers. I am passing a render target texture to a rectangle underneath this XAML layer.

It seems like it could be related to sorting, or the use of a render target texture within a XAML control. I believe I picked up this behavior in 3.1.5.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (1,698,380 bytes) 2022-11-05 21:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1704&type=bug
crash.dmp (3,856,521 bytes) 2022-11-06 20:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1705&type=bug
ShipScreen.xaml (25,058 bytes) 2022-11-07 15:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1707&type=bug
Notes
(0008114)
stonstad   
2022-11-06 20:53   
Just following up on this behavior. 3.1.5 is essentially unusable for me due to the frequency of crashes. It would seem I can't do much anything UI related without a crash containing DragEventArgs_GetAllowedEffectsHelper in the call stack.


0x00007FF9A419DE2B (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A41BBF8A (d3d11) D3D11CreateDeviceAndSwapChain
0x00007FF9A419EB86 (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A419FBCC (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A41A05FE (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A41A0D64 (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A418E4ED (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A41AC429 (d3d11) EnableFeatureLevelUpgrade
0x00007FF9A41AC3D2 (d3d11) EnableFeatureLevelUpgrade
0x00007FF8923D2EA8 (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FF8923D307B (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FF892353C44 (Noesis) Noesis_RenderDeviceD3D12_WrapTexture
0x00007FF892352B45 (Noesis) Noesis_RegisterLogCallback
0x00007FF8921B289C (Noesis) NullableSize_GetStaticType
0x00007FF8923BA053 (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FF8923BA1DE (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FF89211EF68 (Noesis) Uri_GetStaticType
0x00007FF89220E394 (Noesis) MultiBindingExpression_UpdateSource
0x00007FF89220CAA8 (Noesis) MultiBindingExpression_UpdateSource
0x00007FF89235148F (Noesis) Noesis_RegisterLogCallback
0x00007FF7305EA72A (Unity) GfxDeviceWorker::RunCommand
0x00007FF7305F183D (Unity) GfxDeviceWorker::RunExt
0x00007FF7305F1958 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF72EC82FC7 (Unity) Thread::RunThreadWrapper
0x00007FF9A997244D (KERNEL32) BaseThreadInitThunk
0x00007FF9AABCDFB8 (ntdll) RtlUserThreadStart
(0008118)
stonstad   
2022-11-07 15:38   
Here is the associated XAML.
(0008148)
stonstad   
2022-11-08 21:10   
OK to close. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2456 [NoesisGUI] C++ SDK feature always 2022-11-08 05:57 2022-11-08 11:35
Reporter: mbailey Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: iOS
Summary: Display::Close() for iOS
Description: Continuing on from 0002366, we would like to ask for an implementation for `Display::Close()` for iOS (ie. `UIKitDisplay`) as well. This is only needed for test apps, but currently we do not have a way to exit from `UIKitDisplay::EnterMessageLoop()` during automated testing. Most alternatives to `Display::Close()` led us to crashing the app which triggers Apple's Crash Reporting UI, less than ideal for CI.

Apple has provided an example implementation of what changes you should make to the current usage of `[[NSRunLoop currentRunLoop] run]` here that allows exiting:
https://developer.apple.com/documentation/foundation/nsrunloop/1412430-run?language=objc

Given the above example, a call to `Display::Close()` would then probably set `shouldKeepRunning = NO`, hopefully allowing us to return from `UIKitDisplay::EnterMessageLoop()` to shutdown our testing without needing to crash the app.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2440 [NoesisGUI] C++ SDK minor always 2022-10-14 10:57 2022-11-08 00:30
Reporter: AnKor Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Inline enum reflection causes duplicate definition linker error
Description: Using NS_IMPLEMENT_INLINE_REFLECTION_ENUM in a header that is included in more than one file causes linker errors:

error LNK2005: "public: static void __cdecl Noesis::TypeEnumFiller<enum Test::TestEnum>::Fill(class Noesis::TypeEnumCreator<enum Test::TestEnum> &)" (?Fill@?$TypeEnumFiller@W4TestEnum@Test@@@Noesis@@SAXAEAV?$TypeEnumCreator@W4TestEnum@Test@@@2@@Z) already defined in ***.obj
error LNK2005: "public: static class Noesis::TypeEnum const * __cdecl Noesis::TypeEnumFiller<enum Test::TestEnum>::GetType(void)" (?GetType@?$TypeEnumFiller@W4TestEnum@Test@@@Noesis@@SAPEBVTypeEnum@2@XZ) already defined in ***.obj

The fix is described here: https://www.noesisengine.com/forums/viewtopic.php?t=2750
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2195 [NoesisGUI] Unity3D feature always 2021-11-18 02:46 2022-11-07 17:14
Reporter: sericaer Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Support BaseUri which in ParserContext
Description: If the ParserContext is implemented, developer can use it for make a modable game.
such as below code:

                var pc = new ParserContext
                {
                    BaseUri = new Uri(modPath + mod + "/", UriKind.Absolute)
                };

                var viewComponent = XamlReader.Parse(xaml, pc) as FrameworkElement;
                return viewComponent;

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2476&sid=1ed60522610630d4abe663d030b50db1
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2185 [NoesisGUI] C# SDK feature have not tried 2021-11-11 14:10 2022-11-07 17:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Provide a way to know the latest input device that interacted with the View
Description: In WPF you can ask the InputManager about that:
if (InputManager.Current.MostRecentInputDevice is KeyboardDevice)


In Noesis that information is not yet available, but it could be provided by the View, maybe something like this:
private void OnButtonClicked(object sender, RoutedEventArgs e)
{
  if (View.MostRecentInput == InputType.Mouse) { ... }
  else if (View.MostRecentInput == InputType.Keyboard) { ... }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2113 [NoesisGUI] C++ SDK major always 2021-09-15 12:02 2022-11-07 17:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: TwoWay property should not notify of changes if bound property returns the old value
Description: When a TwoWay dependency property is bound to a view model and the property is changed it tries to update the bound value in the viewmodel. If the viewmodel refuses to change and returns the same old value, the dependency property should not notify of any changes as it occurs in WPF.

For example:

<CheckBox x:Name="check" IsChecked="{Binding Selected}"/>

public class ItemData : INotifyPropertyChanged
{
    public ItemData() { selected = true; }

    private bool selected;
    public bool Selected
    {
        get { return selected; }
        set { // do nothing }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

After setting check.IsChecked to False, the CheckBox should NOT raise the Unchecked and Checked events, and it should remain checked.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2080 [NoesisGUI] Unreal crash always 2021-08-10 11:28 2022-11-07 17:14
Reporter: daniel.janak Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Dynamically created RadioButtons inside a ListBox crashed when using GroupName
Description: We were incorporating design where there were radio buttons inside content ListBox to form a sort of a non-standard grid, howere it looks like when they are loaded and unloaded in the same frame possibly due to Virtualization, the game and the thread freezes and never unfreezes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007392)
sfernandez   
2021-08-30 19:58   
I was unable to reproduce the issue. Could you please attach the Visual Studio debugger and generate a minidump when the game freezes?
Are you using NoesisTheme for the ListBox/ListBoxItem styles?
(0007439)
sfernandez   
2021-09-13 13:34   
(Last edited: 2021-09-13 13:35)
Callstack when UI gets frozen:

    [External Code]    
>   [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::SpinMutex::Acquire() Line 87    C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::SpinMutex::ScopedLock::{ctor}(Noesis::SpinMutex &) Line 129 C++
    UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnChecked(const Noesis::RoutedEventArgs & e) Line 94      C++
    UE4Editor-NoesisCore.dll!Noesis::ToggleButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 164 C++
    UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 118    C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1260     C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 894 C++
    UE4Editor-NoesisCore.dll!Noesis::ValueStorageManagerImpl<Noesis::Nullable<bool>>::SetValue(Noesis::DependencyObject * dob, const Noesis::DependencyProperty * dp, Noesis::BaseComponent * value, unsigned char priority, Noesis::Expression * expression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination) Line 233 C++
    UE4Editor-NoesisCore.dll!Noesis::ValueStorageManager::SetValueObject(Noesis::DependencyObject * dob, const Noesis::DependencyProperty * dp, Noesis::BaseComponent * value, unsigned char priority, Noesis::Expression * expression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination) Line 39    C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyProperty::SetValueObject(Noesis::DependencyObject *) Line 208   C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetExpression(const Noesis::DependencyProperty * dp, Noesis::Expression * newExpression, unsigned char priority) Line 698   C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalInvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 1109 C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 291   C++
    UE4Editor-NoesisCore.dll!Noesis::BindingExpression::TransferSourceValue(const void * value) Line 1384    C++
    UE4Editor-NoesisCore.dll!Noesis::BindingExpression::AfterSet(Noesis::DependencyObject * obj, const Noesis::DependencyProperty * prop, const void * value, bool __formal) Line 334    C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::NotifyLocalExpression(Noesis::Expression * expression, const Noesis::DependencyProperty *) Line 1394  C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 896 C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::SetValue_(Noesis::Int2Type<0>) Line 180 C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::SetCurrentValue(const Noesis::DependencyProperty * dp, const Noesis::Nullable<bool> &) Line 95 C++
    UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnChecked(const Noesis::RoutedEventArgs & e) Line 100      C++
    UE4Editor-NoesisCore.dll!Noesis::ToggleButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 164 C++
    UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 118    C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::Init() Line 515 C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::InitComponent(Noesis::IComponentInitializer * component, bool) Line 39   C++
    UE4Editor-NoesisCore.dll!Noesis::BaseUICollection::Init() Line 48 C++
    UE4Editor-NoesisCore.dll!Noesis::Grid::OnInit() Line 163 C++
    UE4Editor-NoesisCore.dll!Noesis::DependencyObject::Init() Line 410 C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::InitComponent(Noesis::IComponentInitializer * doInit, bool) Line 39    C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::SetSingleVisualChild(Noesis::Visual * child) Line 1408  C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::ApplyTemplate() Line 636 C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2123 C++
    UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
    UE4Editor-NoesisCore.dll!Noesis::Grid::SimpleMeasure(const Noesis::Size & availableSize) Line 308    C++
    UE4Editor-NoesisCore.dll!Noesis::Grid::MeasureOverride(const Noesis::Size & availableSize) Line 276    C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
    UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1502      C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
    UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
    UE4Editor-NoesisCore.dll!`anonymous namespace'::MeasureHelper::Measure<`anonymous namespace'::LayoutHelper::Vertical>(const Noesis::Size & availableSize, const Noesis::Size & viewport, Noesis::UIElementCollection * children, bool isScrolling, Noesis::StackPanelScrollData * scrollData) Line 269   C++
    UE4Editor-NoesisCore.dll!Noesis::StackPanelHelper::Measure(Noesis::Orientation orientation, const Noesis::Size & availableSize, Noesis::UIElementCollection * children, bool isScrolling, Noesis::StackPanelScrollData * scrollData) Line 491   C++
    UE4Editor-NoesisCore.dll!Noesis::VirtualizingStackPanel::MeasureOverride(const Noesis::Size & availableSize) Line 374      C++
    UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
    UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::ViewLayout::ProcessMeasures() Line 586     C++
    UE4Editor-NoesisCore.dll!Noesis::ViewLayout::ProcessLayout() Line 437     C++
    UE4Editor-NoesisCore.dll!Noesis::ViewLayout::Layout(bool raiseRendering) Line 316      C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::View::UpdateContent() Line 903    C++
    [Inline Frame] UE4Editor-NoesisCore.dll!Noesis::View::InternalUpdate(double) Line 887  C++
    UE4Editor-NoesisCore.dll!Noesis::View::Update(double timeInSeconds) Line 820     C++
    UE4Editor-NoesisRuntime.dll!UNoesisInstance::Update(float InLeft, float InTop, float InWidth, float InHeight) Line 412  C++
    UE4Editor-NoesisRuntime.dll!UNoesisInstance::NativeTick(const FGeometry & MyGeometry, float InDeltaTime) Line 644    C++
    UE4Editor-UMG.dll!SObjectWidget::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 111     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1303 C++
    UE4Editor-Slate.dll!SConstraintCanvas::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 226   C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31     C++
    UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31     C++
    UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35     C++
    UE4Editor-Engine.dll!SGameLayerManager::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 292   C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35     C++
    UE4Editor-Slate.dll!SViewport::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 145   C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31     C++
    UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31     C++
    UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35     C++
    UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
    UE4Editor-SlateCore.dll!SWindow::PaintSlowPath(const FSlateInvalidationContext & Context) Line 2058     C++
    UE4Editor-SlateCore.dll!FSlateInvalidationRoot::PaintInvalidationRoot(const FSlateInvalidationContext & Context) Line 240 C++
    UE4Editor-SlateCore.dll!SWindow::PaintWindow(double CurrentTime, float DeltaTime, FSlateWindowElementList & OutDrawElements, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 2090     C++
    UE4Editor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,0> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1056   C++
    UE4Editor-Slate.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,0> DrawOnlyThisWindow) Line 1279 C++
    UE4Editor-Slate.dll!FSlateApplication::DrawWindows() Line 1017  C++
    UE4Editor-Slate.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime) Line 1569      C++
    UE4Editor-Slate.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1423     C++
    UE4Editor.exe!FEngineLoop::Tick() Line 4946     C++
    [Inline Frame] UE4Editor.exe!EngineTick() Line 62      C++
    UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 169   C++
    UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 293 C++
    [External Code] 


(0007443)
sfernandez   
2021-09-15 11:06   
(Last edited: 2021-09-15 11:08)
I've been trying to reproduce this issue and the only way to freeze it is if the item viewmodel does not update the value bound to the IsChecked property on its setter. For example:

struct ItemData: public BaseComponent, public INotifyPropertyChanged
{
    ItemData(bool s): selected(s) { }

    bool selected;
    bool GetSelected() const { return selected; }
    void SetSelected(bool value)
    {
        // do nothing here?
    }

    PropertyChangedEventHandler& PropertyChanged() override { return changed; }
    PropertyChangedEventHandler changed;

    NS_IMPLEMENT_INTERFACE_FIXUP

    NS_IMPLEMENT_INLINE_REFLECTION(ItemData, BaseComponent)
    {
        NsImpl<INotifyPropertyChanged>();
        NsProp("Selected", &ItemData::GetSelected, &ItemData::SetSelected);
    }
};

<DataTemplate x:Key="it">
  <RadioButton GroupName="options" Content="Selected?" IsChecked="{Binding Selected}"/>
</DataTemplate>

What happens with this scenario is that when a RadioButton is Checked it unchecks other buttons in the same group.
When the binding updates the source value ("Selected"), as it doesn't really change, the binding tries to restore the property value back to true to sync it with the view model, leading to a new Checked event.
We should find a way to avoid freezing in this scenario but it looks that something is not correct in the view model too, could you check that?

(0007474)
daniel.janak   
2021-09-23 09:58   
(Last edited: 2021-09-23 10:31)
Hi, we use FGuid as a check if the button is selected. So the Selected binding is a getter and setter. In setter, it sets a player FGuid assigned in view model to our gameplay system if true, and in getter it checks the system if the FGuid corresponds to the one stored in the view model for the button.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1937 [NoesisGUI] C# SDK feature always 2021-03-10 16:19 2022-11-07 17:14
Reporter: Faerdan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.10  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Expose FrameworkElement AddLogicalChild(object) and RemoveLogicalChild(object) methods
Description: FrameworkElement.AddLogicalChild(object) and FrameworkElement.RemoveLogicalChild(object) allow for management of the logical tree.

https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement.addlogicalchild?view=net-5.0
https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement.removelogicalchild?view=net-5.0

These methods are required to allow logical tree based binding within dependency property values.

Example (works in WPF):
<common:TextContentControl Text="((holdingsScreen_txt_title))">
  <common:TextContentControl.TextParameters>
    <common:ParameterViewData Key="key2" Value="{Binding CurrenciesData.Fuel}" />
  </common:TextContentControl.TextParameters>
</common:TextContentControl>


private static void OnTextParametersChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    if (d is TextContentControl textContentControl)
    {
        if (e.OldValue != null)
        {
            textContentControl.RemoveLogicalChild(e.OldValue);
        }
        if (e.NewValue != null)
        {
            textContentControl.AddLogicalChild(e.NewValue);
        }
    }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007717)
Faerdan   
2022-01-07 10:56   
Any update on when this feature will be added? I've tried the recommended workaround, binding to an ElementName, but this doesn't work either. The Value properties below are empty in the code behind.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<controls:TextControl x:Name="label_level" Text="((txt.heroUnitsScreen.label_level))" >
    <controls:TextControl.TextParameters>
        <common:ParameterViewData Key="currentLevel" Value="{Binding DataContext.HeroUnit.Level, ElementName=label_level}"/>
        <common:ParameterViewData Key="actualWidth" Value="{Binding ActualWidth, ElementName=label_level}"/>
    </controls:TextControl.TextParameters>
</controls:TextControl>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public static readonly DependencyProperty TextParametersProperty =
            DependencyProperty.Register(nameof(TextParameters), typeof(ParameterCollection), typeof(TextControl),
                new PropertyMetadata(null, OnTextParametersChanged));
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public class ParameterCollection : FreezableCollection<ParameterViewData> { }
    
    public class ParameterViewData : Freezable, ITextParameter
    {
        public string Key
        {
            get { return (string)GetValue(KeyProperty); }
            set { SetValue(KeyProperty, value); }
        }
        public static readonly DependencyProperty KeyProperty = DependencyProperty.Register(
            nameof(Key), typeof(string), typeof(ParameterViewData),
            new PropertyMetadata(null));
        public object Value
        {
            get { return (object)GetValue(ValueProperty); }
            set { SetValue(ValueProperty, value); }
        }
        public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
            nameof(Value), typeof(object), typeof(ParameterViewData),
            new PropertyMetadata(null));

#if !NOESIS
        protected override Freezable CreateInstanceCore()
        {
            return new ParameterViewData();
        }
#endif
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(0007720)
sfernandez   
2022-01-10 18:18   
Hi, this issue was not planned for the next version yet, I'll add it to our roadmap.

I just verified that the workaround works as expected if you use Animatable as the base class for the params class:
    public class ParameterViewData : Animatable
    {
        public string Key
        {
            get { return (string)GetValue(KeyProperty); }
            set { SetValue(KeyProperty, value); }
        }
        public static readonly DependencyProperty KeyProperty = DependencyProperty.Register(
            nameof(Key), typeof(string), typeof(ParameterViewData),
            new PropertyMetadata(null));
        public object Value
        {
            get { return (object)GetValue(ValueProperty); }
            set { SetValue(ValueProperty, value); }
        }
        public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
            nameof(Value), typeof(object), typeof(ParameterViewData),
            new PropertyMetadata(null));
    }

    public class ParameterCollection : FreezableCollection<ParameterViewData> { }

    public class TextControl : ContentControl
    {
        public ParameterCollection TextParameters
        {
            get { return (ParameterCollection)GetValue(TextParametersProperty); }
            set { SetValue(TextParametersProperty, value); }
        }
        public static readonly DependencyProperty TextParametersProperty = DependencyProperty.Register(
            "TextParameters", typeof(ParameterCollection), typeof(TextControl),
            new PropertyMetadata(null, OnTextParametersChanged));
        ...
    }


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2331 [NoesisGUI] C++ SDK feature have not tried 2022-04-14 11:14 2022-11-07 17:14
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Add Repeater support to Lottie
Description: Repeater is one of after effects base features allowing you to add a repeat function to any vector shape layer, path or object. Repeater duplicates the vector paths by creating and offsetting copies of it which can be manipulated in a consistent pattern. Note: Repeater is stackable and can repeat itself (this is based on layer hierarchy).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: AE_repeater_example.zip (58,878 bytes) 2022-04-14 12:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1623&type=bug
Notes
(0007901)
jsantos   
2022-04-14 12:07   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2305 [NoesisGUI] Unity3D crash have not tried 2022-03-09 20:13 2022-11-07 17:14
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Noesis Crashes Unity Editor On Button Click
Description:
Stack Trace:
0x00007FFE1A6FE1A7 (d3d11) (function-name not available)
0x00007FFE1A72CEF3 (d3d11) D3D11CoreCreateDevice
0x00007FFE1A730BB8 (d3d11) D3D11CoreCreateDevice
0x00007FFE1A718624 (d3d11) D3D11CoreCreateLayeredDevice
0x00007FFE1A718D1D (d3d11) D3D11CoreCreateLayeredDevice
0x00007FFE1A719072 (d3d11) D3D11CoreCreateLayeredDevice
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFE1A6FD915)
0x00007FFE1A6FD915 (d3d11) (function-name not available)
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFE1A6FD6D2)
0x00007FFE1A6FD6D2 (d3d11) (function-name not available)
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFE1A6FD692)
0x00007FFE1A6FD692 (d3d11) (function-name not available)
0x00007FFD47DBD3E8 (Noesis) MouseButtonEventArgs_ChangedButton_get
0x00007FFD47DBD5BB (Noesis) MouseButtonEventArgs_ChangedButton_get
0x00007FFD47D3E484 (Noesis) Noesis_RenderDeviceD3D12_WrapTexture
0x00007FFD47D3D385 (Noesis) Noesis_RegisterLogCallback
0x00007FFD47B9FFFC (Noesis) TextCompositionEventArgs_GetTextHelper
0x00007FFD47DA4783 (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FFD47DA490E (Noesis) Noesis_RenderDeviceGL_WrapTexture
0x00007FFD47B0E558 (Noesis) Uri_GetStaticType
0x00007FFD47BFA234 (Noesis) DragEventArgs_SetEffectsHelper
0x00007FFD47BF87D8 (Noesis) DragEventArgs_SetEffectsHelper
0x00007FFD47D3BC3F (Noesis) Noesis_RegisterLogCallback
0x00007FF67AD52FB4 (Unity) GfxDeviceWorker::RunCommand
0x00007FF67AD5970D (Unity) GfxDeviceWorker::RunExt
0x00007FF67AD59828 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF6794646C7 (Unity) Thread::RunThreadWrapper
0x00007FFE236054E0 (KERNEL32) BaseThreadInitThunk
0x00007FFE2480485B (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce: Clicked button and editor crashed. This appears to be new behavior in either Noesis 3.1.3 or Unity 2021.2.14f1. I suspect Noesis since it is in the stack trace but I am still gathering information. I do not know if it is repeatable.
Additional Information:
Attached Files: Crash_2022-03-09_190201906.zip (1,610,434 bytes) 2022-03-09 20:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1606&type=bug
Notes
(0007849)
stonstad   
2022-03-09 21:15   
Updating to report that this is not repeatable. It has not happened again so far.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2294 [NoesisGUI] Unreal feature have not tried 2022-02-28 15:42 2022-11-07 17:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Create Visual Studio project templates for Unreal
Description: Define a Visual Studio project template that allows creating Unreal projects with NoesisGUI.
There should be an option to select if you want to create a Blueprint or C++ project.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2254 [NoesisGUI] C# SDK feature always 2022-01-31 19:30 2022-11-07 17:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Support commands that inherit from DependencyObject
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2537

public class CommandProxy : DependencyObject, ICommand


This will allow creating commands with bindable properties.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2253 [NoesisGUI] C++ SDK minor always 2022-01-31 19:22 2022-11-07 17:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Converter not called when binding to TransformGroup that internally changes
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2535

In WPF the converter is called everytime a child transform changes any of its values.
Tags:
Steps To Reproduce:
<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:Testing">
  <Grid.Resources>
    <local:PassConverter x:Key="conv"/>
    <ControlTemplate x:Key="ct" TargetType="Control">
      <ControlTemplate.Resources>
        <Storyboard x:Key="anim">
          <DoubleAnimationUsingKeyFrames Storyboard.TargetName="scalingGrid" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
            <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:1" Value="3"/>
            <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1"/>
          </DoubleAnimationUsingKeyFrames>
        </Storyboard>
      </ControlTemplate.Resources>
      <Grid x:Name="scalingGrid" Background="Red" RenderTransformOrigin="0.5,0.5">
        <Grid.RenderTransform>
          <TransformGroup>
            <ScaleTransform/>
            <SkewTransform/>
            <RotateTransform/>
            <TranslateTransform/>
          </TransformGroup>
        </Grid.RenderTransform>
        <Grid RenderTransformOrigin="0.5,0.5" Margin="20" Background="#8000FF00" RenderTransform="{Binding RenderTransform, ElementName=scalingGrid, Converter={StaticResource conv}}"/>
      </Grid>
      <ControlTemplate.Triggers>
        <EventTrigger RoutedEvent="MouseEnter">
            <BeginStoryboard Storyboard="{StaticResource anim}"/>
        </EventTrigger>
      </ControlTemplate.Triggers>
    </ControlTemplate>
  </Grid.Resources>  
  <Control Width="100" Height="100" Template="{StaticResource ct}"/>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2447 [NoesisGUI] C++ SDK minor always 2022-10-26 17:40 2022-11-07 17:13
Reporter: echapin Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Windows
Summary: Directionally navigating to first or last item in view in scrolling TreeView does not bring full item into view
Description: Original forum post here: https://www.noesisengine.com/forums/viewtopic.php?t=2774

When directionally navigating down or up to bring a TreeViewItem into view within a scrolling TreeView, the item is not brought fully into view, resulting in the need to explicitly scroll down or up to view the rest of the item. The expectation would be that directionally navigating would scroll as much as needed to display the full item.
Tags: C++, xaml
Steps To Reproduce: Place more TreeViewItems than can be visible within a VirtualizingStackPanel inside of a TreeView and allow content to scroll.
Directionally navigate down from the last visible item to bring the next item into view.
The next item is only brought partially into view, resulting in needing to explicitly scroll to view the full item.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2444 [NoesisGUI] C++ SDK feature always 2022-10-18 10:18 2022-11-07 17:13
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: ObservableCollection's CollectionChanged event not working in EventTrigger
Description: CollectionChanged event is not exposed in the reflection and doesn't work with EventTrigger.

The following XAML won't fire the actions when "StickyLog" collection changes:

<b:Interaction.Triggers>
    <b:EventTrigger SourceObject="{Binding StickyLog}" EventName="CollectionChanged">
        <b:InvokeCommandAction Command="{Binding ElementName=CPanel, Path=ScrollToEndCommand}"/>
    </b:EventTrigger>
</b:Interaction.Triggers>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2439 [NoesisGUI] C++ SDK feature always 2022-10-10 10:22 2022-11-07 17:13
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: IsSelectionRangeEnabled/SelectionStart/SelectionEnd functionality is not implemented
Description: Slider properties IsSelectionRangeEnabled, SelectionStart and SelectionEnd exist in the Noesis implementation, however those properties are not functional.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008098)
sfernandez   
2022-10-11 10:30   
Hi, in WPF those properties are just informative and can be used in your custom template to show a range. But Slider's default implementation does not enforce its value/thumb to move inside that range, or have logic to modify the selection limits.
As explained here (https://social.msdn.microsoft.com/Forums/en-US/a9eb8697-3ae4-4045-9508-a75d6168a8af/customizing-the-primitive-slider-control-into-a-range-selector?forum=wpf) you can have a user control that adds a couple of Thumbs to control the selection limits, and then handle the SelectionChanged to make sure slider value does not goes out those limits. Is that what you are looking for?
(0008099)
sergey_sitnikov_ninjatheory   
2022-10-11 11:07   
Hi Sergio,

I have been referencing the UpdateSelectionRangeElementPositionAndSize() function in Slider.cs of the PresentationFramework. I can see that it directly uses SelectionEnd and SelectionStart properties and also utilises the element with specific name PART_SelectionRange . I couldn't find similar code in the Slider implementation of Noesis.
(0008100)
sfernandez   
2022-10-11 11:42   
So it is just the visual information that is not updated for the PART_SelectionRange, ok, we will implement it if that is what you need.
(0008101)
sergey_sitnikov_ninjatheory   
2022-10-11 11:49   
Thank you Sergio. At the moment, I have implemented using a custom control, however it would be great to see it as a part of the slider functionality.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2425 [NoesisGUI] C++ SDK minor always 2022-09-19 18:28 2022-11-07 17:13
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Incorrect render size when moving app window between different DPI monitors
Description: When a window is moved from one monitor to another with different DPI scale, the view is not resized and UI is rendered with the incorrect size.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: dpi-bug.png (25,164 bytes) 2022-09-19 18:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1685&type=bug
Notes
(0008075)
sfernandez   
2022-09-19 18:29   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2423 [NoesisGUI] C++ SDK major always 2022-09-16 09:32 2022-11-07 17:13
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Clicking on Button control may leave it in a invalid mouse capture state
Description: Since the ValidationRules feature in WPF has not been supported yet, we try to implement our own validating system for TextBox input. Basically it works by validating the input on LostFocus and if validation fails it will report the error and set the focus back to the TextBox. But we have the following issue when we use it on a dialog:

1. User enters an invalid input on TextBox
2. User clicks on a button control (the focus shifts to the button)
3. Validation runs (on TextBox LostFocus), and set the focus back to the TextBox
4. The button seems to have the mouse capture even though it has no focus. Clicking anywhere on the dialog will trigger the button's click.

It seems that there might be an issue in the implemetation of BaseButton::OnMouseLeftButtonDown, where it calls Focus on itself, and proceeds to capture the mouse without checking if the call to Focus is succesful. We have a patch to fix the issue (see attachment), but we're not sure if the original behavior is indeed intended, or if there's a better a solution.

It will also be nice to see the validation features in WPF implemented in the future.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: BaseButtonMouseDown.patch (613 bytes) 2022-09-16 09:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1683&type=bug
Notes
(0008084)
sfernandez   
2022-09-26 13:09   
Hello, checking with WPF it seems our behavior is the same. The Button keeps the mouse capture until you release the left mouse button. At that moment the Button will release the mouse capture and rise the Click event, even if the focus was already set to the TextBox. Later clicks won't be redirected to the Button.
Isn't that the behavior you are seeing?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2410 [NoesisGUI] Unity3D major always 2022-09-06 11:49 2022-11-07 17:13
Reporter: Rafael Munoz Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Triggers are not hot reloaded in some situations
Description: Marking it as mayor may be overkill but hot reload is a key feature for our workflows.

We have observed Interaction.Triggers are not hot reloaded for named Grids ( may happen for other components )
We can workaround it by nesting an unnamed panel inside the one that is not hot-reloading properly.
We confirmed that in Wpf works as expected.

We include a link to an small project that reproduces the issue but in summary.


<StackPanel Grid.Column="0" x:Name="NamedPanel" Background="Red">
    <b:Interaction.Triggers>
        <b:EventTrigger EventName="MouseDown">
            <local:LogAction Message="Mouse down on named panel"/>
        </b:EventTrigger>
    </b:Interaction.Triggers>
    ..........
</StackPanel>

This stops reporting mouse downs after hot reload, and we can "fix" it by removing x:Name or nesting another unnamed panel
Tags: HotReload, Unity
Steps To Reproduce: Open the example project in the following link
https://drive.google.com/file/d/11nuDYhb39AVcdRwHvV_wGMmRm1uV0aPj/view

Unity version: 2020.3.1f1

1.- Play MainScene
2.- Follow the instrucitons to observe that events are reported properly for both cases ( named and unnamed panel)
3.- Perform some change in MainWindow.xaml and save it so it hot reloads.
4.- Follow the instructions to observe that only the events registered in the unnamed panel keep triggering.

Expected: events registered by interaction triggers keep working after hot reload.

Additional Information:
Attached Files:
Notes
(0008053)
jsantos   
2022-09-07 11:01   
(Last edited: 2022-09-07 11:03)
Hot-reloading is being reimplemented for 3.2. Right now, almost all objects are recreated. We are implementing a more incremental algorithm that tries to keep as much state as possible.

But, thank you for the ticket. We will have a look at it too.
(0008054)
jsantos   
2022-09-07 11:06   
By the way, how important is "hot-reloading" for your workflow? Do yo use it everyday or occasionally? In the new version we are trying to push more teams to use it.
(0008056)
Rafael Munoz   
2022-09-07 17:07   
When programming is implementing base functional layout we use it a little less, but after that when designers iterate on the styles, placement, animations we use it a ton.

In fact we have in our code reviews a step just to check if it breaks anything in hot reload.

We had an issue where some things were not restored properly after a hot reload ( involving pure ui state ), and we discovered the hard way that Noesis strategy for hot reload is full destruction and reconstrucion so any purely visual state was lost.

We double checked in wfp that they seem to substitute the only part of the visual tree that changed, if they manage to identify a match, and somehow they keep things like current visual state.
We workaround it by adding additional state to the viewmodel that we probably wouldn't have in wpf.

For me hot-reload was one of the key features to choose noesis, we are not yet iterating "over the wire" on end-user devices but that is also very interesting :)
(0008057)
jsantos   
2022-09-08 10:38   
Thanks for your feedback. The new algorithm we are working on for 3.2 is more similar to WPF, avoiding destruction of objects as much as possible and retaining current state.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2407 [NoesisGUI] C# SDK minor always 2022-09-01 14:57 2022-11-07 17:13
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Linux
Summary: MediaPlayer does not fire MediaFailed event upon attempt to play corrupt video (in all cases)
Description: MediaPlayer does not fire MediaFailed event upon attempt to play corrupt video (in all cases)
Tags: C#
Steps To Reproduce: 1. Rename a jpg image as a .mp4
2. Attempt to play it
3. MediaFailed event is not fired
4. Observe this message
** (mp:14672): CRITICAL **: 03:32:53.903: gst_dmabuf_memory_get_fd: assertion 'gst_is_dmabuf_memory (mem)' failed
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2402 [NoesisGUI] C++ SDK minor always 2022-08-20 15:49 2022-11-07 17:13
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Global (private) symbols from NoesisApp
Description: NoesisApp currently uses several implementation-private symbols with "common" names without properly isolating them in their corresponding translation units:

`Audio.mm.cpp` : `struct Voice`
`FastLZ.cpp` : `struct Header`
`class *RenderTarget`
`class *Texture`

Please consider scoping them at least in an anonymous namespace, as the declared types are likely to clash with other libraries due to having global linkage.
Tags: C++
Steps To Reproduce: Try to link OpenAL-Soft and NoesisApp in the same application. Both provide the type `struct Voice` with an explicit contructor declaration and incompatible definitions.
Additional Information:
Attached Files:
Notes
(0008047)
jsantos   
2022-08-22 12:48   
Yes, those symbols should be in an anonymous namespace. By the way, RenderTarget and Texture are already in Noesis namespace. What do you exactly mean with `class *Texture` ?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2394 [NoesisGUI] Unity3D minor always 2022-08-03 16:56 2022-11-07 17:13
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Bug in error handling in EventTriggerBase.RegisterEvent(object source, string eventName)
Description: If the event in eventName is not present in source, the code should throw an ArgumentException when registering.
If EventTriggerBase.SourceObject has not yet been set, no Exception is thrown.

if (SourceObject != null)
{
    throw new ArgumentException(string.Format(
                            "EventTrigger cannot find event '{0}' in SourceObject '{1}'",
                            eventName, type));
}

Should throw on the source argument rather than SourceObject property, or SourceObject should be set before EventInfo is fetched.
Tags:
Steps To Reproduce: <Grid>
  <b:Interaction.Triggers>
      <b:EventTrigger EventName="Click" >
        
      </b:EventTrigger>
    </b:Interaction.Triggers>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2370 [NoesisGUI] C++ SDK major always 2022-07-02 07:35 2022-11-07 17:13
Reporter: satorp Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Windows
Summary: Crash when using lambda expression for delegate
Description: We experience crashes when using lambda expression for RoutedEvent handlers. The crash occurs under the following conditions:
1. The lambda expression contains captured variables
2. Inside the handler there's a code to add another event handler (using += etc)
3. Accessing a captured variable after the previous addition of event handler

Sample code:
-------------------------------------------------------------------------------------------------------
auto p = std::make_shared<Data>();
elem->Loaded += [p](auto sender, const auto& ea) {
   auto elem = DynamicCast<FrameworkElement*>(sender);
   elem->MouseRightButtonUp += ... // Add event handler
   p->DoSomething(); // Crash here when accessing p (its value becomes invalid)
}
-------------------------------------------------------------------------------------------------------

It seems that the cause is the use of HashMap to store the element's event handlers. The current HashMap implementation will reallocate the handlers at some point when resizing is necessary, and the executing handler will get destroyed before finishing its execution (the lambda member variables are also destroyed).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008009)
jsantos   
2022-07-05 16:45   
Problem is, our hashmap is not using stable pointers... So, probably we need to change the hashmap to contain pointer to Delegates instead of Delegates.

I want to analyze this carefully, because the change is going to increase the number of allocations.
(0008010)
sfernandez   
2022-07-05 16:46   
Reproduced with the following test:

struct Data
{
    int i;
    Data(int i_): i(i_) { }
    int Foo(int x) { return i + x; }
};

HashMap<int, Delegate<void(int)>> map;
map.Insert(0, [](int) {});

{
    std::shared_ptr<Data> data = std::make_shared<Data>(5);
    Delegate<void(int)> d = [data, &map](int i)
    {
        map.Insert(2, [](int) {});
        int r = data->Foo(i);
        printf("%d", r);
    };

    map.Insert(1, d);
}

HashMap<int, Delegate<void(int)>>::Iterator it = map.Find(1);
it->value(7);


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2369 [NoesisGUI] C++ SDK feature N/A 2022-07-01 11:29 2022-11-07 17:13
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Please add support of IsDefault and IsCancel of Buttons
Description: From the discussion here: https://www.noesisengine.com/forums/viewtopic.php?t=2641

Especially needed when handling input forms.

Thank you.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2368 [NoesisGUI] Unreal feature have not tried 2022-06-30 13:52 2022-11-07 17:13
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Add flag to NoesisInstance to control if view is rendering per frame
Description: As we do in Unity, we can expose a flag in the NoesisInstance (the view component) indicating if the view is rendering per frame, 'Continuous Rendering', or only when Update is reporting changes.

Investigate if we can use this when the view is used in a widget component (rendering to texture).

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2364 [NoesisGUI] C++ SDK feature always 2022-06-24 19:10 2022-11-07 17:13
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Support Polygon and Polyline shapes
Description: Implement missing shapes
- Polygon: https://docs.microsoft.com/en-us/dotnet/api/system.windows.shapes.polygon?view=windowsdesktop-6.0
- Polyline: https://docs.microsoft.com/en-us/dotnet/api/system.windows.shapes.polyline?view=windowsdesktop-6.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2362 [NoesisGUI] C++ SDK minor N/A 2022-06-23 08:31 2022-11-07 17:13
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Please remove NS_ASSERT from Activate/DeactivateWindow inside TSF.cpp
Description: We have several scenarios where the order of Activate/DeactivateWindow is not strictly

Activate wnd1
Deactivate wnd1
Activate wnd2
Deactivate wnd2
Activate wnd3

But

Activate wnd1
Activate wnd2 <- NS_ASSERT thrown inside ActivateWindow
Deactivate wnd2
Deactivate wnd1 <- NS_ASSERT thrown inside DeactivateWindow
Activate wnd3

instead. This especially often happens when wnd2 is a blocking modal dialog (i.e. called with DoModal).

I think the NS_ASSERT is only serving as a warning that a not-typical sequence happened but doesn't have any harm. So I prefer the code to emit WARNING log instead of NS_ASSERT.

I attached the patch in this issue. Could you please apply it in the next release.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TSF.patch (1,111 bytes) 2022-06-23 08:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1654&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2359 [NoesisGUI] Unity3D minor always 2022-06-10 14:06 2022-11-07 17:13
Reporter: jphyzic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: EventManager class handlers not cleaned up on domain unload
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?p=14282#p14282
Tags:
Steps To Reproduce: 0. Create XAML UI containing at least one TextBox
1. Register class handler, e.g. for TextBox.GotKeyboardFocus: EventManager.RegisterClassHandler(typeof(TextBox), TextBox.GotKeyboardFocusEvent, new KeyboardFocusChangedEventHandler(OnGotFocus), handledEventsToo: true);
2. Start Unity play mode
3. Stop Unity play mode and start again - log message appears `Class handler is already registered`
4. Click on any TextBox - when control gets keyboard focus Unity crashes
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2348 [NoesisGUI] C# SDK minor have not tried 2022-05-12 18:12 2022-11-07 17:13
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Triggers not working after reload in C#
Description: Triggers defined in a named element stop working after xaml gets hot-reloaded.

In the following xaml, the triggers in the START button work fine after reload.
But the triggers in END button, which has an x:Name, stop working.
Tags:
Steps To Reproduce:
  <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
    <Button Content="START" Width="400" Margin="0,10">
      <b:Interaction.Triggers>
        <b:EventTrigger EventName="MouseEnter">
          <b:ChangePropertyAction PropertyName="Content" Value="[ START ]"/>
        </b:EventTrigger>
        <b:EventTrigger EventName="MouseLeave">
          <b:ChangePropertyAction PropertyName="Content" Value="START"/>
        </b:EventTrigger>
      </b:Interaction.Triggers>
    </Button>
    <Button x:Name="EndButton" Content="END">
      <b:Interaction.Triggers>
        <b:EventTrigger EventName="MouseEnter">
          <b:ChangePropertyAction PropertyName="Content" Value="[ END ]"/>
        </b:EventTrigger>
        <b:EventTrigger EventName="MouseLeave">
          <b:ChangePropertyAction PropertyName="Content" Value="END"/>
        </b:EventTrigger>
      </b:Interaction.Triggers>
    </Button>
  </StackPanel>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2337 [NoesisGUI] C++ SDK minor have not tried 2022-04-28 13:35 2022-11-07 17:13
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: predicates store the itemsource, which kind of makes hard to reuse
Description: predicates store the itemsource, which kind of makes hard to reuse, when you make a second instance of the predicate, the itemsource in the predicate is replaced.
The CollectionFilterBehavior already has the filteredItem list and the Itemssource, if that could use the functions of the predicate instead of handing of the itemssource , we could reuse the filter multiple times
Tags:
Steps To Reproduce: make one predicate, put it in a itemstemplate and use that in a list
Additional Information:
Attached Files:
Notes
(0007915)
LarianStudios   
2022-04-28 13:35   
this is for both sort and filter I think


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2332 [NoesisGUI] C++ SDK feature have not tried 2022-04-14 11:16 2022-11-07 17:13
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.7  
Platform: Any
Summary: Shape tweening in Blend
Description: Use case - shape tweening - Shape to shape is best done in After Effects. We can make this process better by modifying the json to xaml python script to create a UserControl instead of a ResourceDictionary.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: AE_to_UserControl.zip (18,321 bytes) 2022-04-14 12:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1624&type=bug
Notes
(0007902)
jsantos   
2022-04-14 12:07   
(0008030)
jsantos   
2022-07-26 09:11   
We still didn't find time for this. Planned for 3.1.6 now. Thanks for your patience!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1232 [NoesisGUI] C++ SDK feature always 2018-02-06 05:16 2022-11-02 11:59
Reporter: nikobarli Platform: Windows  
Assigned To: jsantos OS: Windows 10  
Priority: normal OS Version: Windows 10 FCU  
Status: assigned Product Version: 2.1.0rc2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Weak pointer support
Description: This is follow up for the meeting with Jesus on Feb 1, 2018.

We feel that we sometimes need weak pointer to manage resources. Please consider adding this feature back in the future.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: BaseRefCounted.cpp.patch (2,211 bytes) 2022-10-24 12:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1697&type=bug
BaseRefCounted.h.patch (1,197 bytes) 2022-10-24 12:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1698&type=bug
BaseRefCounted.inl.patch (1,074 bytes) 2022-10-24 12:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1699&type=bug
Notes
(0008105)
jsantos   
2022-10-24 12:51   
(Last edited: 2022-10-24 12:51)
I am attaching a potential implementation for weak pointers in Noesis. We have plans to officially implement this in the future although we need more discussions.
(0008106)
satorp   
2022-10-26 07:01   
The patch looks promising. There is a concern in the way the handles are generated, which seems to be done by simply incrementing a global counter (int32) without reuse. In case when application up time is long and handle generation occurs frequently, this could possibly lead to an overflow (duplicated handles).
(0008110)
jsantos   
2022-11-02 11:59   
You are right about that potential handle collision. The alternative could be using 64-bit handles and user the pointer itself as handle. But that is also dangerous.

And alternative is using the 32 bits for a global counter and the lower 32 bits filled with a hash of the pointer. With this, the chances of collision are almost impossible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2450 [NoesisGUI] C++ SDK crash always 2022-10-31 11:39 2022-10-31 11:56
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Crashes on Pixel 6/7-family devices running Android 13
Description: Our customers using Google Pixel 6- and 7-family devices (e.g. Pixel 6, 6a, 6 Pro, etc.) are experiencing game crashes related to Noesis specifically when running Android OS version 13. These crashes did not appear to occur on Android 12, but if a Pixel 6 user upgrades to Android 13, they see the crashes, and Pixel 7 devices come with Android 13 out-of-the-box, and they are also experiencing crashes. The crashes occur 100% of the time with these devices on Android 13.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008108)
jsantos   
2022-10-31 11:55   
We detected this issue on Mali driver v1.r36, so, potentially more devices could be affected.
(0008109)
jsantos   
2022-10-31 11:56   
(Last edited: 2022-10-31 11:56)
Fixed in r11677 with the following patch:

Index: GLRenderDevice.cpp
===================================================================
--- GLRenderDevice.cpp	(revision 11676)
+++ GLRenderDevice.cpp	(working copy)
@@ -1654,6 +1654,12 @@
     NS_ASSERT(glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
     GL_OBJECT_LABEL(GL_FRAMEBUFFER, fbo, "Noesis_%s_FBO", label);
 
+    // Clear surface to always start with #0000 color
+    // This is also needed to avoid crashes on Google Pixel 6 & 7 devices (0002450)
+    V(glDisable(GL_SCISSOR_TEST));
+    V(glClearColor(0.0f, 0.0f, 0.0f, 0.0f));
+    V(glClear(GL_COLOR_BUFFER_BIT));
+
     // Resolve framebuffer
     if (colorAA != 0)
     {




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2446 [NoesisGUI] C++ SDK minor always 2022-10-25 10:49 2022-10-25 10:49
Reporter: maherne Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: XamlName and AlphaNumeric parsers do not support UTF8 characters
Description: XamlName (in XamlReaderExpr.h) and AlphaNumeric (in ParserExpr.h) use the isalpha/isalnum methods which expect an ASCII character as their input.

WPF/Blend support a wide range of alpha characters in type and property names.

Tags:
Steps To Reproduce: The following works in WPF/Blend, but not in Noesis. The 'é' in 'Painéal' causes the XamlName parser to fail and assert in isalnum.
<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:local="clr-namespace:LocalApp">
    <local:Painéal />
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2422 [NoesisGUI] C++ SDK minor always 2022-09-15 20:33 2022-10-06 19:54
Reporter: echapin Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: TreeViewItem capturing KeyDown event preventing directional navigation outside of the TreeView
Description: See description in forum post here:
https://www.noesisengine.com/forums/viewtopic.php?p=14684#p14684
Tags: xaml
Steps To Reproduce: Place a TreeView with multiple TreeViewItems below a separate focusable control in a grid. Directionally navigate down from the control to the TreeViewItem. Try to directionally navigate up back to the control. Focus will not leave the TreeViewItem.
Additional Information:
Attached Files:
Notes
(0008091)
sfernandez   
2022-10-06 19:54   
Fixed in changeset 11642


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2431 [NoesisGUI] C++ SDK major always 2022-09-23 23:21 2022-10-06 19:53
Reporter: ZGholson Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: MenuItem not receiving focus when in Treeview or ListView
Description: When opening a context menu inside of a treeview or listview, the focus does not shift to the context menu. Instead, it stays in the list / tree.
Tags: ContextMenu, Focus, Input, ListView, TreeView
Steps To Reproduce: Created a treeview. Add some treeviewitems to it. Then add a context menu to the treeview items. Attempt to open the context menu via onClick or some other means other than the right click. Attempt to navigate the context menu via dpad or joystick. The input will be applied to the tree view .
Additional Information:
Attached Files:
Notes
(0008090)
sfernandez   
2022-10-06 19:53   
Fixed in changeset 11642.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2433 [NoesisGUI] Inspector feature always 2022-09-27 00:36 2022-09-27 20:22
Reporter: sgonchar Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Snoop-like event logger
Description: Hello,
We'd like to request a snoop-like event logger.
Specifically looking to answer questions:
- where is the focus going, all the places that get evaluated to get focused but didn't and reasons why.
- - we can use PreviewGotKeyboardFocus to see what is focused but not the in-between steps
- - this is to answer "why didn't this thing I set focus to actually got focus?"
- what is input doing and where it's going:
- - specifically why is input ignored sometimes (often to do with focus), which element swallows it

Some discussed here: https://www.noesisengine.com/forums/viewtopic.php?p=14709#p14709
Cheers.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2432 [NoesisGUI] C++ SDK feature always 2022-09-26 14:17 2022-09-26 18:19
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Use PropertyChanged("") to indicate all props of a view model changed
Description: In WPF you can use PropertyChanged event with a null or empty string to indicate that all properties in a view model have changed.
We should implement this because it could have performance benefits in some situations, as with a single notification all the bindings to the object will be updated.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2426 [NoesisGUI] C++ SDK minor have not tried 2022-09-20 18:51 2022-09-26 14:14
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Inifnite recursion causing be self binding in VisualTreeInspector.cpp
Description: Hi guys,

One of our coders has identified an issue in the Visual Inspector tool caused by a "relative self" binding.

"Prevent self-referential infinite recursion causing stack overflow and game crash when a <custom control> is clicked on in the visual tree in the NoesisInspector.
This is caused by "<custom event>" event on "<custom control>" style, which has "Self" as CommandParameter."

This is the fix (between the comments). I've also uploaded a patch.

void NodeProperties_FromDependencyObject(Ptr<DependencyObject> depObject)
{
    Vector<const DependencyProperty*, 64> localProperties;
    VisualTreeInspectorHelper::RecursiveEnumerateProperties(depObject, [depObject, &localProperties](const DependencyProperty* property)
    {
        // SUMO:MT prevent self-referential infinite recursion
        if (property->GetValueObject(depObject) == depObject)
            return;
        // end

The crash was caused by adding a custom event into a style which has a binding to the self for the command parameter

        <Setter Property="Noesis:StyleInteraction.Triggers">
            <Setter.Value>
                <Noesis:StyleTriggerCollection>
                    <i:EventTrigger EventName="...">
                        <i:InvokeCommandAction
                            Command="{Binding ...}"
                            CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}}" />
                    </i:EventTrigger>
                </Noesis:StyleTriggerCollection>
            </Setter.Value>
        </Setter>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: fix_recursive_overflow.diff (375 bytes) 2022-09-20 18:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1686&type=bug
Notes
(0008076)
jsantos   
2022-09-21 13:56   
Thanks for the report Steve!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2428 [NoesisGUI] C++ SDK feature always 2022-09-23 11:12 2022-09-23 11:23
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Apple Color Emoji font not rendering any glyphs
Description: Using 'Apple Color Emoji' system font (found at "/System/Library/Fonts/Apple Color Emoji.ttc") in our TextEmojis.xaml sample does not render any glyph, although the font is recognized and registered by the font provider.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2416 [NoesisGUI] Unreal major always 2022-09-12 16:17 2022-09-14 19:30
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Video issues in Unreal Engine 5
Description: Playing video in Unreal Engine 5 renders black content on consoles.

Also, it seems video looping is failing in all platforms.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Issue-2416.patch (5,993 bytes) 2022-09-14 19:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1682&type=bug
Notes
(0008071)
sfernandez   
2022-09-14 19:29   
Fixed in revisions 11603 and 11604, find patch attached below.

(0008072)
sfernandez   
2022-09-14 19:30   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2419 [NoesisGUI] Unreal crash always 2022-09-13 12:57 2022-09-13 13:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Crash reloading xaml using the same name in a template Grid and outer Grid elements
Description: When the same name is used in the template root element and an outer element of the same type, reloading the xaml will crash Unreal.
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d"
  Height="450" Width="800">

  <Viewbox HorizontalAlignment="Right" VerticalAlignment="Bottom">
      <Grid x:Name="RootGrid" Width="800" Height="450" Background="WhiteSmoke">
          <StackPanel>
            <StackPanel.Resources>
              <ControlTemplate x:Key="btnTemplate" TargetType="Button">
                <Grid x:Name="RootGrid" Background="Cyan">
                  <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Grid>
              </ControlTemplate>
              <Style TargetType="Button">
                <Setter Property="Template" Value="{StaticResource btnTemplate}"/>
              </Style>
            </StackPanel.Resources>
            <Button Width="200" Height="100" Content="Button A"/>
            <Button Width="200" Height="100" Content="Button B" Margin="0,10"/>
          </StackPanel>
      </Grid>
  </Viewbox>
</Grid>
Additional Information:
Attached Files:
Notes
(0008067)
sfernandez   
2022-09-13 13:14   
Fixed in r11601.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2414 [NoesisGUI] C++ SDK crash always 2022-09-08 22:08 2022-09-13 12:43
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version:  
Platform: Any
Summary: Crash - NoesisApp::GLRenderDevice::DestroyBuffer
Description: I have a bug when I close an application using the OpenGL render.

The crash happens in Noesis::GUI::Shutdown() => GLRenderDevice::DestroyBuffer(DynamicBuffer& buffer);

I was able to reproduce the crash using:
- Windows 7
- Android (only tested on arm64)
- iPhone 13 Pro Max

On my main machine, I use a Windows 11, where the crash does not happen.

I managed to generate a dump in vs2022 with the same error happening in your Samples.HelloWorld.

I also put the exes/pdbs so you can open the dmp and see exactly the error.

Link:
https://drive.google.com/file/d/1lmwTUw8KPbS4r3IbBldiqv9Ji0n8o5Vi/view?usp=sharing

Attached here is a print of a crash on windows (samples.helloworld) and one on android (my test application).

Thanks.
Tags:
Steps To Reproduce: Open and close the Sample.HelloWorld using OpenGL renderer.
Additional Information:
Attached Files: android.jpg (286,660 bytes) 2022-09-08 22:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1677&type=bug
win7.jpg (494,940 bytes) 2022-09-08 22:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1678&type=bug
Notes
(0008059)
jsantos   
2022-09-09 15:25   
The attached minidump seems to be a different thing. And instead of a crash it is a debugger breakpoint

     ntdll.dll!77eceabe()	Unknown
     [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
     ntdll.dll!77ecf9f1()	Unknown
>	Noesis.dll!Noesis::RenderDevice::OnDestroy() Line 267	C++
     NoesisApp.dll!NoesisApp::Application::~Application() Line 53	C++
     Samples.HelloWorld.exe!HelloWorld::App::~App()	C++
     Samples.HelloWorld.exe!HelloWorld::App::`scalar deleting destructor'(unsigned int)	C++
     Noesis.dll!Noesis::BaseRefCounted::OnDestroy() Line 57	C++
     NoesisApp.dll!Noesis::Ptr<NoesisApp::Application>::Reset() Line 156	C++
     NoesisApp.dll!NoesisApp::ApplicationLauncher::OnExit() Line 122	C++
     NoesisApp.dll!NoesisApp::DisplayLauncher::Run() Line 49	C++
     Samples.HelloWorld.exe!NsMain(int argc, char * * argv) Line 81	C++
     Samples.HelloWorld.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 36	C++
(0008060)
jsantos   
2022-09-09 15:33   
But don't worry about it. I think I found something wrong. I will send you a patch soon.
(0008062)
jsantos   
2022-09-09 20:19   
Could you please try changing the implementation of GLRenderDevice::DestroyBuffer to

void GLRenderDevice::DestroyBuffer(DynamicBuffer& buffer) const
{
    Dealloc(buffer.cpuMemory);

    if (HaveBufferStorage())
    {
        if (buffer.currentPage)
        {
            V(glDeleteBuffers(1, &buffer.currentPage->object));
            V(glDeleteSync(buffer.currentPage->sync));
            Dealloc(buffer.currentPage);
        }

        for (Page* page = buffer.pendingPages; page != nullptr;)
        {
            Page* next = page->next;
            V(glDeleteBuffers(1, &page->object));
            V(glDeleteSync(page->sync));
            Dealloc(page);
            page = next;
        }
    }

    for (Page* page = buffer.freePages; page != nullptr;)
    {
        Page* next = page->next;
        V(glDeleteBuffers(1, &page->object));
        V(glDeleteSync(page->sync));
        Dealloc(page);
        page = next;
    }
}
(0008063)
jack.barkov   
2022-09-10 00:37   
This code snippet solved the problem.
I tested it on Android and Windows.

Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2417 [NoesisGUI] Unity3D minor always 2022-09-12 23:25 2022-09-13 12:28
Reporter: Feldruebe Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: FlowDirection of WrapPanel crashed Unity
Description: Use the following Control:

xaml:

<UserControl x:Class="Testing.TestControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:system="clr-namespace:System;assembly=mscorlib"
             x:Name="Root">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
        <ItemsControl Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Texts, ElementName=Root}" Width="300">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel VerticalAlignment="Bottom" FlowDirection="RightToLeft" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding }"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
        <Button Content="Click me" Click="Button_Click" />
        <TextBlock Text="{Binding Counter, ElementName=Root, StringFormat='Button clicked {0} time(s)'}" Margin="5,0,0,0" VerticalAlignment="Center" />
    </StackPanel>
</UserControl>


CodeBehind:

#if UNITY_5_3_OR_NEWER
    #define NOESIS
    using Noesis;
#else
    using System.Windows;
    using System.Windows.Controls;
#endif

namespace Testing
{
    using System.Collections.ObjectModel;

    public partial class TestControl: UserControl
    {
        public TestControl()
        {
            InitializeComponent();
        }

        public int Counter
        {
            get { return (int)GetValue(CounterProperty); }
            set { SetValue(CounterProperty, value); }
        }

        public static readonly DependencyProperty CounterProperty = DependencyProperty.Register(
            "Counter", typeof(int), typeof(TestControl), new PropertyMetadata(0));
        
        public ObservableCollection<string> Texts
        {
            get { return (ObservableCollection<string>)GetValue(TextsProperty); }
            set { SetValue(TextsProperty, value); }
        }

        public static readonly DependencyProperty TextsProperty = DependencyProperty.Register(
            "Texts", typeof(ObservableCollection<string>), typeof(TestControl), new PropertyMetadata(new ObservableCollection<string>()));

    #if NOESIS
        protected override bool ConnectEvent(object source, string eventName, string handlerName)
        {
            if (eventName == "Click" && handlerName == "Button_Click")
            {
                ((Button)source).Click += this.Button_Click;
                return true;
            }

            return false;
        }

        private void InitializeComponent()
        {
            NoesisUnity.LoadComponent(this);
        }
    #endif

        private void Button_Click(object sender, RoutedEventArgs args)
        {
            Counter++;
            this.Texts.Add("qwe");
        }
    };
}
Tags:
Steps To Reproduce: Click 12 times on the button.
Unity crashes
Additional Information:
Attached Files:
Notes
(0008064)
sfernandez   
2022-09-13 12:22   
Thanks for the report, I was able to reproduce it.
We'll fix it for the next release.
(0008065)
sfernandez   
2022-09-13 12:28   
Fixed in r11477.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2408 [NoesisGUI] C++ SDK major have not tried 2022-09-02 23:23 2022-09-07 12:06
Reporter: dcockerham Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: ScrollChanged event missing the timing for ongoing scrolling input
Description: For a custom ScrollViewer with that modifies the scroll position in response to a ScrollChanged event (such as to create an AcceleratedScrollViewer that increases scroll speed over time), the modified scroll position is immediately overwritten by OnMouseWheelExternal() for as long as the scrolling continues. The modified scroll is only applied on the last frame when the scrolling stops, as there is no longer an overwriting OnMouseWheelExternal() call. This seems to be a timing issue stemming from a recent change to ScrollViewer.

Here is a sample of the two functions in question that demonstrates the issue:
FastScrollViewer::FastScrollViewer()
{
    this->ScrollChanged() += [this](BaseComponent* /* sender */, const ScrollChangedEventArgs& args) {
        const float delta = abs(args.verticalChange);

        if (delta > ACCELERATED_SCROLL_INCREMENT_BASE)
        { // filter out returning accelerated scroll increments, as in: calling ScrollToVerticalOffset will call ScrollChanged again
            return;
        }

        ScrollToVerticalOffset(GetVerticalOffset() + (float)sgn(args.verticalChange) * delta * 1000);
    };
}

void FastScrollViewer::OnMouseWheelExternal(float wheelRotation, Noesis::Orientation orientation)
{
    if (orientation == Noesis::Orientation::Orientation_Vertical)
    {
        ScrollToVerticalOffset(GetVerticalOffset() - wheelRotation / 3.0f);
    }
}
Tags: C++, scroll
Steps To Reproduce: 1. Create a child class inheriting from ScrollViewer that calls ScrollToVerticalOffset() in OnMouseWheelExternal(), and calls OnMouseWheelExternal() with increased multiplier in response to a ScrollChanged event.

2. Scroll over time by holding a controller's right joystick down.

3. Observe that the ScrollViewer moves at the normal pace instead of the boosted pace, and the scrolling may seem jittery as it jumps between the modified and unmodified values, with the scrollbar matching the unmodified position. Releasing the right joystick results in finally jumping to/settling on the modified position.
Additional Information:
Attached Files:
Notes
(0008055)
sfernandez   
2022-09-07 12:06   
Fixed with changes in revisions 11589 and 11590.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1041 [NoesisGUI] C++ SDK feature always 2017-04-05 17:34 2022-09-07 11:29
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Implement UIElement.LayoutUpdated event
Description: Occurs when the layout of the various visual elements associated with the current View changes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007225)
KeldorKatarn   
2021-05-06 20:48   
I will probably need this eventually for getting the child window stuff properly implemented. I need to know when the WindowHost control that I'll create will be first updating its layout,
to position child windows at their startup location.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2404 [NoesisGUI] C# SDK feature N/A 2022-08-23 19:59 2022-08-25 14:43
Reporter: colin14321 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Missing EventSetter from System.Windows
Description: EventSetter is currently missing from System.Windows implementation in Noesis.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1789 [NoesisGUI] C++ SDK tweak always 2020-09-11 14:16 2022-08-24 02:01
Reporter: frochet38 Platform:  
Assigned To: jsantos OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Windows
Summary: Font selection differs from WPF one
Description: NoesisGUI font selection algorithm desn't match WPF one when trying to select fonts from the same family.
Tags:
Steps To Reproduce: From "HelloWorld" sample :
1) In Main.cpp Change FontPrtovider to LocalFontProvider pointing to local sample data directoty
2) Copy attached fonts to the data directory

In MainWindow.Xaml

3) Remove "FontFamily" attribute from the "Window"'s attributes
4) Add/change the following attributes to the TextBlock x:Name="Hello" item:
a) FontFamily="./#Gotham" FontWeight="Medium" FontStyle="Normal" FontStretch="Normal"
This selects "Gotham-Black.otf" front with Noesis and "Gotham-Medium.otf" in Blend
b) FontFamily="./#Gotham" FontWeight="Bold" FontStyle="Normal" FontStretch="Normal"
This selects "Gotham-Black.otf" front with Noesis and "Gotham-Bold.otf" in Blend

Forum post : https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2094&p=11669#p11669
Additional Information:
Attached Files: Gotham-Black.otf (165,580 bytes) 2020-09-11 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1295&type=bug
Gotham-Bold.otf (157,328 bytes) 2020-09-11 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1296&type=bug
Gotham-Book.otf (158,964 bytes) 2020-09-11 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1297&type=bug
Gotham-Light.otf (155,004 bytes) 2020-09-11 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1298&type=bug
Gotham-Medium.otf (159,852 bytes) 2020-09-11 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1299&type=bug
MainWindow.xaml (20,193 bytes) 2020-09-11 14:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1300&type=bug
Notes
(0006622)
frochet38   
2020-09-11 14:26   
Added Test xaml


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2403 [NoesisGUI] C++ SDK minor always 2022-08-23 14:29 2022-08-23 14:40
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Compiler warnings in Find.h (VS2022)
Description: Hi everyone, for the last few weeks we’ve been seeing compiler warnings from VS2022 when building the Noesis plugin. Here’s what they look like:

E:\draconis\main-1\Draconis\Plugins\NoesisGUI\Source\Noesis\NoesisSDK\Include\NsCore\Find.inl(15): warning C5257: '_FINDEX_INFO_LEVELS': enumeration was previously declared without a fixed underlying type
E:\draconis\main-1\Draconis\Plugins\NoesisGUI\Source\Noesis\NoesisSDK\Include\NsCore\Find.inl(16): warning C5257: '_FINDEX_SEARCH_OPS': enumeration was previously declared without a fixed underlying type

I did a bit of digging, and the code in question hasn’t changed in a very long time, and I suspect this is the result of upgrading our compiler to VS2022, and not a result of any changes with the latest version. This specific error code is not documented on the Visual Studio website, but I’ve found a couple of mentions of it on Stack Overflow and Reddit. It might be an issue with precompiled headers. Can you confirm whether you’re seeing this, and if so, are there any plans to address it?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008048)
jsantos   
2022-08-23 14:40   
Find.h is no longer needed in our public API


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1742 [NoesisGUI] C++ SDK feature always 2020-06-30 13:15 2022-08-22 19:21
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Make Symbols case sensitive to avoid some problems
Description: Current problems:
- Reflection class TypeId is a symbol, allowing <button> to incorrectly be used in xaml.
- Reflection property names are symbols, so can't define 'x' and 'X' as different properties and that can be a problem when exposing C# classes.
- ResourceDictionary uses simple strings as keys, but DynamicResource uses Symbol as key, so it can happen that symbol was initially created with a different casing and resource will never be found.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2400 [NoesisGUI] Unity3D minor sometimes 2022-08-19 12:04 2022-08-22 17:46
Reporter: JinFox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: ScrollViewer doesnt apply panningMode when applied with style
Description: Hello,
It would seem that some of the scrollviewer I am using in my game are not working with touch unless I specifically add "PanningMode="VerticalOnly"" directly inline. The property, if set in a declared Style is not applied.

This issue doesn't seem to reproduce on simple scenario but only in more complex Visual trees. After a discussion with Sergio, he emitted the hypothesis that the ScrollViewer using template binding to inherit from higher member of the hierarchy might be applied even if the style isn't default value, overriding any value put in the style of the scrollviewer.

Thanks very much for your help!
Tags:
Steps To Reproduce: 1- Have a ScrollViewer with a style, for example :
  <Style x:Key="style.global.scrollViewer.vertical" TargetType="{x:Type ScrollViewer}" BasedOn="{StaticResource {x:Type ScrollViewer}}">
        <Setter Property="CanContentScroll" Value="False"/>
        <Setter Property="PanningMode" Value="VerticalOnly"/>
        <Setter Property="IsManipulationEnabled" Value="True"/>
        <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/>
    </Style>

2 - Include this scrollviewer with a style in a visual tree where a value that can be inherited from
3 - watch which value is applied with the Noesis Inspector?
This might not be reproducible on simple visual tree architecture

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2401 [NoesisGUI] C++ SDK minor always 2022-08-19 12:47 2022-08-22 17:07
Reporter: christyjquinn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Duplicate user control x:Name causes incorrect binding
Description: User controls with the same x:Name can cause issues with binding when nested.

Example:

// Parent user control
<components:FullscreenModalComponent ImagesDir="/Images/collections_jpg" />
// Nested in FullscreenModalComponent
<components:ResponsiveImageComponent ImagesDir="{Binding ElementName=Root, Path=ImagesDir}" />
// ImagesDir in ResponsiveImageComponent is not bound to "/Images/collections_jpg"

See https://www.noesisengine.com/forums/viewtopic.php?p=14560#p14560 for original report on forum.
Tags:
Steps To Reproduce: - Create two user controls with the same x:Name
- Nest one inside the other binding a value from the parent into the child
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2108 [NoesisGUI] Unity3D crash sometimes 2021-09-09 19:51 2022-08-18 13:41
Reporter: rachelle Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Index out of range exception in Noesis.View::KeyDown
Description: We have recently upgraded to NoesisGUI 3.1.0. We are now seeing this crash periodicially in our Unity client build in Noesis.View::KeyDown:

ArgumentOutOfRangeException
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

System.ThrowHelper.ThrowArgumentOutOfRangeException
1
System.Collections.Generic.List`1[T].get_Item
System.Collections.ObjectModel.Collection`1[T].System.Collections.IList.get_Item
Noesis.Extend.ListGet at line 2303
UnityEngine.Debug:LogException(Exception)
NoesisUnity:OnUnhandledException(Exception) at line 314
Noesis.Error:UnhandledException(Exception) at line 18
Noesis.Extend:ListGet(IntPtr, UInt32) at line 2310
Noesis.View:Noesis_View_KeyDown(HandleRef, Int32)
Noesis.View:KeyDown(Key) at line 307
NoesisView:ProcessEvent(Event, Boolean, Boolean) at line 1196
NoesisView:OnGUI() at line 1252

Potentially of note: as part of this upgrade, we needed to enable the new Unity input system in our build. We have other client-side dependencies that still require the old UnityEngine.Input system, so we currently have BOTH input systems enabled in our Player settings.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007429)
sfernandez   
2021-09-10 16:29   
I need more information to determine the cause, could you please modify the following code in our Extend.cs script (in Runtime/API/Core folder):

private static IntPtr ListGet(IntPtr cPtr, uint index)
{
    try
    {
        var list = (System.Collections.IList)GetExtendInstance(cPtr);
        object item = list != null ? list[(int)index] : null;
        HandleRef itemPtr = GetInstanceHandle(item);
        BaseComponent.AddReference(itemPtr.Handle); // released by native bindings
        return itemPtr.Handle;
    }
    catch (Exception e)
    {
        var list = (System.Collections.IList)GetExtendInstance(cPtr);
        Log.Error($"{list.GetType()}({list.Count}): Get({index})");
        Error.UnhandledException(e);
        return IntPtr.Zero;
    }
}

Let's see what collection is giving errors, and if indices are totally wrong or not.
(0007435)
rachelle   
2021-09-11 00:53   
I mis-diagnosed this as a crash; this is not actually crashing our client. I've added the logging you requested and am working on repro-ing the issue, but so far no luck. As soon as I'm able to repro it I'll share the resulting log output.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2382 [NoesisGUI] C# SDK feature always 2022-07-15 12:02 2022-08-16 18:11
Reporter: maherne Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Expression methods are not exposed in the C# SDK
Description: The Expression class in C# does not expose the Evaluate, Reapply, BeforeSet, or AfterSet methods.

This prevents the creation of new Expressions in C#.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008045)
sfernandez   
2022-08-16 18:11   
Won't implement this as in WPF Expression class can't be extended, all the virtual methods are internal.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2379 [NoesisGUI] C++ SDK minor sometimes 2022-07-13 15:25 2022-08-03 16:06
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Bad clipping when text wraps
Description: Hi guys,

So we're seeing issues where text wrapping will cause some bad clipping. This is particularly noticeable with our arabic font. It's not 100%, and it depends on where the line wraps, but the edges of the text blocks can clip. If the text does not wrap then it's absolutely fine.

I'm on a slightly old version of the Arabic branch (a local copy of trunk 3.1.2 and Arabic merged together).

I'm attaching a sample I used to demonstrate this.

The sample is called "SumoSample_ArabicLineHeight". The reason it's called "ArabicLineHeight" is because I was trying to reproduce a different bug that we see in our game where glyphs overlap each other. I'm attaching an image of that occurring in our game. However, I have not been able to reproduce that in the vanilla SDK so I need to investigate further as I'm guessing that's something that's wrong with our renderer / shaders.
Tags:
Steps To Reproduce: 1. Unzip the *.ZIP and extract to your Native directory in the Noesis SDK
2. Generate the sample from the attached .conf
3. Build it and run it.

Bug: You should see that 3rd textbox incorrectly clips on the right edge.
Expected Result: There should be no clipping of the text regardless of how it wraps.
Additional Information:
Attached Files: NoesisSDK.zip (164,528 bytes) 2022-07-13 15:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1664&type=bug
text_wrapping_clipping.png (447,633 bytes) 2022-07-13 15:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1665&type=bug
sumo_renderer_glyph_overlap.png (101,787 bytes) 2022-07-13 15:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1666&type=bug
Notes
(0008019)
jsantos   
2022-07-14 17:43   
With the latest version of the RTL branch (right now in sync with trunk) this is not happening.

Could you please verify, thank you!
(0008023)
steveh   
2022-07-14 21:15   
Hey Jesús, you're absolutely right, the clipping is fixed in the latest verison of the Arabic branch. Much appreciated! Enjoy your week off.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2390 [NoesisGUI] C++ SDK minor sometimes 2022-08-02 11:22 2022-08-03 14:03
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Assert hit when showing/hiding the scrollbars in a ScrollViewer
Description: Using a ScrollViewer with the NoesisTheme, when the ScrollBar is shown/hidden sometimes an assert is hit rendering the offscreen textures.

NS_ASSERT(rectIndex.rect != 0); (RenderTree.cpp: 138)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MainWindowTest.xaml (1,912 bytes) 2022-08-02 11:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1672&type=bug
Notes
(0008039)
sfernandez   
2022-08-02 11:23   
(0008040)
sfernandez   
2022-08-03 14:03   
Fixed in changeset r11532 for next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2383 [NoesisGUI] C++ SDK minor always 2022-07-15 17:14 2022-08-01 16:41
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Arabic Branch: InlineUIContainers not working with FlowDirection
Description: Hi guys, I have an issue where InlineUIContainers are not being positioned correctly when working with FlowDirection. I've created a sample with the head revision (r11503) of the Arabic branch to demonstrate this.
Tags:
Steps To Reproduce: 1. Unzip the ZIP to the Native directory of the NoesisSDK
2. Generate the Sumo config
3. Build the Sumo_InlineUIContainer sample
4. Run it. You should see that the button prompt is not positioned correctly.
Additional Information:
Attached Files: NoesisSDK.zip (167,184 bytes) 2022-07-15 17:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1667&type=bug
inline_ui_container_flow_direction.png (186,903 bytes) 2022-07-15 17:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1668&type=bug
Notes
(0008038)
sfernandez   
2022-08-01 16:41   
Fixed in r11527


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2387 [NoesisGUI] C++ SDK minor always 2022-07-26 15:51 2022-07-28 20:22
Reporter: pdx_lysannschlegel Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: macOS
Summary: clang warnings in NsMath/Vector.h and NsMath/Transform.h (deprecated-copy)
Description: When building anything that includes NsMath/Vector.h or NsMath/Transform.h with Xcode clang version at least 14, and -Wdeprecated-copy enabled, the warning is triggered in several places:

NsMath/Vector.h:30:5: error: definition of implicit copy assignment operator for 'Vector2' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
    Vector2(const Vector2& v) = default;
    ^
NsMath/Matrix.inl:16:13: note: in implicit copy assignment operator for 'Noesis::Vector2' first required here
    mVal[0] = Vector2(v00, v01);
            ^
NsMath/Vector.h:99:5: error: definition of implicit copy assignment operator for 'Vector3' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
    Vector3(const Vector3& v) = default;
    ^
NsMath/Matrix.inl:244:13: note: in implicit copy assignment operator for 'Noesis::Vector3' first required here
    mVal[0] = Vector3(v00, v01, v02);
            ^
NsMath/Vector.h:168:5: error: definition of implicit copy assignment operator for 'Vector4' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
    Vector4(const Vector4& v) = default;
    ^
NsMath/Matrix.inl:612:13: note: in implicit copy assignment operator for 'Noesis::Vector4' first required here
    mVal[0] = Vector4(v00, v01, v02, v03);
            ^
NsMath/Transform.h:31:5: error: definition of implicit copy assignment operator for 'Transform2' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
    Transform2(const Transform2& m) = default;
    ^
NsMath/Transform.inl:126:11: note: in implicit copy assignment operator for 'Noesis::Transform2' first required here
    *this = PostTrans(*this, -centerX, -centerY);
          ^

The above output is when building with version 3.1.4, but I did a quick check and looks like 3.1.5 headers still look the same, I just haven't tested it.

This issue is especially annoying when building with -Werror. Of course, we can work around it by disabling the warning before including these, but would be nice if it wasn't required.
Tags:
Steps To Reproduce: I don't have very easy steps to reproduce but the warning should be pretty clear as to what's wrong.
But the general idea should be:

1. Set up a C++ project, set to compile with clang on Xcode 14, and enable -Wdeprecated-copy (and optionally -Werror) compiler flags.
2. Include NsMath/Vector.h or Transform.h in any file that builds with these warning flags enabled.
3. Compile.

Potentially this can be reproduced with older clang versions or non Xcode clang as well, but I cannot currently test this.
Additional Information:
Attached Files:
Notes
(0008036)
jsantos   
2022-07-28 20:22   
I was only able to reproduce this with the latest beta of Xcode 14 (b4).

These warnings and more issues related to clang14 has been fixed in r11522

Thanks for your great feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2363 [NoesisGUI] Unreal minor always 2022-06-23 09:56 2022-07-28 12:23
Reporter: lehoang03an Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Windows
Summary: Unreal 5 Noesis Instance can't run other plugin's custom blueprint node
Description: Plugin: https://www.unrealengine.com/marketplace/en-US/product/low-entry-extended-standard-library/
Node: Sort (Object Array)

The whole function can't run if there is custom node
Put it in another UObject class and make the class DataContext works
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (145,896 bytes) 2022-06-23 09:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1655&type=bug
Notes
(0008011)
sfernandez   
2022-07-05 23:45   
Could you please try the following patch in the Noesis plugin code (NoesisRuntime module)?

Index: NoesisTypeClass.cpp
===================================================================
--- NoesisTypeClass.cpp (revision 11457)
+++ NoesisTypeClass.cpp (working copy)
@@ -2440,7 +2440,7 @@
  }
  }
 
- if (!Param)
+ if (HasNoParams)
  {
  NoesisTypeProperty* TypeProperty = new NoesisTypePropertyObjectWrapperCommand(Noesis::Symbol(TCHAR_TO_UTF8(*Function->GetName())), Noesis::TypeOf<NoesisFunctionWrapper>(), Function, CanExecuteFunction);
  TypeClass->AddProperty(TypeProperty);
(0008025)
sfernandez   
2022-07-15 13:12   
Did you have time to test if the patch solved your issue?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2386 [NoesisGUI] Unity3D minor always 2022-07-26 11:00 2022-07-27 16:47
Reporter: Feldruebe Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Argument Exception when using ref property
Description: If you add a property to your view model that uses the ref keyword an argument exception happens.
Tags:
Steps To Reproduce: Modify the ButtonsSample as followed:

public class ButtonsViewModel : MonoBehaviour
{
    void Start()
    {
        NoesisView view = GetComponent<NoesisView>();
        view.Content.DataContext = this;
    }

    private string[] _Names;
    public ref string[] Names => ref _Names;
}

Start the Application.
Additional Information:
Attached Files:
Notes
(0008034)
sfernandez   
2022-07-27 16:47   
The patch that fixes the issue can be found below:

Index: Extend.cs
===================================================================
--- Extend.cs	(revision 11519)
+++ Extend.cs	(revision 11520)
@@ -1636,7 +1636,7 @@
                 for (int i = 0; i < propsLen; ++i)
                 {
                     var p = props[i];
-                    if (p.GetGetMethod() != null && !p.PropertyType.IsPointer &&
+                    if (p.GetGetMethod() != null && !p.PropertyType.IsPointer && !p.PropertyType.IsByRef &&
                         (HasTypeConverter(p) || (!IsIndexerProperty(p) && !IsDependencyProperty(type, p))))
                     {
                         ExtendPropertyData propData = AddProperty(propsInfo, p, usePropertyInfo);


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2384 [NoesisGUI] C++ SDK crash always 2022-07-15 20:01 2022-07-18 11:50
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Itemspresenter stomp
Description: Hi guys,

After grabbing r11503 from the Arabic branch we've found that it triggers our memory stomp detection. The issue is coming from the following code:

void ItemsPresenter::OnPresenterDestroyed(DependencyObject*)
{
    mScrollPresenter = 0; // the this pointer is null
}


This is because the destroyed delegate is not unbound when ItemsPresenter::OnTemplatedParentChanged is triggered.

I'm attaching a patch of the fix.

Cheers!

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: items_presenter_stomp_fix.diff (807 bytes) 2022-07-15 20:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1669&type=bug
Notes
(0008026)
sfernandez   
2022-07-18 11:50   
Thanks a lot for reporting this. I fixed it in our trunk and merged it to the Arabic branch (r11509).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2381 [NoesisGUI] C++ SDK minor N/A 2022-07-14 18:44 2022-07-14 20:33
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis.dll - Debug / Release / PDBs
Description: Hello,

I would like to request Noesis.pdb from Noesis.dll version 3.1.5.11450 (x86) released in the last release (NoesisGUI-NativeSDK-win-3.1.5-Indie.zip).
And a Noesis.dll with pdb in debug for development, as jsantos sent me in version 3.1.4 (https://www.noesisengine.com/bugs/view.php?id=2323)

I'm having a crash that I can't see the stacktrace so I can better understand what's happening.

By the way, would it be possible whenever there is a new release, to have the Noesis.dll version in debug and release with pdb?
This helps a lot to understand what we are doing wrong when we face some problem, I believe it would help many people to understand errors better.

Ref: https://www.noesisengine.com/forums/viewtopic.php?t=2650

Thanks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0008020)
jsantos   
2022-07-14 19:36   
https://drive.google.com/file/d/1xc4w00eyy73GxRHhutgQABF3We7J7ilx/view?usp=sharing
(0008021)
jack.barkov   
2022-07-14 20:13   
Thank you jsantos.

Can you send the Noesis.dll (3.1.5.11450) x86 pdb released in the indie zip as well?

Thank you again.
(0008022)
jsantos   
2022-07-14 20:33   
https://drive.google.com/file/d/1vuYZQvpEFAV5JkUELnHcGTF0EjLQObfd/view?usp=sharing


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2262 [NoesisGUI] Unity3D major always 2022-02-08 00:19 2022-07-13 18:25
Reporter: Nitae Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Windows
Summary: Unity default font cannot be used
Description: Hi, I'm Nitae I work for Foresight Sports.
I found an issue trying to use Unity's default fonts. When I add a new font, the Noesis importer automatically changes the asset and cannot be used by the Unity Text UI.
In the font properties there is a field to change the importer from "NoesisFontImporter" to "UnityEditor.TrueTypeFontImporter (Default)", but when I try to change it, an error appears (check the screenshot).
I am using Unity 2021.2.0f1 and noesis 3.1.2 in an HDRP project
Tags: Fonts, Unity
Steps To Reproduce: Steps

Part 1 Unable to assign a font to Unity Text UI:
- Create a new Unity project
- Import noesis 3.1.2
- Import a .tff font
- Create a text UI in the scene
- Tries to assign the imported font to the created Text UI

Part 2 Change the importer mode:
- Select the font in the project
- Change de Importer field showed in the inspector from "NoesisFontImporter" to "UnityEditor.TrueTypeFontImporter (Default)"
Additional Information:
Attached Files: Assign Font To Unity Text UI.PNG (77,206 bytes) 2022-02-08 00:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1584&type=bug
Change importer mode 1.PNG (29,245 bytes) 2022-02-08 00:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1585&type=bug
Change importer mode 2.PNG (123,911 bytes) 2022-02-08 00:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1586&type=bug
Notes
(0007786)
jsantos   
2022-02-08 13:11   
Changing the importer from "NoesisFontImporter" to "UnityEditor.TrueTypeFontImporter (Default)" should work. It seems the error is coming from Unity because they are still trying to render a thumbnail. I will have a look at this ASAP.

Does restarting Unity fix the issue?
(0007794)
Nitae   
2022-02-09 14:47   
I already tried restarting Unity and deleting .meta files but that doesn't work.

I also did the test on a new project and the same thing happens.
(0007807)
jsantos   
2022-02-14 18:30   
The following patch fixes this issue
Index: NoesisPostprocessor.cs
===================================================================
--- NoesisPostprocessor.cs	(revision 11128)
+++ NoesisPostprocessor.cs	(working copy)
@@ -99,7 +99,11 @@
             else if (IsFont(assetPath))
             {
                 // Noesis uses a custom font importer that replaces Unity's default one
-                AssetDatabase.SetImporterOverride<NoesisFontImporter>(assetPath);
+                // If there is not override yet, change the importer to Noesis
+                if (AssetDatabase.GetImporterOverride(assetPath) == null)
+                {
+                    AssetDatabase.SetImporterOverride<NoesisFontImporter>(assetPath);
+                }
             }
         }
     }


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2378 [NoesisGUI] Unity3D major always 2022-07-13 10:26 2022-07-13 13:24
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Noesis 3.1.5 Unity release doesn't work when uploaded to a UPM (npm) pagacke repository.
Description: The files in the API folder (and possibly others) are missing their .meta files, so the 3.1.5 release won't work when we push it to our npm repository and add it through Unity Package Manager.
It would be preferrable to be able to do this instead of including the package in our main repository, as it keeps our main repository smaller, and makes upgrading to a newer version easier.
Tags:
Steps To Reproduce: * Use "npm publish" to push the 3.1.5 Unity release to a repository
* Add the repository and package reference to a Unity project
= The files in the Runtime/API folder are unavailable to Unity since there are no .meta files associated.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2375 [NoesisGUI] C++ SDK crash always 2022-07-11 12:03 2022-07-11 14:06
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Crash in GetXamlDependencies when using unknown namespace
Description: The following xaml will crash when calling GetXamlDependencies():

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing">
  <ed:Arc x:Name="RadialFill"
              Fill="#FF87E4FF"
              Height="100" Width="100" Stretch="None"
              ArcThickness="4" ArcThicknessUnit="Pixel" EndAngle="360"/>  
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2374 [NoesisGUI] C++ SDK block always 2022-07-09 12:42 2022-07-11 11:10
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Windows
Summary: Slider's thumb may fail to update its dragging state when mouse capture changed
Description: The thumb's IsDragging state is not updated correctly when mouse capture has been ended by other means than releasing the mouse button. Mouse capture may end prematurely, e.g. in following cases:
- User presses Alt+Tab (in Windows) to switch to another application
- The slider's visibility changes (e.g. when UI state is updated while user was dragging the slider's thumb)
- When running in debugger and the execution breaks during the dragging process

The code in Thumb::OnMouseLeftButtonUp seems to assume that mouse is still captured, which is not true for cases above. This results in Thumb::StopDrag will never get called, and the thumb will behave incorrectly when dragged once again.
Tags:
Steps To Reproduce: 1. Start Noesis Gallery sample, and open Basic Input > Slider tab
2. Drag any slider's thumb, and while doing so press Alt+Tab to switch to another application
3. Return to Gallery sample, and try moving the slider's thumb again
4. Result: The thumb will not move smoothly, and it's visual state is also incorrect (grayed)
Additional Information:
Attached Files:
Notes
(0008014)
satorp   
2022-07-09 12:47   
We're currently having a blocking issue caused by this bug. It will be helpful if you could provide us a patch as a workaround in the mean time. Thank you.
(0008015)
sfernandez   
2022-07-11 11:10   
Fixed in changeset 11482:

Index: Thumb.cpp
===================================================================
--- Thumb.cpp	(revision 11481)
+++ Thumb.cpp	(revision 11482)
@@ -42,10 +42,12 @@
         {
             ReleaseMouseCapture();
         }
+        ReleaseAllTouchCaptures();
+
         SetReadOnlyProperty<bool>(IsDraggingProperty, false);
-        
-        DragCompletedEventArgs args(this, true, mCurrentScreenPosition.x - mStartScreenPosition.x, 
-            mCurrentScreenPosition.y - mStartScreenPosition.y);
+
+        Point offset = mCurrentScreenPosition - mStartScreenPosition;
+        DragCompletedEventArgs args(this, true, offset.x, offset.y);
         RaiseEvent(args);
     }
 }
@@ -278,6 +280,15 @@
     data->RegisterEvent(DragCompletedEvent, "DragCompleted", RoutingStrategy_Bubble);
     data->RegisterEvent(DragDeltaEvent, "DragDelta", RoutingStrategy_Bubble);
     data->RegisterEvent(DragStartedEvent, "DragStarted", RoutingStrategy_Bubble);
+
+    auto OnLostCapture = [](BaseComponent* sender, const EventArgs&)
+    {
+        Thumb* thumb = (Thumb*)sender;
+        thumb->CancelDrag();
+    };
+
+    data->RegisterEventHandler(LostMouseCaptureEvent, OnLostCapture);
+    data->RegisterEventHandler(LostTouchCaptureEvent, OnLostCapture);
 }
 
 NS_END_COLD_REGION


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2365 [NoesisGUI] C++ SDK crash always 2022-06-25 05:38 2022-06-30 19:36
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: Assertion is thrown when backspace key is pressed after a long text is entered
Description: Happens with 100% probability.
Didn't immediately crash application in Release mode, but probably causes unintended memory access.
Tags:
Steps To Reproduce: 1. Run "Application Tutorial" (demo application included in Noesis package) in DEBUG mode
2. Enter a long text (30 characters seem to sufficient, but the longer may be the better)
3. Press Backspace key
// Assertion is thrown -> see the attached image
Additional Information:
Attached Files: assertion.png (137,070 bytes) 2022-06-25 05:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1656&type=bug
assertion2.png (199,719 bytes) 2022-06-29 14:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1657&type=bug
Notes
(0008002)
jsantos   
2022-06-27 11:41   
I am unable to reproduce this. Could you please, paste the exact text you are using? And if possible, the values of the vector mRuns from the function that is crashing HitTestTextPosition.

Thank you
(0008003)
nikobarli   
2022-06-29 14:22   
For example, I can reproduce it with text "123456789012345678901234567890" (30 characters).

Inside HitTestTextPosition, mGlyphs is a vector with size 29, but is indexed with idx=textPosition+1=29, which is beyond the range of mGlyphs.

mRuns is 1 element vector, please find its contents in the attached screen capture.

Thanks.
(0008005)
jsantos   
2022-06-30 12:57   
I finally reproduced it, I needed to switch to Japanese IME. Thank you, we are working on a solution.
(0008006)
sfernandez   
2022-06-30 19:36   
Resolved in changeset 11464.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2367 [NoesisGUI] C++ SDK major always 2022-06-30 08:14 2022-06-30 12:53
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.6  
    Target Version: 3.1.6  
Platform: Any
Summary: when using IME, TextBox cursor is shown even though focus has moved to another TextBox
Description: When using IME, TextBox input cursor is shown even though focus has moved to another TextBox.

Please see the attached image.
Tags:
Steps To Reproduce: 1. Start Login application included in Noesis package
2. turn on Japanese input
3. Input any text inside login name text box, press Enter
4. Click password text box
// Input cursors are shown on both login text box and password text box

When the application exits, exception is thrown inside TextContainer destructor.
Additional Information:
Attached Files: image.png (45,089 bytes) 2022-06-30 08:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1658&type=bug
Assertion.PNG (252,791 bytes) 2022-06-30 08:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1659&type=bug
Notes
(0008004)
sfernandez   
2022-06-30 12:53   
We introduced the bug when adorners were implemented in 3.1.2, it is now fixed in changeset 11462.

Index: AdornerLayer.cpp
===================================================================
--- AdornerLayer.cpp	(revision 11461)
+++ AdornerLayer.cpp	(revision 11462)
@@ -370,10 +370,10 @@
         adornedElement->Destroyed() -= MakeDelegate(this, &AdornerLayer::OnAdornedElementDestroyed);
         NS_LOG_TRACE("[%p] AdornerLayer: removed adorned element '%s' (%p)", this,
             adornedElement->GetClassType()->GetName(), adornedElement);
+
+        mAdornedElements.Erase(adornedElement);
     }
 
-    mAdornedElements.Erase(adornedElement);
-
     if (mAdornedElements.Empty())
     {
         Visual* parent = GetVisualParent();


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1161 [NoesisGUI] C++ SDK minor always 2017-10-09 09:33 2022-06-24 17:06
Reporter: AndreasEnscape Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: MousBinding tag/section not implemented
Description: The command strategy, see here https://www.noesisengine.com/docs/Gui.Core.CommandsTutorial.html, and in line with this the command binding is restricted to very few elements and also restricted to the click action.
What is imho direly needed is the MS like and WPF compatible approach of having <XXX.InputBinding>, <XXX.MouseBinding> and <XXX.KeyBinding> sections, see also the discussion here: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1192&p=6907#p6907
Tags: mousebinding
Steps To Reproduce:         <ToggleButton Height="120" VerticalAlignment="Center" >
            <ToggleButton.InputBindings>
                <MouseBinding MouseAction="RightClick"
                              Command="{Binding Path=MyMouseRightClickCommand}"
                              CommandParameter="Bla"/>
            </ToggleButton.InputBindings>
        </ToggleButton>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2339 [NoesisGUI] Unity3D feature always 2022-04-29 14:55 2022-06-24 00:39
Reporter: JinFox Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Request for support of storyboard animation for long values
Description: Hello,

Noesis currently does not support storyboard animation on variable of the type long (Int64).
WPF library has the following storyboard related classes :
- Int64AnimationUsingKeyFrames
- Int64Animation
- LinearInt64KeyFrame
- EasingInt64KeyFrame
- etc
Could it be possible to add these feature as part of your API ?
We currently are blocked by this missing feature in order to be able to animate on big values on screen.

Thank you a lot for your time!
Regards,
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2297 [NoesisGUI] C++ SDK minor sometimes 2022-03-02 18:45 2022-06-23 19:56
Reporter: ext-astadnik@sumo-digital.com Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: App crash on Windows 10 with EXCEPTION_ACCESS_VIOLATION_READ
Description: 0 MyAppDev.exe 0x7ff727f222f0 [inlined] Noesis::HashKeyInfo<T>::IsEmpty (hashmap.inl:56)
1 MyAppDev.exe 0x7ff727f222f0 [inlined] Noesis::HashBucket_KV<T>::IsEmpty (hashmap.inl:106)
2 MyAppDev.exe 0x7ff727f222f0 [inlined] Noesis::HashMapImpl<T>::Iterator::SkipEmpty (hashmap.inl:299)
3 MyAppDev.exe 0x7ff727f222f0 [inlined] Noesis::HashMapImpl<T>::Iterator::{ctor} (hashmap.inl:296)
4 MyAppDev.exe 0x7ff727f222f0 Noesis::HashMapImpl<T>::Begin (hashmap.inl:347)
5 MyAppDev.exe 0x7ff727f20d94 Noesis::TimelineEventArgs::{ctor} (timeline.h:51)
6 MyAppDev.exe 0x7ff727f21804 Noesis::TimeManager::Tick (timemanager.cpp:379)
7 MyAppDev.exe 0x7ff727ebdb01 Noesis::View::UpdateAnimation (view.cpp:895)
8 MyAppDev.exe 0x7ff72789a671 doFrame (MyAppDev.cpp:11062)
9 MyAppDev.exe 0x7ff727872a4a CODEmain (MyAppDev.cpp:20644)
10 MyAppDev.exe 0x7ff72780eb44 [inlined] std::vector<T>::operator[] (vector:1511)
11 MyAppDev.exe 0x7ff72780eb44 WinMain (WinMain.cpp:758)
12 MyAppDev.exe 0x7ff72810a28d [inlined] invoke_main (exe_common.inl:102)
13 MyAppDev.exe 0x7ff72810a28d __scrt_common_main_seh (exe_common.inl:288)
14 KERNEL32.DLL 0x7ffa464654df BaseThreadInitThunk
15 ntdll.dll 0x7ffa4720485a RtlUserThreadStart
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007830)
jsantos   
2022-03-04 14:50   
Thanks for the report, we are investigating the issue. Getting a minidump would help us to analyze this with more context, but let's see if the callstack is enough.
(0008001)
sfernandez   
2022-06-23 19:56   
Fixed in changeset r11365


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2248 [NoesisGUI] Unreal feature always 2022-01-26 13:09 2022-06-23 19:02
Reporter: lowprofile Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: won't fix  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Create Action attached property that we can use with InputActions
Description: Example usage:
<Button Content="Back" Margin="10" Height="Auto" common:InputActionProperty.Action="Back" Command="{Binding BackCommand}"/>

When the button is enabled/disabled, it also binds/unbinds (or only prevents) the action.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007761)
jsantos   
2022-01-31 16:13   
(Last edited: 2022-01-31 16:13)
I would like to review this with the team because I prefer the granularity offered by #2247, I am not sure if this should be part of our core plugin.
(0008000)
sfernandez   
2022-06-23 19:02   
We are not going to implement this approach because using the InputActionTrigger (#2247) is more flexible and already solves the problem.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2140 [NoesisGUI] C++ SDK feature N/A 2021-10-06 19:59 2022-06-23 18:50
Reporter: krupitskas Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Allow to receive font information after RegisterFont
Description: I want to load multiple fonts into noesis and after receive information like family name, weight etc.
Tags: C++, Fonts
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007507)
jsantos   
2021-10-07 13:26   
Related to this forum post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2441
(0007999)
sfernandez   
2022-06-23 18:49   
(Last edited: 2022-06-23 18:50)
Exposed similar to WPF's Fonts helper class: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.fonts?view=windowsdesktop-6.0

Fonts::GetTypefaces(fontStream, [](uint32_t index, const Typeface& typeface)
{
  LOG("[%u] %s: Weight=%d, Style=%d, Stretch=%d", index, typeface.familyName, (int)typeface.weight, (int)typeface.style, (int)typeface.stretch);
}



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2323 [NoesisGUI] C++ SDK crash sometimes 2022-04-06 16:14 2022-06-21 17:13
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: Crash - Noesis::Thickness::TryParse
Description: After a while with a test application running, a crash is happening inside Noesis.dll
I don't know how to reproduce, it happens sometimes.

My detailed dump output:

*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************

KEY_VALUES_STRING: 1

    Key : AV.Dereference
    Value: NullPtr

    Key : AV.Fault
    Value: Write

    Key : Analysis.CPU.mSec
    Value: 2827

    Key : Analysis.DebugAnalysisManager
    Value: Create

    Key : Analysis.Elapsed.mSec
    Value: 5465

    Key : Analysis.Init.CPU.mSec
    Value: 187

    Key : Analysis.Init.Elapsed.mSec
    Value: 4824

    Key : Analysis.Memory.CommitPeak.Mb
    Value: 123

    Key : Timeline.Process.Start.DeltaSec
    Value: 29531

    Key : WER.Process.Version
    Value: 1.0.80.0


FILE_IN_CAB: 1f3e9c52-99e2-412a-bb32-e8e3c76a9a3b.dmp

NTGLOBALFLAG: 0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

CONTEXT: (.ecxr)
eax=00000000 ebx=1268b278 ecx=00000000 edx=0019cbf0 esi=0019cbf4 edi=0019cbe8
eip=07c8c037 esp=0019cb58 ebp=0019cba8 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00210202
Noesis!Noesis::Thickness::TryParse+0x408a7:
07c8c037 668901 mov word ptr [ecx],ax ds:002b:00000000=????
Resetting default scope

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 07c8c037 (Noesis!Noesis::Thickness::TryParse+0x000408a7)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 00000000
Attempt to write to address 00000000

PROCESS_NAME: test1234.exe

WRITE_ADDRESS: 00000000

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR: c0000005

EXCEPTION_PARAMETER1: 00000001

EXCEPTION_PARAMETER2: 00000000

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
0019cba8 07c9afe5 1268c610 12a92060 00000008 Noesis!Noesis::Thickness::TryParse+0x408a7
0019cc00 07c93988 00000500 0019eff8 00000000 Noesis!Noesis::DynamicTextureSource::GetPixelHeight+0x6145
0019cd58 07b83e28 00000000 00000001 00000000 Noesis!Noesis::Thickness::TryParse+0x481f8
0019ef90 07b82d4c 00000000 00000030 082ab440 Noesis!Noesis::RenderOptions::StaticGetClassType+0x5069
0019efdc 07b80552 275a97e4 0019f24c 1276d288 Noesis!Noesis::RenderOptions::StaticGetClassType+0x3f8d
0019f21c 07b7e62e 0019f24c 0019f5c0 0b947a68 Noesis!Noesis::RenderOptions::StaticGetClassType+0x1793
0019f23c 07b7e6a1 0019f24c 0019f520 3f800000 Noesis!Noesis::RelativeSource::StaticGetClassType+0x1dfc
0019f28c 005bf195 0019f2d0 75b9b81f 005d4bfd Noesis!Noesis::RelativeSource::StaticGetClassType+0x1e6f
0019f2f0 005d3bcb 128a80c8 000000ff 126af85c test1234_exe+0x1bf195
0019f318 005c8ba3 00f67230 0019f3a8 00bea153 test1234_exe+0x1d3bcb
0019f324 00bea153 edeb8890 00000204 0019f520 test1234_exe+0x1c8ba3
0019f3a8 00beb1f2 edeb8e30 0009096e 0019f49c test1234_exe+0x7ea153
0019f508 00be42a9 0097dc04 0019f5a4 be8466d0 test1234_exe+0x7eb1f2
0019f520 0097dc47 00000000 00000001 001b1ed8 test1234_exe+0x7e42a9
0019ff18 00d00098 00000022 002c0000 00d00098 test1234_exe+0x57dc47
0019ff70 75a0fa29 002c0000 75a0fa10 0019ffdc test1234_exe+0x900098
0019ff80 76f47a7e 002c0000 36e15315 00000000 KERNEL32!BaseThreadInitThunk+0x19
0019ffdc 76f47a4e ffffffff 76f68a29 00000000 ntdll!__RtlUserThreadStart+0x2f
0019ffec 00000000 04dea951 002c0000 00000000 ntdll!_RtlUserThreadStart+0x1b


STACK_COMMAND: ~0s; .ecxr ; kb

SYMBOL_NAME: Noesis+408a7

MODULE_NAME: Noesis

IMAGE_NAME: Noesis.dll

FAILURE_BUCKET_ID: NULL_POINTER_WRITE_c0000005_Noesis.dll!Unknown

OSPLATFORM_TYPE: x86

OSNAME: Windows 10

IMAGE_VERSION: 3.1.4.11278

FAILURE_ID_HASH: {bf357e83-43f7-28d9-5206-d6c832cdec19}

Followup: MachineOwner
---------

0:000> lmvm Noesis
Browse full module list
start end module name
07a80000 07dd2000 Noesis C (export symbols) Noesis.dll
    Loaded symbol image file: Noesis.dll
    Mapped memory image file: C:\test1234\Noesis.dll
    Image path: C:\test1234\Noesis.dll
    Image name: Noesis.dll
    Browse all global symbols functions data
    Timestamp: Thu Mar 17 17:45:59 2022 (62339E07)
    CheckSum: 00000000
    ImageSize: 00352000
    File version: 3.1.4.11278
    Product version: 3.1.4.11278
    File flags: 0 (Mask 0)
    File OS: 0 Unknown Base
    File type: 2.0 Dll
    File date: 00000000.00000000
    Translations: 0000.04b0
    Information from resource tables:
        CompanyName: Noesis Technologies
        ProductName: NoesisGUI-win-x86
        InternalName: Noesis.dll
        OriginalFilename: Noesis.dll
        ProductVersion: 3.1.4.11278
        FileVersion: 3.1.4.11278
        FileDescription: Noesis Library
        LegalCopyright: (C) Noesis Technologies S.L.


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 1f3e9c52-99e2-412a-bb32-e8e3c76a9a3b.dmp (2,612,724 bytes) 2022-04-06 17:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1618&type=bug
print_0.png (219,344 bytes) 2022-04-23 00:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1630&type=bug
code.zip (9,978 bytes) 2022-04-23 00:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1631&type=bug
crash_without_msgbox_but_many_simple_views.cpp (9,198 bytes) 2022-04-23 14:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1632&type=bug
Notes
(0007888)
jsantos   
2022-04-06 16:17   
Could you please attach a minidump? The call-stack does not reveal enough information. Thank you!
(0007889)
jack.barkov   
2022-04-06 17:00   
Sure, thanks.
(0007898)
jack.barkov   
2022-04-13 14:00   
Any news about this crash?

Can I do something to help?

Thank you.
(0007899)
jsantos   
2022-04-13 17:04   
(Last edited: 2022-04-13 17:05)
The minidump reveals a problem uploading indices to the GPU

>	Noesis.dll!Noesis::VGLContext::PackImage(const Noesis::BatchGroup & k, const Noesis::DrawInfo & drawInfo, unsigned int stride, unsigned int & base, unsigned char * & vOut, unsigned short * & iOut) Line 2661	C++
     Noesis.dll!Noesis::VGLContext::UploadGPUGeometry() Line 3895	C++
     Noesis.dll!Noesis::VGLContext::Flush(bool endOfFrame, bool clearEffects, bool flipY) Line 1397	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderOffscreenNodes() Line 994	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderOffscreen(Noesis::RenderNode * node, const Noesis::Matrix4 & projection) Line 72	C++
     Noesis.dll!Noesis::RenderTree::RenderOffscreen(const Noesis::Matrix4 & projection) Line 291	C++
     Noesis.dll!Noesis::Renderer::RenderOffscreen(const Noesis::Matrix4 & projection) Line 173	C++
     Noesis.dll!Noesis::Renderer::RenderOffscreen() Line 151	C++

I have uploaded a debug version of Noesis with PDBs: https://drive.google.com/file/d/1__XucBUs7oJZNUmUd2bUqj0t8q8CKkh0/view?usp=sharing

Could you please try it?

Also, are you able to reproduce this in one of our examples? If not, could you tell me more about your test application?
(0007910)
jack.barkov   
2022-04-23 00:58   
(Last edited: 2022-04-23 00:58)
Finally got it, an example to reproduce!

I could only find it actually because of the dll in debug...

I implemented a list of views, and called them separately to render.
From what I read in the documentation, this is correct, or I got it wrong.

To reproduce the error, just use the attached cpp in IntegrationGLUT.

Some strange things I noticed:

When I call CreateMessageBox() twice, using Opacity="0.8" in <Border> the crash doesn't happen.

-------------------

When I call CreateMessageBox() four times, using Opacity="0.8" in <Border> the crash happens.
If I remove Opacity="0.8", the crash does not happen....

-------------------

If I remove Opacity="0.8" and call CreateMessageBox() seven times the crash happens.

-------------------

From what I could analyze, the crash happens because when the GLRenderDevice::AllocatePage(DynamicBuffer& buffer) the buffer.numPages is 16, and an access is made
in the invalid position of the DynamicBuffer::pages[16] array, it accesses the memory incorrectly and then when the render is going to be executed, the crash happens.
And I couldn't find it before why with the dll in release, the NS_ASSERT is not being called...
(0007911)
jack.barkov   
2022-04-23 14:27   
Another way to crash is to remove the CreateMessageBox() calls and call lots of CreateBackground().

It seems to be a bug with the number of views created.
(0007913)
jsantos   
2022-04-25 18:18   
Thank you for this!
(0007974)
jack.barkov   
2022-06-17 17:12   
Any news about this bug?
Is it a bug or did I do something wrong?
Was the file I uploaded with the examples able to reproduce the crash?
Thanks.
(0007978)
jsantos   
2022-06-18 11:39   
(Last edited: 2022-06-18 11:39)
Next week I will be working on this. I will tell you more in a few days. Thanks for your patience
(0007981)
jsantos   
2022-06-20 13:09   
(Last edited: 2022-06-20 13:10)
There is definitely a bug in GLRenderDevice::AllocatePage (as you discovered). I will provide a patch here for testing.

But I am a bit confused because your examples are not crashing here. In fact, in your code it says:

    CreateMessageBox(); // ok
    CreateMessageBox(); // ok
    CreateMessageBox(); // ok
    CreateMessageBox(); // crashs here!

But in the call-stack you attached, the crash is not happening inside CreateMessageBox, but inside DisplayFunc
(0007982)
jsantos   
2022-06-20 13:13   
(Last edited: 2022-06-20 13:14)
If you go to GLRenderDevice.cpp at the top, and uncomment this:

#undef NS_LOG_TRACE
#define NS_LOG_TRACE(...) NS_LOG_(NS_LOG_LEVEL_TRACE, __VA_ARGS__)

You will see a message like this every time a new page is created:

[NOESIS/T] Page 'Vertices[2]' created (524288 KB)
[NOESIS/T] Page 'Indices[2]' created (131072 KB)

It seems your example is creating more than 16 pages (and this crashes), but I am not able to reproduce it in your examples. Do I need to do something special?
(0007993)
jack.barkov   
2022-06-21 13:22   
Could you access that same computer that was working on D3D12?
I left the example crashing on both x86 and x64.
This issue is not related to this hardware.
All computers I've tested, this happens.

ID: 514 240 482
Pass: jsantos**

Thanks.
(0007995)
jack.barkov   
2022-06-21 13:23   
(Last edited: 2022-06-21 13:28)
Note that I returned all the original code from the noesis sdk you were working on, I only changed the cpp that reproduces the error.

Thanks
(0007998)
jsantos   
2022-06-21 17:13   
Thanks for the help!

I just left in your machine the new fixed GLRenderDevice


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2313 [NoesisGUI] C++ SDK crash random 2022-03-24 13:00 2022-06-21 17:12
Reporter: jack.barkov Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: Random crashs on Noesis.dll
Description: I'm doing some tests with Noesis.

Everything is working normally.

However, when I leave my game open, sometimes there is a random crash inside Noesis.dll.

I can't figure out what it is because I don't have Noesis.pdb, I couldn't find it for download.

I'm attaching the version of the dll I'm using along with the crashdump.

Is it possible to get the noesis.pdb to better understand what is happening?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Noesis.dll (3,454,616 bytes) 2022-03-24 13:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1611&type=bug
crash.dmp (130,127 bytes) 2022-03-24 13:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1612&type=bug
Screenshot_1.png (245,692 bytes) 2022-03-25 11:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1613&type=bug
Notes
(0007877)
jack.barkov   
2022-03-25 11:24   
Another user reported the same bug:

https://www.noesisengine.com/bugs/view.php?id=2314
(0007878)
jack.barkov   
2022-03-25 11:27   
(0007988)
jsantos   
2022-06-21 02:54   
This is using the OpenGL renderer right?
(0007990)
daldegam   
2022-06-21 12:29   
Yes, using OpenGL
(0007996)
jack.barkov   
2022-06-21 13:26   
yes, as daldegam said, it's OpenGL.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2314 [NoesisGUI] C# SDK crash always 2022-03-24 13:29 2022-06-21 17:12
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: AccessViolationException after ~200 minutes
Description: The last three times I've left my system and came back to it a couple hours later, it's in a crashed state:

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Repeat 2 times:
--------------------------------
   at Noesis.Renderer.Noesis_Renderer_Render(System.Runtime.InteropServices.HandleRef, Boolean, Boolean)
--------------------------------
   at NoesisApp.Window.Render(Double)
   at NoesisApp.Application.<Run>b__56_0(NoesisApp.Display)
   at NoesisApp.Win32Display.EnterMessageLoop(Boolean)
   at NoesisApp.Application.Run()
   at UIShell.App.Main(System.String[]
Tags:
Steps To Reproduce: 1.) Start my application UIShell
2.) Leave it showing the fake live video screen
3.) Come back 2 hours later
Additional Information:
Attached Files:
Notes
(0007876)
jack.barkov   
2022-03-25 11:23   
It's the same bug (It's the same error and the same callstack, but in the c++ sdk):

https://www.noesisengine.com/bugs/view.php?id=2313
(0007946)
sfernandez   
2022-05-30 16:08   
It seems related to geometry data packing for GPU:

 	ntdll.dll!NtWaitForSingleObject()	Unknown
     KERNELBASE.dll!WaitForSingleObjectEx()	Unknown
     ntdll.dll!RtlpExecuteHandlerForException()	Unknown
     ntdll.dll!RtlDispatchException()	Unknown
     ntdll.dll!KiUserExceptionDispatch()	Unknown
>	Noesis.dll!Noesis::VGLContext::PackPath(const Noesis::BatchGroup & k, const Noesis::DrawInfo & drawInfo, unsigned int stride, unsigned int & base, unsigned char * & vOut, unsigned short * & iOut) Line 2576	C++
     Noesis.dll!Noesis::VGLContext::UploadGPUGeometry() Line 3895	C++
     Noesis.dll!Noesis::VGLContext::Flush(bool endOfFrame, bool clearEffects, bool flipY) Line 1397	C++
     Noesis.dll!Noesis::RenderTreeHelper::Render(Noesis::RenderNode * node, float x, float y, float width, float height, bool flipY, bool clear, const Noesis::Matrix4 & projection) Line 112	C++
     Noesis.dll!Noesis::RenderTree::Render(float x, float y, float width, float height, bool flipY, bool clear, const Noesis::Matrix4 & projection) Line 308	C++
     Noesis.dll!Noesis::Renderer::Render(const Noesis::Matrix4 & projection, bool flipY, bool clear) Line 227	C++
     Noesis.dll!Noesis::Renderer::Render(bool flipY, bool clear) Line 191	C++


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2329 [NoesisGUI] C++ SDK minor always 2022-04-13 10:59 2022-06-21 14:32
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version:  
Platform: Any
Summary: Support for '-enable-16bit-types' in DXC compiler
Description: This flag enables 16bit types and disable min precision types. Available in HLSL 2018 and shader model 6.2.

Right now DXC is only used in Xbox.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007997)
jsantos   
2022-06-21 14:32   
This was fixed in r11424

Note though, that we are not using -enable-16bit-types (we don't want to upgrade to shader model 6.2 for now) but we made necessary changes to ensure proper rendering and no warnings if -enable-16bit-types is enabled


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2324 [NoesisGUI] C++ SDK crash always 2022-04-06 16:45 2022-06-21 13:48
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: not fixable  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.5  
Platform: Any
Summary: C++ SDK - D3D12 - AMD Graphics Card
Description: Applications that try to use D3D12 result in a crash.

This error from what I could find, only happens on AMD cards.

My video card is:
Radeon (TM) RX 480 Graphics
Driver version: 30.0.15019.1005
Driver date: 03/22/2022
DirectX version: 12 (FL 12.0)

I tested it on another computer also with the same card and the crash is repeated.

I tested it on another computer with an nvidia card and the error does not happen.
NVIDIA GeForce GTX 1050 Ti
Driver Version: 30.0.15.1215
Driver date: 03/17/2022
DirectX Version: 12 (FL 12.1)
Tags: C++
Steps To Reproduce: Just open any sample with D3D12 Render Device and AMD Graphics Card.
Additional Information:
Attached Files: d3d12_crash.png (265,061 bytes) 2022-04-06 16:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1617&type=bug
vs_output_noesis_debug_d3d12.txt (455,999 bytes) 2022-04-06 18:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1619&type=bug
new_output.txt (10,094 bytes) 2022-04-06 19:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1620&type=bug
crash_pc0.png (368,662 bytes) 2022-04-13 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1621&type=bug
output.txt (12,355 bytes) 2022-04-13 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1622&type=bug
dxsample_pc0.png (291,061 bytes) 2022-04-21 15:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1625&type=bug
Notes
(0007890)
jsantos   
2022-04-06 17:40   
(Last edited: 2022-04-06 17:41)
D3D12RenderContext enables extra validation when compiled in Debug. Could you try building everything in Debug and see if Console Output reveals something?
(0007891)
jack.barkov   
2022-04-06 18:12   
Yea! The console output has a lot of information.
Check if this attachment can help.
(0007892)
jsantos   
2022-04-06 19:06   
Could you try removing the "ShaderCache" folder inside "C:\ProgramData\Noesis Technologies" and attach the new output?
(0007893)
jack.barkov   
2022-04-06 19:28   
Done.
I deleted the "ShaderCache" folder inside "C:\ProgramData\Noesis Technologies".
After execute the "Samples.HelloWorld.exe" the folder has been created again with 756 files.
(0007894)
jack.barkov   
2022-04-06 20:57   
I did some tests.

Another two computers with nvidia = without crashs (gl, d3d11 and d3d12)

--

Another computer with AMD card:

Computer 1:
GL = OK
D3D11 = OK
D3D12 = Crash

Radeon RX 580 Series
Driver Version: 30.0.13023.4001
Driver date: 12/16/2021
DirectX Version: 12 (FL 12.0)

----

Computer 2:
GL = OK
D3D11 = OK
D3D12 = OK

AMD Radeon RX 6500 XT
Driver Version: 30.0.15019.1005
Driver date: 03/22/2022
DirectX Version: 12 (FL 12.1)
(0007896)
jsantos   
2022-04-13 11:12   
(Last edited: 2022-04-13 11:14)
Could you please enable GPUBasedValidation ? (D3D12RenderContext.cpp line 589) It is disabled by default:

#if 1
    ID3D12Debug1* debug1 = 0;
    V(debug->QueryInterface(DX_ARGS(&debug1)));
    debug1->SetEnableGPUBasedValidation(true);
    DX_RELEASE(debug1);
#endif

(0007897)
jack.barkov   
2022-04-13 13:38   
Before start,

I deleted the "ShaderCache" folder inside "C:\ProgramData\Noesis Technologies" again.
Build: Debug
(0007900)
jsantos   
2022-04-13 17:15   
(Last edited: 2022-04-13 17:15)
I assume these basic HelloWorld samples from Microsoft work, but could you please try them?

https://github.com/microsoft/directx-graphics-samples/tree/master/Samples/Desktop/D3D12HelloWorld
(0007904)
jack.barkov   
2022-04-21 15:49   
Yes, the Microsoft samples works without crash
(0007905)
jsantos   
2022-04-22 11:33   
I will try to send you a few more experiments. But I will also try to buy one of those AMD cards reproducing the issue. Please confirm me this is the list of cards with the problem:

- RX 480
- RX 580

If you have more AMD cards with the crash, could you add then to the list?
(0007908)
jack.barkov   
2022-04-22 17:15   
Yes, only those two AMD cards that I was able to test.

On my computer, I have an RX 480 4GB (Asus).

If you want me to run some test, just send me.
I have another computer with the same card giving the same problem, I can release it for you to test via AnyDesk if you want.

The computer with the RX 580 belongs to a friend that I asked to test.
(0007914)
jsantos   
2022-04-25 18:20   
Begin able to debug locally on your machine using AnyDesk sounds an amazing idea. :)
Please, let me know more about how to do this and when you could do it.
(0007970)
jsantos   
2022-06-17 11:52   
Hi Jack, I am interested in the AnyDesk proposal. Please let me know if that's still available.
(0007973)
jack.barkov   
2022-06-17 17:10   
I don't have the hardware right now. I can get anydesk for you on Monday. Monday I send you the data to access the computer that this bug happens....
(0007977)
jsantos   
2022-06-18 11:38   
Thank you, that sounds perfect
(0007980)
jack.barkov   
2022-06-20 12:57   
ID: 514 240 482
Pass: jsantos**

Thanks.
(0007983)
jsantos   
2022-06-20 13:15   
Thank you, I am connected right now...
(0007984)
jsantos   
2022-06-20 20:04   
I have been working on your machine all day. I am still trying to understand what's going on although I discovered a few interesting things.

If possible I would like to connect tomorrow again.

Thank you!
(0007985)
jack.barkov   
2022-06-20 20:48   
No problems! I'll leave the computer on for you to connect tomorrow.

Thanks.
(0007987)
jsantos   
2022-06-21 02:46   
Finally found an explanation to this.

It is a bug on AMD drivers, but it only manifests when using 32-bits architectures (x86). Everything is working fine with 64-bits.

I was able to reproduce this using official Microsoft samples.

I have been trying to find a workaround all day... but I don't think it is possible. I think it is time to close this.

Thanks a lot for your help!
(0007992)
jack.barkov   
2022-06-21 13:16   
I understand.
This computer has not updated drivers since March 2022.
I installed an update with new driver 30.0.21017.1000 dated 5/17/2022 and the error continues to happen, but really only on x86, on x64 it didn't happen.
I believe that there is really nothing to be done in this case.
Thank you for your attention.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2281 [NoesisGUI] C++ SDK feature always 2022-02-14 15:56 2022-06-21 13:22
Reporter: ext.smichalak Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: XboxOne
Summary: Remote control with Xbox controller connected to PC
Description: Hey,
as mentioned in this post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2546, you're currently not able to control the Noesis app on Xbox if you're using a remote controller connected to PC. As @jsantos mentioned, gamepad events are not being intercepted by this remote mechanism.
Tags: controller, xbox
Steps To Reproduce: 1. Run any Noesis sample on Xbox devkit
2. Connect xbox controller directly to PC and verify it shows up in xbox manager
3. Notice that you're able to control any native UI that shows up on xbox (dev menu, software keyboard, etc.) but not the app itself.

I believe this applies to xbox only, unsure if there's a way on other platforms.
Additional Information:
Attached Files:
Notes
(0007994)
jsantos   
2022-06-21 13:22   
This has been fixed in r11423

Problem was that we were reading input for the first game-pad connected. So for example, if you used the Virtual Controller (the one you use clicking on the image), then the remote controller was not detected. And vice verse, using the remote controller first ignored the Virtual Controller.

We fixed this, by reading input from all gamepads. This is fine for our app framework and examples. But probably, for a real application this needs a more advance implementation, taking care of connected users and theirs controllers, etc.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2335 [NoesisGUI] C++ SDK block always 2022-04-22 22:06 2022-06-21 12:11
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Assert failed - VGLContext::GetBatchGroupPaint
Description: First, to reproduce this, you need to use Noesis.dll in debug, which was sent to me in the ticket:
https://www.noesisengine.com/bugs/view.php?id=2323

In the file: \Src\Packages\App\Launcher\Src\Launcher.cpp, I installed the CustomErrorHandler:
```
    Noesis::SetErrorHandler([](const char* filename, uint32_t line, const char* desc, bool fatal)
        {
            char out[512];
            snprintf(out, sizeof(out), "[NOESIS/Error] %s:%u (Fatal: %d) - Desc: %s\n", filename, line, fatal ? 1 : 0, desc);

#ifdef NS_PLATFORM_WINDOWS
#ifdef UNICODE
            uint16_t out_[512];
            UTF8::UTF8To16(out, out_, 512);
            OutputDebugString((LPCWSTR)out_);
#else
            OutputDebugString(out);
#endif
#else
            fprintf(stderr, "%s", out);
#endif
        });
```

After doing a lot of testing, I was able to isolate a new problem when I was trying to manipulate the render area of an image through the Viewport.

I was able to play both with a xaml in XamlPlayer and in the Inventory example (C++)

Attached I put the test.zip, just open it in XamlPlayer using everything in debug.
To reproduce using Inventory, in MainWindow.xaml, search for:

<ImageBrush ImageSource="Images/Character.png" Stretch="Uniform"/>

and change to:

<ImageBrush ImageSource="Images/Character.png" Stretch="UniformToFill" ViewportUnits="Absolute" Viewport="0,0,0,4" AlignmentX="Left" TileMode="None"/>

In both cases, you will get the assert:
[NOESIS/Error] ..\..\..\..\NoesisSDK\Native\Src\Packages\Drawing\VGL\Src\VGLContext.cpp:1647 (Fatal: 1) - Desc: Assertion failed: !IsZero(pattern.srcWidth), at VGLContext.cpp(1647)

The SetErrorHandler callback is saying it's a fatal error, but I'm not exactly sure if that would cause any problems with everything in release. Would that be a problem or not?

My intention with this is to make a sort of progress bar with an image where it wouldn't be stretched.




Tags:
Steps To Reproduce:
Additional Information:
Attached Files: test.zip (25,553 bytes) 2022-04-22 22:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1627&type=bug
callstack.png (294,118 bytes) 2022-04-22 22:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1628&type=bug
xamlplayer_screen_error.png (12,806 bytes) 2022-04-22 22:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1629&type=bug
Notes
(0007989)
jsantos   
2022-06-21 12:11   
Thanks for the feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2251 [NoesisGUI] C++ SDK minor always 2022-01-28 17:21 2022-06-21 02:43
Reporter: ext.mnawrot Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: XboxOne
Summary: Xbox: NoesisApp Window doesn't utilize 4K resolution
Description: Xbox works with both 1080p and 4K depending what res a TV supports but the GameCoreDisplay and D3D12RenderContext use hardcoded 1080p for Xbox consoles which makes Noesis UI to appear blurry on 4K TVs.

We haven't found a solution for that as it was a lower priority than 720p limitation on Nintendo Switch (https://www.noesisengine.com/bugs/view.php?id=2250) but 4K output is a desired feature for testing our UI on Xbox consoles.
Tags:
Steps To Reproduce: Enable 4K output on XBox
Additional Information:
Attached Files:
Notes
(0007986)
jsantos   
2022-06-21 02:43   
We finally found time to investigate this.

This is by design on Xbox. You are supposed to choose a fixed resolution for your game and the system will scale to the native resolution depending on user settings, TV configuration, etc.

I have improved a bit our implementation in r11421 by having the resolution hard-coded only in one place (at the top of GameCoreDisplay.cpp)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2302 [NoesisGUI] Unity3D major always 2022-03-09 17:07 2022-06-18 11:43
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.5  
Platform: Any
Summary: Manual XAML Reimport Required for Changes
Description: I'm having to manually reimport XAML after a change is made to see the results at runtime. Sometimes a reimport is not needed; other times it is needed. I do not have any code in place to stop the XAML import processor from running.

Other details -- I have player recompile after script changes enabled. I'm making changes while playback is stopped.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: image.png (42,780 bytes) 2022-03-09 17:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1602&type=bug
Notes
(0007841)
jsantos   
2022-03-09 17:16   
I assume this is a unmodified version of Noesis. Please confirm me that.

If you go to NoesisXamlImporter.cs and comment out the first line (to enable #define DEBUG_IMPORTER), Unity will log each time a asset is re-imported.

Everytime you change a XAML, a log line with "=> Import" should appear. Could you please tell if that works?
(0007842)
stonstad   
2022-03-09 17:45   
Thanks, jsantos. Yes, this is an unmodified version. My prior modification to disable import (while playback is active) has not been merged in. I enabled the preprocessor statements and I'll report back on what I find after attempting a XAML change.
(0007844)
stonstad   
2022-03-09 17:49   
My XAML changes were picked up. I'll keep this enabled and if it does not work I'll let you know what the console output reports

The file I modified previously which failed to have changes applied was the a file with the missing key in resources issue. Do certain kinds of errors put the XAML file in a state which prevents future reloading?
(0007848)
jsantos   
2022-03-09 18:00   
(Last edited: 2022-03-10 13:04)
No, all changes should activate a reimport.

Do you think you can reproduce this again starting with the original project and doing those changes? I am trying and trying but everything works fine.
(0007852)
jsantos   
2022-03-10 13:06   
Our errors are not cleared automatically when they are fixed (in contrast with C# errors). So I assume this is what happened, you fixed the error, it was reimported but you as you kept seeing the error in the console you thought it was not reimported?
(0007857)
stonstad   
2022-03-11 00:16   
> Our errors are not cleared automatically when they are fixed (in contrast with C# errors). So I assume this is what happened, you fixed the error, it was reimported but you as you kept seeing the error in the console you thought it was not reimported?

I tried running a few times as well. OK, I will bring down an older version of the repository and attempt to share it out via a zip file. It may be large. Thank you!
(0007860)
jsantos   
2022-03-11 11:49   
Thanks for the effort. We will give high priority to this once we have it.
(0007971)
jsantos   
2022-06-17 11:53   
Should we close this?
(0007976)
stonstad   
2022-06-17 20:02   
Yes, thank you!
(0007979)
jsantos   
2022-06-18 11:43   
Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2360 [NoesisGUI] Unity3D major always 2022-06-13 12:08 2022-06-17 17:46
Reporter: ttermeer-rcg Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: Texture Memory Leak
Description: Using 2D Texture with a converter is never freed. I did not check if this is the only scenario where this happens. It feels it is related to Bindings. It may also comes from loading the texture from files outside the Unity project (this is mandatory for our use case)
It is unclear if UnregisterTextureCallback from the Noesis Texture is supposed to handle it or there should be an other way to handled it which is not documented.
This is a major issue as we load a huge amount of images and this leads to frequent game crash.

Tags: Memory, Unity
Steps To Reproduce: - Run the Attached Project
- Use Unity Memory Profiler to get the Memory Tree Map
- Click the button "Select Random Training" multiple times
- Observe Unity Memory Profiler and see that Texture2D is growing in size
Additional Information:
Attached Files: BindingMemoryleak.zip (2,851,538 bytes) 2022-06-13 12:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1652&type=bug
SessionImage.cs (2,204 bytes) 2022-06-16 12:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1653&type=bug
Notes
(0007966)
sfernandez   
2022-06-16 11:01   
(Last edited: 2022-06-16 11:02)
Hi, looking at the code I see you are creating Texture2D objects dynamically but you are not destroying them. Noesis cannot be in charge of the lifecycle of the texture because we don't own that resource (it could come from an asset handled by Unity).

I just made a simple scene without Noesis where I create Texture2D objects and immediately release its C# reference (even forcing a GC collect) and as expected the texture memory is not released. If I take a look at the Memory Profiler and select any of those dynamically created textures it indicates the following:

This is a dynamically created Asset Type object, that was either Instantiated, implicitly duplicated or explicitly constructed via 'new UnityEngine.Texture2D()'. 
This object is not referenced anymore. It is therefore leaked!
Remember to unload these objects by explicitly calling 'Destroy()' on them, or via the more costly and broad sweeping indirect method of triggering 'Resources.UnloadUnusedAssets()

It happens the same when I check in your test the textures created in the converter, so Noesis is correctly releasing all its references.

You have to manage the lifecycle of the created textures and call Destroy when they are not used anymore.
(0007967)
ttermeer-rcg   
2022-06-16 11:50   
It makes sense however, how can we get a notification it is no longer in use ? There is no accessible callback when the image is no longer used in the Binding/Converter.
Maybe we should have access to Noesis.Texture.UnregisterTextureCallback notification ?
(0007968)
sfernandez   
2022-06-16 12:57   
You can handle the lifecycle of the texture by using a custom Image that creates and destroys the asset when the image is loaded/unloaded. For example you can have the following in the xaml:

<local:SessionImage Height="648" Width="1296" SessionId="{Binding TrainingId}"/>

And that SessionImage will be just a custom Image element like the attached code.

I just test it in your project and it works as expected, freeing texure memory everytime you change the image and when the element is removed from the UI tree.
(0007969)
sfernandez   
2022-06-16 12:58   
(0007972)
ttermeer-rcg   
2022-06-17 16:27   
Thanks this does the trick. It completely slipped my mind to extend the image control.
(0007975)
sfernandez   
2022-06-17 17:46   
Great, closing this as I think there is nothing wrong in Noesis code about it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1820 [NoesisGUI] C++ SDK feature N/A 2020-10-26 20:10 2022-06-16 21:22
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Implement Vulkan Renderer
Description: Although studios are already using Vulkan by using a custom RenderDevice, at 3.1 we plan to release an official reference Vulkan renderer.
This will be also the renderer used by our Unity Plugin. Note that, Vulkan is already supported in Unreal.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2358 [NoesisGUI] Unreal minor always 2022-06-08 11:04 2022-06-16 13:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Popups contents cannot fill the entire screen
Description: The following xaml will show Popup contents clipped on the bottom:

    <Decorator x:Name="MenuPanelPosition" Grid.Column="2" Grid.RowSpan="3"/>
    <Popup IsOpen="{Binding IsChecked, ElementName=show}" StaysOpen="False" AllowsTransparency="True"
      Placement="RelativePoint" PlacementTarget="{Binding ElementName=MenuPanelPosition}" Grid.ColumnSpan="3">
      <Border Background="#80808080" Width="{Binding ActualWidth, ElementName=MenuPanelPosition}" Height="{Binding ActualHeight, ElementName=MenuPanelPosition}"/>
    </Popup>


It fills the entire screen only when using Placement "Center" or "Absolute".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2361 [NoesisGUI] C++ SDK minor have not tried 2022-06-15 10:31 2022-06-15 10:31
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Using parenthesis in a PropertyPath does not work in Noesis
Description: The following syntax is supported in WPF:

<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(X)" Storyboard.TargetName="rect" To="100"/>


But doesn't work in Noesis because it is expecting the property owner type when using parenthesis.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2349 [NoesisGUI] C# SDK feature always 2022-05-14 11:10 2022-06-09 16:38
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version:  
Platform: Any
Summary: Would like an API to retrieve the image bytes/pixels from an ImageSource
Description: We often display various images or textures in an ImageSource and then later need to save those ImageSource's.
This can sometimes be done by just saving the thing we have bound to that imageSource but it's not always easy to access that.

It would simplify some of our workflows if we were able to retrieve the image bytes/pixels from an ImageSource.
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007931)
sfernandez   
2022-05-19 20:12   
(Last edited: 2022-05-20 11:07)
In WPF the BitmapSource (base class of BitmapImage) provides a CopyPixels() method:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.bitmapsource.copypixels?view=windowsdesktop-6.0

Could that be what you are looking for?
(0007932)
darthmaule2   
2022-05-19 20:41   
Something like that would work, although we would also like a way to know what format the pixels are in, which is something we can specify in the BitmapSource.Create call:

        public enum Format
        {
            BGRA8,
            BGR8,
            RGBA8,
            RGB8
        }
(0007933)
sfernandez   
2022-05-20 11:07   
The Format is also available in the BitmapSource class in WPF, so we should be able to provide that too:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.bitmapsource.format?view=windowsdesktop-6.0
(0007934)
darthmaule2   
2022-05-20 11:41   
That would be great, thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2357 [NoesisGUI] C++ SDK crash always 2022-06-07 14:31 2022-06-08 13:43
Reporter: jack.barkov Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: Intel(R) HD Graphics - GL 3.1.0 - Crash
Description: From forum topic: https://www.noesisengine.com/forums/viewtopic.php?t=2625

There is an error starting noesis with some computers that use OpenGL 3.1.

The error in question is:
"Link program failed: Interpolation of color does not match in vertex and fragment shaders."
File: noesis-gui\Src\Packages\Render\GLRenderDevice\Src\GLRenderDevice.cpp
Line: 2264

This happens with some hardware, and they all get the exact same error...

These are the computers I tested:
GL Renderer: Intel(R) HD Graphics - GL Version: 3.1.0 - Build 8.15.10.2696
GL Renderer: Intel(R) HD Graphics - GL Version: 3.1.0 - Build 9.17.10.3517
GL Renderer: Intel(R) HD Graphics - GL Version: 3.1.0 - Build 9.17.10.4229
GL Renderer: Intel(R) HD Graphics - GL Version: 3.1.0 - Build 9.17.10.4459
GL Renderer: Intel(R) HD Graphics Family - GL Version: 3.1.0 - Build 8.15.10.2538
GL Renderer: Intel(R) HD Graphics Family - GL Version: 3.1.0 - Build 8.15.10.2559
GL Renderer: Intel(R) HD Graphics 2000 - GL Version: 3.1.0 - Build 9.17.10.4229
GL Renderer: Intel(R) HD Graphics 2000 - GL Version: 3.1.0 - Build 9.17.10.4459
GL Renderer: Intel(R) HD Graphics 3000 - GL Version: 3.1.0 - Build 9.17.10.2843
GL Renderer: Intel(R) HD Graphics 3000 - GL Version: 3.1.0 - Build 9.17.10.3517
GL Renderer: Intel(R) HD Graphics 3000 - GL Version: 3.1.0 - Build 9.17.10.4229
GL Renderer: Intel(R) HD Graphics 3000 - GL Version: 3.1.0 - Build 9.17.10.4459
GL Renderer: Intel(R) HD Graphics 4000 - GL Version: 3.1.0 - Build 8.15.10.2712
As you can see, they are all OpenGL 3.1.0, and they are integrated cards from Intel.

In the tests were used: Windows 7 and Windows 10.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: glewinfo - IHD 3000 - GL 3.1.0.txt.7z (22,705 bytes) 2022-06-07 14:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1650&type=bug
gallery - brushes - crash.png (261,875 bytes) 2022-06-07 15:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1651&type=bug
Notes
(0007956)
jsantos   
2022-06-07 14:54   
(Last edited: 2022-06-07 14:55)
One quick question, does removing the 'flat' modifier from both vertex and fragment shaders fix the linker error on your machines?
(0007957)
jack.barkov   
2022-06-07 15:16   
Yes, removing all "flat" from shaders 140, the crash stops happening.

I have a crashing computer available with AnyDesk with Noesis and VS available.

If you want to access it, just let me know and I'll send you anydesk credentials.
(0007958)
jack.barkov   
2022-06-07 15:25   
I got another crash on the same hardware, I remove the "flat" from shaders, and when I open the Gallery, Media and Brushes, a new crash without stacktrace happens.
(0007959)
jsantos   
2022-06-07 16:01   
Thanks for the offer for AnyDesk. I need to investigate a few things before.

If you remove the "flat" keyword only for the fragment shader, does the linking error message disappear?

Regarding the second crash, could you please check buildig everything in Debug?
(0007960)
jack.barkov   
2022-06-07 16:24   
I removed the flat from fragment shader only, and crashs continues.

If you want to check, this computer is dedicated for you test now.

Anydesk ID: 514 240 482
Password: jsantos*

Thanks.
(0007961)
jsantos   
2022-06-08 10:41   
I am connecting to the computer right now! Thank you!
(0007962)
jsantos   
2022-06-08 11:51   
(Last edited: 2022-06-08 11:51)
Thanks for your help, I fixed the compiler error for the next version. This is the patch:

Index: Shader.140.frag
===================================================================
--- Shader.140.frag	(revision 11338)
+++ Shader.140.frag	(working copy)
@@ -189,8 +189,7 @@
         fragColor = mix(texture(image, uv1), texture(shadow, uv1), cbuffer1_ps[0]) * (opacity_ * paint.a);
 
     #elif defined(EFFECT_SDF)
-        vec4 color = texture(glyphs, uv1);
-        float distance = SDF_SCALE * (color.r - SDF_BIAS);
+        float distance = SDF_SCALE * (texture(glyphs, uv1).r - SDF_BIAS);
         vec2 grad = dFdx(st1);
 
         float gradLen = length(grad);

(0007963)
jsantos   
2022-06-08 11:56   
(Last edited: 2022-06-08 11:56)
The crash in the gallery is really weird and there is definitely something wrong in the intel drivers.

The problem is with the ConicGradientBrushShader, I just simplified to something like this:

static  const char* GLSL_CONIC =
R"(
    //float T(int n)
    //{
    //    return cbuffer1_ps[4 + 8 * n];
    //}

    vec4 GetCustomPattern()
    {
        return vec4(1);
    }
)";

And it works, but if I comment out the T() function the driver crashes (although T() is unused).

I haven't found an easy workaround for this, so for now, we are not going to fix it, as this is not part of core.
(0007964)
jack.barkov   
2022-06-08 13:26   
The shader related fix worked.
I just tested it and everything seems correct.

opengl has some weird things that are hard to explain...

About the gallery problem, it seems to be a driver problem.

Thanks for the quick correction.
(0007965)
jsantos   
2022-06-08 13:43   
Thanks a lot for your help!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2261 [NoesisGUI] C# SDK major random 2022-02-08 00:15 2022-06-06 12:39
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Dispatcher thread check should be done in managed land
Description: I got an error, which had a stack trace like this:
at MyClass.UpdateThingA()
at MyClass.UpdateStuffInUI()
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_1(Object state)
at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()

The problem is, that stack trace should be impossible to get.

Constructor:
System.Threading.Timer timer = new System.Threading.Timer(_ => UpdateStuffInUI());

private async void UpdateStuffInUI()
{
  // Compute some stuff while on the background thread that the Timer uses.
  string a = timeConsumingMethod();
  string b = timeConsumingMethod();

  await ThreadSwitcher.ResumeForegroundAsync(Application.Current.Dispatcher)

  UpdateThingA(a);
  UpdateThingB(b);
}


That stack trace should be impossible. I should see the dispatcher in the stack, like so:
at UIShell.App.DemoAsyncMethod()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.MoveNext(Thread threadPoolThread)
at Noesis.Dispatcher.DispatcherOperation.Invoke(Delegate callback, Object args, SynchronizationContext context)
at Noesis.Dispatcher.ProcessQueue()
at Noesis.View.Update(Double timeInSeconds)
at NoesisApp.Window.Render(Double time)
at NoesisApp.Application.<Run>b__55_0(Display d)
at NoesisApp.Win32Display.EnterMessageLoop(Boolean runInBackground)
at NoesisApp.Application.Run()
at UIShell.App.Main(String[] args)


Looking at DispatcherThreadSwitcher (https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/Core/Src/ThreadSwitcher/DispatcherThreadSwitcher.cs), it looks at the Dispatcher's CheckAccess method to determine if it needs to switch threads. The Dispatcher.CheckAccess method (https://github.com/Noesis/Managed/blob/master/Src/Noesis/Core/Src/Core/Dispatcher.cs) looks at the current thread's Thread ID vs. the Dispatcher's Thread ID. Both thread IDs are retrieved from unmanaged method Noesis_GetCurrentThreadId(), which I obviously don't have access to, but looks like it returns the unmanaged thread ID (Win32 method GetThreadId on Windows, some Posix function on Linux). In a quick test on my Windows system, the debugger showed that Dispatcher.ThreadID was 32756, which matched the unmanaged thread ID shown in the debugger. The Managed Thread ID was 1.

In my reading, it looks like the relationship between managed and unmanaged threads is not 1:1. It looks like a managed thread might be run on different unmanaged threads. That would explain why the thread ID that the dispatcher knows and the ThreadPoolWorkQueue thread that my method ran on ended up having the same thread ID.

I cannot think of any reason why the call to ResumeForegroundAsync wouldn't switch threads, other than this changing relationship between unmanaged and managed.

I suggest that CheckAccess, VerifyAccess, and CurrentDispatcher all switch to using managed thread ID, not unmanaged. In the Dispatcher class, this should be a matter of just replacing calls to the Dispatcher's helper property CurrentThreadID with a call to Thread.CurrentThread.ManagedThreadId. I didn't trace through any other objects that have a Thread ID that would need to change.
Tags:
Steps To Reproduce: Reproduction of this issue appears to be random. It requires that the ThreadPool thread be on the unmanaged thread that used to host the Dispatcher thread, which is unlikely.
Additional Information:
Attached Files:
Notes
(0007810)
sfernandez   
2022-02-16 21:02   
We need to check the unmanged thread id because DispatcherObjects (UI elements) only know about the unmanaged thread when created, so we can only associate a Dispatcher with an unmanaged thread id.
But we can add an extra check for the managed thread id in C# Dispatcher's CheckAccess to enqueue jobs when calling from different managed threads. This will fix the problems you are having.
(0007817)
DavidYawCSpeed   
2022-02-17 03:42   
OK, that sounds reasonable.

I can see that the Dispatcher could know the managed ID, since it gets passed to Dispatcher's constructor from Dispatcher.FromThreadId(). If that value was passed to the rest of the objects, that would be enough, but they're probably retrieving the unmanaged Thread ID directly in C++.

One possible additional change that might be useful: Call Thread.BeginThreadAffinity() at some point during application startup, and Thread.EndThreadAffinity() at some point during application shutdown. (At the beginning & end of Application.Run(), maybe?) This will keep the dispatcher managed thread running on the same unmanaged thread. The documentation isn't clear on exactly when the managed thread & unmanaged thread can switch, but BeginThreadAffinity looks like it will lock that down.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2338 [NoesisGUI] C# SDK minor always 2022-04-28 15:18 2022-05-30 18:19
Reporter: AndreN Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: LocalFontProvider is not closing Stream and thus running into errors
Description: Hello

When working with the LocalFontProvider from the NoesisApp namespace, I noticed an issue.

* When I specify a font in my XAML file like for example this this FontFamily="Fonts/#Aero Matics", it starts scanning the whole Fonts folder and registers all fonts files found there.
   Those fonts got read by the method OpenFont from the LocalFontProvider, which generates a stream with new FileStream(...):

public override Stream OpenFont(Uri folder, string id) => (Stream) new FileStream(System.IO.Path.Combine(this._basePath, folder.GetPath(), id), FileMode.Open);

 * I think this is done, in order to understand, which fonts are available in the directory. The fonts itself get not really loaded at this time.
    But afterwards it loads again this one file, where the intended font is inside. Here, I think the font is now really getting loaded. However now an exception occurs:

Unhandled exception. System.IO.IOException: The process cannot access the file '<path-to-gui-files>\Fonts\Aero Matics Regular.ttf' because it is being used by another process.
   at Main.Program.<>c.<Main>b__0_0(Exception exception) in <project-dir>\Main\Main\Program.cs:line 49
   at Noesis.Error.UnhandledException(Exception exception)
   at Noesis.Extend.ProviderOpenFont(IntPtr cPtr, IntPtr folder, IntPtr filename)
   at Noesis.View.Noesis_View_SetSize(HandleRef view, Int32 width, Int32 height)
   at Noesis.View.SetSize(Int32 width, Int32 height)
...

* I think the reason for this is, that the stream of the font file has not been closed yet.
   If I use instead inside the OpenFont(...) method the method OpenRead(...) for opening the stream it works and no exception occurs (and the font is being displayed):

public override Stream OpenFont(Uri folder, string id) => (Stream) File.OpenRead(System.IO.Path.Combine(this.rootPath, folder.GetPath(), id));

* The difference between OpenFont(...) and new FileStream(...) is, that OpenFont(...) creates the stream like this:

new FileStream(<path>, FileMode.Open, FileAccess.Read, FileShare.Read);

* So, the essential part here is FileStream.Read and actually, if you also add FileAccess.Read, FileShare.Read the the implementation in LocalFontProvider it also works without exception.

Nevertheless, there is still the question: Is it intended, that the file-stream is not being closed after the first read (scan of the directory)? If so, why is the stream not reused internally instead of reading the same file again?

So I'm not completely sure, if "just settings the file share to read mode" is really a fix or a workaround? What do you think about this?

P.S.: I don't know how to do (inline) code formating in this ticket description.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007947)
sfernandez   
2022-05-30 18:19   
Thanks for the information, we opted to use OpenRead in the providers. And also fixed the implementation of RegisterFont to close the stream after it is read.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2345 [NoesisGUI] C# SDK minor always 2022-05-11 12:16 2022-05-30 12:41
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Windows
Summary: EventTrigger.Actions throws an exception when created from code behind.
Description: I am creating an EventTrigger in codebehind in OnInitialized method. I get an InvalidCastExceptionwhenever I try to add something to the Actions collection. Same thing happens in Visual Studio debugger when I try to watch the Actions collection (same for Enter/ExitActions)

The exception:
System.InvalidCastException: 'Unable to cast object of type 'Noesis.BaseUICollection' to type 'Noesis.TriggerActionCollection'.'

Code sample where the exception happens:

private void SetupIntroStoryboard()
        {
            var newBoard = CreateNewStoryboard();
            if (newBoard == null)
            {
                return;
            }
            Triggers.Clear();
            var newTrigger = new EventTrigger();
            newTrigger.RoutedEvent = FrameworkElement.LoadedEvent;
            newTrigger.Actions.Add(new BeginStoryboard() { Storyboard = newBoard });
            Triggers.Add(newTrigger);
        }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2354 [NoesisGUI] C++ SDK feature N/A 2022-05-25 20:32 2022-05-25 20:33
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Implement color modes for color-blind accessibility
Description: Color blindness is described in this article from Wikipedia:

https://en.wikipedia.org/wiki/Color_blindness

Details about the formulas and math:

http://mkweb.bcgsc.ca/colorblind/math.mhtml#page-container
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: zenek1290s-Color-Blindness-Shader.zip (5,175 bytes) 2022-05-25 20:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1648&type=bug
Notes
(0007938)
jsantos   
2022-05-25 20:33   
(Last edited: 2022-05-25 20:33)
GL-Shaders attached


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2099 [NoesisGUI] Unity3D major always 2021-08-31 21:34 2022-05-20 20:33
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: 3.1.x Upgrade Can't Find XAML
Description: Despite my best efforts I can't seem to get 3.1.x Noesis to find certain XAML files that worked previously in 3.0.x and that appear to have the correct file path.

My installation workflow entailed deleting all previous NoesisGUI files, and then unzipping Noesis into Assets/Plugins/NoesisGUI. My user interfaces exist in /Assets/User Interface.

I am also seeing Unity errors warning me that unique hashes are not generating correctly for Noesis created .asset files.
Importer(NativeFormatImporter) generated inconsistent result for asset(guid:b1a363256f820204e8499a5afcd2650b) "Assets/User Interface/Controls/Border Control/BorderControl.asset"

I confirmed correct file paths and dependency references in XAML. For some reason I had to keep reimporting fonts to get them to be finally found.

In some instances the issue appears to be static references in OnInitialized. I disabled preview -- but it looks like this Noesis 3.1 *may*? be calling OnInitialized in my non-variant code which has external dependencies.
Tags:
Steps To Reproduce: No reproduction project yet. I can't run yet.
Additional Information:
Attached Files: Errors.PNG (93,911 bytes) 2021-08-31 21:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1477&type=bug
License Error.PNG (131,834 bytes) 2021-08-31 23:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1478&type=bug
Notes
(0007396)
stonstad   
2021-08-31 22:03   
OK, the cause was a user control that had variant code in InitializeComponent. InitializeComponent was failing within Noesis code which in turn caused the XAML to not be found error to appear. The error message shown was incorrect. The new behavior would be fine if the error message was not misleading.
(0007397)
jsantos   
2021-08-31 22:15   
(Last edited: 2021-08-31 22:17)
There are many things wrong in 3.1 if you are upgrading from 3.0, we are solving all of them with the idea of having a 3.1.1 *soon*.

But just a few comments regarding your installation:

1. You shouldn't unzip the package inside /Assets. It must be extracted somewhere else, and then imported from the package manager. The steps are described in the Installation section, but I will review them to make this clearer.
2. We are no longer generating .assets file, you must remove all of them (for xaml and for fonts).

After that, our script should do a *reimport all* to make sure the importer for each XAML is 'XamlImporter' and for each font is NoesisFontImporter. This step is missing in 3.1.0 and must done manually, xaml by xaml and font by font. Yeah, far from ideal. Rigth now, if you do a Unity reimport all, fonts are properly fixed, but XAML won't be changed.

@sfernandez I know you have been doing tests importing projects from 3.0, am I missing something here?

(0007398)
stonstad   
2021-08-31 22:43   
Understood. I am reading the tutorial and release notes.
(0007399)
stonstad   
2021-08-31 23:10   
(Last edited: 2021-08-31 23:17)
I deleted the unzipped folder in Unity. I deleted all .asset files. I installed via the documented package installation process. I'm seeing lots of quirks with UI and purple backgrounds in sprites. I seem to recall this was an issue I encountered before with an undefined style. It is possible that I had customizations in theme files.

But the major issue I am seeing is a licensing error. I think I need to take a break from this release to stay productive.

* updated to note that I was successful in installing from a package.

(0007400)
sfernandez   
2021-09-01 10:38   
I've just sent you an email with your updated license information, required for NoesisGUI 3.1.
(0007422)
stonstad   
2021-09-08 18:09   
Thanks, Sergio. Much appreciated.
(0007423)
stonstad   
2021-09-08 18:43   
This was all largely user error. Please feel free to close -- thank you for the help.
(0007424)
sfernandez   
2021-09-08 20:26   
We'll keep it open because we should detect if user unzips the plugin inside Assets and avoid throwing a NullReferenceException in that case.
We want to fix that for the next release.
(0007432)
stonstad   
2021-09-10 17:45   
"1. You shouldn't unzip the package inside /Assets. It must be extracted somewhere else, and then imported from the package manager. The steps are described in the Installation section, but I will review them to make this clearer."

Unity references the package files indefinitely from the external directory location. So although I do not store the package files in Unity I have to place them in SCM with the project. Do you put the files in a folder that is a peer to \assets?
(0007433)
jsantos   
2021-09-10 20:48   
Yeah, we are doing something similar to that.
(0007434)
jsantos   
2021-09-10 20:48   
I think we solved everything here. I am closing this.

Thanks again for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2341 [NoesisGUI] Documentation minor always 2022-05-03 21:01 2022-05-09 17:02
Reporter: sumel007 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Lottie-Noesis crashes when 3D rotation is used
Description: Below is a traceback from json2xaml script. Attached is a test json file (generated via bodymovin plugin, on a simple circle rotating in 3D).

= Comp 1 - 220 x 220 @60 - 1.68 secs - BodyMovin v5.9.2
Ignored field 'transform.rx'
Ignored field 'transform.ry'
Ignored field 'transform.rz'
Ignored field 'transform.or'
Traceback (most recent call last):
File "F:\WORK\LottieTest\more\json2xaml.py", line 1699, in <module>
main()
File "F:\WORK\LottieTest\more\json2xaml.py", line 1696, in main
json_parser.parse(args.json_file, args.xaml_file)
File "F:\WORK\LottieTest\more\json2xaml.py", line 153, in parse
self.read_composition(obj)
File "F:\WORK\LottieTest\more\json2xaml.py", line 1682, in read_composition
self.write_layer(copy.deepcopy(layer), layers)
File "F:\WORK\LottieTest\more\json2xaml.py", line 1578, in write_layer
if self.has_transform_elements(transform):
File "F:\WORK\LottieTest\more\json2xaml.py", line 624, in has_transform_elements
return self.is_transform_animated(obj) or \
File "F:\WORK\LottieTest\more\json2xaml.py", line 621, in is_transform_animated
self.is_animated(obj.rotation[0])
TypeError: 'NoneType' object is not subscriptable

Tags:
Steps To Reproduce: Run json2xaml.py on the attached file.
Additional Information:
Attached Files: rotationTest.json (1,174 bytes) 2022-05-03 21:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1635&type=bug
Notes
(0007925)
jsantos   
2022-05-09 17:01   
We still don't support reading 3D transformations from Lottie.

Thanks for the feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2342 [NoesisGUI] Unity3D block always 2022-05-06 11:12 2022-05-09 14:34
Reporter: bwieckowski-reboundcg Platform:  
Assigned To: jsantos OS:  
Priority: immediate OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: macOS
Summary: SVG causes the Editor or build hangs indefinitely on Mac (Apple Silicon / Metal)
Description: We try to display SVG complex images (like the Spain flag in provided sample project) it works fines on PC but it makes Mac version (with Metal) hangs indefinitely.
The project uses HDRP.
Tags: Apple Silicon, Metal, SVG, Unity
Steps To Reproduce: 1) Unzip provided project TestFlagMac.zip
2) Install Noesis component for Unity in folder TestAntialiasing/TestAntialiasing_Unity/NoesisGUI-Unity (don't pay attention to folder names I used a previous project archive and replaced only the XAML files)
3) In Unity Hub open the provided project TestAntialiasing_Unity (in folder TestAntialiasing/TestAntialiasing_Unity

Try to run in the scene "test" in Unity Editor on Mac (Apple Silicon with Metal support)

Additional Information:
Attached Files: TestFlagMac.zip (101,829 bytes) 2022-05-06 11:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1636&type=bug
Notes
(0007917)
jsantos   
2022-05-06 11:25   
Is this failing exclusively on Mac M1 or that's the only machine you tried?
(0007918)
bwieckowski-reboundcg   
2022-05-06 11:29   
We tried only on Mac M1, it only happens with Metal and not OpenGL, but Metal is required by HDRP and Apple M1
(0007921)
jsantos   
2022-05-09 14:32   
Please, download a hot-fix for 3.1.4 at

https://drive.google.com/file/d/1z34x2hEJdWDTrKorgKi6s6LLMuYgf78g/view?usp=sharing
(0007922)
jsantos   
2022-05-09 14:34   
By the way, until we implement DrawingImage (0002310) using this XAMLs with so many geometries is getting a lot of GPU pressure (the XAML in XamlPlayer is sending 120K triangles per frame).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1522 [NoesisGUI] Unity3D minor always 2019-07-24 11:06 2022-05-08 21:27
Reporter: JinFox Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Ellipse use too few Segments compared to Curved closed Path
Description: Hello,

This issue has first been described here : https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1761&p=10046#p10046

I have an issue on the current project I work on. I was using ellipses to display circular shapes but they looked not very "clean" on the edge.
The stroke being made of not enough segments (see image below )

url to image : https://ibb.co/Hg3QJmF

We can see that the ellipse is not very clean and when activating wireframe mode, we can see that the number of segments created by the ellipse is not enough to appear as smooth as the Path does.

In terms of xaml, the path is just the same ellipse converted to a path via Blend :
The ellipse :
<Ellipse Width="256" Height="256" Fill="CadetBlue" Stroke="Black" StrokeThickness="5"></Ellipse>

The path :
<Path Data="M253.5,128 C253.5,197.31174 197.31174,253.5 128,253.5 C58.688264,253.5 2.5,197.31174 2.5,128 C2.5,58.688264 58.688264,2.5 128,2.5 C197.31174,2.5 253.5,58.688264 253.5,128 z" Fill="CadetBlue" Height="256" Stretch="Fill" Stroke="Black" StrokeThickness="5" Width="256" />

jsantos apparently confirmed this might be a bug and advised me to post this here.

Best Regard,

Thank you
Tags: Rendering, Unity
Steps To Reproduce:
Additional Information:
Attached Files: EllipseIssueExample.xaml (2,197 bytes) 2019-07-25 11:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1092&type=bug
Notes
(0005901)
JinFox   
2019-07-25 11:33   
Sample xaml file with issue showing (Left is ellipse with issue and right is the path without the issue). At Medium tesselation the issue is showing on ellipse and not on Path whereas on High Tesselation, the issue is decreased on the Ellipse
(0007920)
jsantos   
2022-05-08 21:27   
This has been fixed. Now beziers and arcs produce the same number of segments.

In case, you see artifacts in Medium quality, we recommend changing to High Quality.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1404 [NoesisGUI] Unity3D major always 2019-02-05 05:41 2022-05-08 21:25
Reporter: nokola Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Cannot draw Path to meet two Arc-s: rendering artifacts (WPF OK)
Description: I wanted to make a color picker, that's basically an ellipse with the top half filled in one color and the bottom filled with another.
To do that, I make the ellipse out of two Paths with Arc for top and bottom (one is clockwise, the other counter-clockwise).

Works great in WPF/Visual Studio, however the same code in Noesis causes drawing artifacts - gaps - between the two arcs.

Tags:
Steps To Reproduce: 1. Load this in WPF and Noesis:
            <Path x:Name="pathTop" Data="M-80,0 A80,80 0 0 1 80,0" IsHitTestVisible="False" Tag="HT" StrokeThickness="20">
                <Path.Stroke>
                    <RadialGradientBrush x:Name="pathTopBrush" GradientOrigin="0.5,1" Center="0.5,1" RadiusX="0.5" RadiusY="1">
                        <GradientStop Color="Red"/>
                    </RadialGradientBrush>
                </Path.Stroke>
            </Path>
            <Path x:Name="pathBottom" Data="M-80,0 A80,80 0 0 0 80,0" IsHitTestVisible="False" Tag="HT" StrokeThickness="20">
                <Path.Stroke>
                    <RadialGradientBrush x:Name="pathBottomBrush" GradientOrigin="0.5,0" Center="0.5,0" RadiusX="0.5" RadiusY="1">
                        <GradientStop Color="Green"/>
                    </RadialGradientBrush>
                </Path.Stroke>
            </Path>

Expected:
All OK
Actual:
gap between red and green arcs
Added screenshot
Additional Information:
Attached Files: ArcPaintIssue.png (31,486 bytes) 2019-02-05 05:43
https://www.noesisengine.com/bugs/file_download.php?file_id=965&type=bug
Notes
(0005431)
nokola   
2019-02-05 05:43   
Added attachment
(0005432)
sfernandez   
2019-02-05 11:21   
(Last edited: 2019-02-05 11:23)
While we fix that problem with the generated stroke, maybe you can use a filled path like this:

    <Canvas HorizontalAlignment="Center" VerticalAlignment="Center">
        <Path Data="M90.000001,0 C139.70563,0 180,40.294373 180,90 L160,90
                C160,51.340069 128.65993,20 90.000001,19.999998 51.34007,20 20.000001,51.340069 19.999997,90
                L0,90 C7.4505806E-07,40.294373 40.294373,0 90.000001,0 z"
                Fill="Red" Height="90" Canvas.Left="-90" Stretch="Fill" Canvas.Top="-90" Width="180"/>
        <Path Data="M0,0 L19.999997,0 C20.000001,38.659927 51.34007,70 90.000001,70 128.65993,70 160,38.659927 160,0
               L180,0 C180,49.705627 139.70563,90 90.000001,90 40.294373,90 7.4505806E-07,49.705627 0,0 z"
               Fill="Green" Height="90" Canvas.Left="-90" Stretch="Fill" Width="180"/>
    </Canvas>


(0005433)
nokola   
2019-02-05 17:32   
Thanks!
The issue is, I also want anti-aliasing. I ended up "simulating" AA by using linear gradient in code. Took me few days (would be nice if it "just works" like in WPF"
Here's what I ended up with that looks proper:

        <Ellipse x:Name="ellipsePickerColor" IsHitTestVisible="False" Tag="HT">
            <Ellipse.Stroke>
                <LinearGradientBrush x:Name="ellipsePickerColorBrush" EndPoint="0.5,1" StartPoint="0.5,0" />
            </Ellipse.Stroke>
        </Ellipse>

        <Ellipse x:Name="ellipsePicker" IsHitTestVisible="False" Tag="HT">
            <Ellipse.Stroke>
                <RadialGradientBrush x:Name="pickerColor"/>
            </Ellipse.Stroke>
        </Ellipse>

Code:
            float totalWidth = 160f;
            float colorWidth = 18f;
            float borderWidth = 2f;
            SetupColorPicker(ellipsePicker, pickerColor,
                ellipsePickerColor, ellipsePickerColorBrush,
                totalWidth, colorWidth, borderWidth, Globals.AntiAliasSize);

        /// <summary>
        /// Creates a color picker with anti-aliased borders from an ellipse and radialgradientbrush attached to it.
        /// </summary>
        /// <param name="picker">ellipse to init color picker at</param>
        /// <param name="brush">radial brush attached to ellipse</param>
        /// <param name="pickerColorUnderneath"></param>
        /// <param name="pickerColorUnderBrush"></param>
        /// <param name="totalWidthEpx">total width of color picker</param>
        /// <param name="colorWidthEpx">width of color part</param>
        /// <param name="borderWidthEpx">width of two borders around color</param>
        /// <param name="aaSize">anti-alias area width</param>
        private static void SetupColorPicker(Ellipse picker,
            RadialGradientBrush brush,
            Ellipse pickerColorUnderneath,
            LinearGradientBrush pickerColorUnderBrush,
            float totalWidthEpx,
            float colorWidthEpx,
            float borderWidthEpx,
            float aaSize)
        {
            borderWidthEpx -= aaSize; // remove half the AA (not aaSize * 2) because aa is assumed to add width only through half of itself
            if (borderWidthEpx < 0)
            {
                borderWidthEpx = 0;
            }
            float radius = totalWidthEpx / 2;
            brush.GradientStops = new GradientStopCollection();
            GradientStopCollection stops = brush.GradientStops;
            float colorStartEpx = aaSize + borderWidthEpx + aaSize + colorWidthEpx;
            picker.Width = totalWidthEpx;
            picker.Height = totalWidthEpx;
            picker.RenderTransform = new TranslateTransform(-radius, -radius);
            picker.StrokeThickness = (colorWidthEpx + borderWidthEpx * 2 + aaSize * 4) + 1;

            stops.Add(new GradientStop { Offset = 1f - (colorStartEpx + aaSize + borderWidthEpx + aaSize + aaSize) / radius }); // AA
            stops.Add(new GradientStop { Offset = 1f - (colorStartEpx + aaSize + borderWidthEpx + aaSize) / radius, Color = Colors.White }); // border
            stops.Add(new GradientStop { Offset = 1f - (colorStartEpx + aaSize + aaSize) / radius, Color = Colors.White }); // AA
            stops.Add(new GradientStop { Offset = 1f - (colorStartEpx + aaSize) / radius, Color = Color.FromRgb(40, 40, 40) }); // dark border
            stops.Add(new GradientStop { Offset = 1f - colorStartEpx / radius }); // picked color

            stops.Add(new GradientStop { Offset = 1f - (aaSize + borderWidthEpx + aaSize + aaSize) / radius }); // picked color + AA
            stops.Add(new GradientStop { Offset = 1f - (aaSize + borderWidthEpx + aaSize) / radius, Color = Color.FromRgb(40, 40, 40) }); // dark border
            stops.Add(new GradientStop { Offset = 1f - (aaSize + borderWidthEpx) / radius, Color = Colors.White }); // border
            stops.Add(new GradientStop { Offset = 1f - aaSize / radius, Color = Colors.White }); // AA
            stops.Add(new GradientStop { Offset = 1f });


            // setup lower ellipse - a linear gradient used to effectively draw 2 arcs
            // needed due to Noesis issue:
            // "Cannot draw Path to meet two Arc-s: rendering artifacts (WPF OK)" https://www.noesisengine.com/bugs/view.php?id=1404
            // At the end lower ellipse will look like:
            // <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            // <GradientStop Color="Red" Offset="0"/>
            // <GradientStop Color="Red" Offset="0.5"/>
            // <GradientStop Color="Green" Offset="0.5"/>
            // <GradientStop Color="Green" Offset="1"/>
            // </LinearGradientBrush>
            pickerColorUnderneath.StrokeThickness = colorWidthEpx + aaSize * 2;
            float thicknessDelta = picker.StrokeThickness - pickerColorUnderneath.StrokeThickness;
            float colorEllipseSize = totalWidthEpx - thicknessDelta; // this will center stroke
            pickerColorUnderneath.Width = colorEllipseSize;
            pickerColorUnderneath.Height = colorEllipseSize;
            pickerColorUnderneath.RenderTransform = new TranslateTransform(-radius, -radius);

            pickerColorUnderBrush.GradientStops = new GradientStopCollection();
            GradientStopCollection underStops = pickerColorUnderBrush.GradientStops;
            underStops.Add(new GradientStop() { Offset = 0 });
            underStops.Add(new GradientStop() { Offset = 0.5f });
            underStops.Add(new GradientStop() { Offset = 0.5f });
            underStops.Add(new GradientStop() { Offset = 1 });
        }

A lot of code to work around AA and the above issue. Pasting it here for information to hopefully influence further Noesis improvements and help others who may be facing similar issue.
Again thank you for the fast response!
(0007919)
jsantos   
2022-05-08 21:25   
Arc gaps has been fixed.

Regarding better AA, our algorithm is optimized for speed vs quality. You have two options to improve this:

1. Use GPU support enabling MSAA
2. User our cheap PPAA algorith and tweak it for specific cases

More information available at https://www.noesisengine.com/docs/Gui.Core.AntialiasingTutorial.html

Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1484 [NoesisGUI] C++ SDK feature always 2019-06-06 18:14 2022-05-04 12:44
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Implement Storyboard.Seek methods
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.animation.storyboard.seek?view=netframework-4.8
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006362)
steveh   
2020-05-15 11:41   
Hi guys, is there any update on this? How feasible is it that this could make it into 3.0.0? We have a few situations where animation seeking could benefit us. Cheers.
(0006363)
jsantos   
2020-05-15 12:05   
Hi Steve, 3.0.0 is already closed, release is happening in the upcoming days. But we can start working on this for 3.0.1
(0006389)
ai_enabled   
2020-05-25 19:17   
I wish to see it in 3.0.1! :-)
(0006390)
jsantos   
2020-05-26 12:05   
(Last edited: 2020-05-26 12:05)
This task is not trivial and we are going to release a 3.0.1 with minor things this week but this is definitely in high priority and will appear in 3.0.X very soon



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2317 [NoesisGUI] C++ SDK crash sometimes 2022-03-31 20:22 2022-05-03 19:15
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Crash when applying animation values in TimeManager::Tick
Description: Hi guys,

I've spent quite a bit of time tracking down a crash. I've tracked it down to attempting to apply an animation value on a destroyed dependency object.

I've created a reproducible sample that I've attached as a ZIP to this bug report.

So what has happened?

1. In TimeManager::Tick it collates together all the animation values that it needs to apply to all dependency objects this frame. This is stored in a local HashMap on the stack which contains non-ref counted pointers
2. It then iterates through each AnimationValue and call DependencyObject::SetAnimation passing in the new value.
3. This invoked dependency property changed events.
4. If user code binds to this (e.g. the IsVisibleChanged event) we can run code which ultimately removes all references to dependency object and removes it
5. This can end up freeing the dependency objects that are currently stored as raw addresses in the stack that was created in step 1.
6. When it attempts to apply the animation value on the now deleted object it crashes.


So just to clarify, it's this bit of code in TimeManager::Tick which is broken:

-----------------
    // Update properties
    AnimationValues animationValues;
    for (Targets::Bucket& b: mTargets)
    {
        DependencyObject* target = b.key;
        const AnimatedProperties& properties = b.value.animatedProperties;

        EvaluateTarget(target, properties, animationValues, finishedClocks);
    }

    // Now that we are out of the targets loop, we can safely apply the new animation values
    ApplyAnimationValues(animationValues);

----------------

So if dependency objects that currently reside in the animationValues map are removed during ApplyAnimationValues it can crash. In my case this was caused by changing the Content from a DependencyPropertyChangedEvent which cleared out the ContentTemplate which destroyed the DependencyObjects created by that DataTemplate. Since this happened instantly, it ended up invalidating the AnimationValue map which had already taken a raw pointer to the DependencyObjects.


I've fixed this locally by adding all targets in the AnimationValue map to the "aliveTargets" vector:

    for (Targets::Bucket& b: mTargets)
    {
        DependencyObject* target = b.key;
        const AnimatedProperties& properties = b.value.animatedProperties;

        EvaluateTarget(target, properties, animationValues, finishedClocks);

        // Keep this target alive as it could be invalidated in ApplyAnimationValues
        aliveTargets.EmplaceBack().Reset(target); // [Sumo SPH 2022-03-31] - Keep these animation targets alive!
    }


I'm not sure if this is the best fix, but I've not been able to crash it after this change.

Cheers!
Tags:
Steps To Reproduce: 1. Download my sample.
2. Extract to Noesis SDK
3. Build it
4. Click the button. When the button is collapsed it will trigger a DependencyPropertyChangedEvent which will lead to a crash when the content is changed.

Note: This does not seem to be 100% for some reason. If it doesn't break, just restart the sample. It'll break eventually.
Additional Information:
Attached Files: AnimationCrashBug.zip (11,749 bytes) 2022-03-31 20:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1616&type=bug
image.png (229,895 bytes) 2022-04-22 14:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1626&type=bug
Notes
(0007884)
jsantos   
2022-04-04 07:54   
Thanks for the report Steve, giving high-priority to this
(0007906)
steveh   
2022-04-22 14:37   
Hi guys, so in addition to the above change, one of our tech directors is investigating other stomps with other tools and has identified the following stomp (I've attached an image).

The change is the P4 diff. Unfortunately I didn't investigate this stomp so I don't have any more info on it. It looks like erasing the clock pointer inside RemoveMasterClock, and then we try to write mTarget to 0 on a now-erased clock. The fix is to zero out the target on the clock before it's erased from the mMasterClocks vector.
(0007907)
sfernandez   
2022-04-22 16:18   
That change is not correct because there is another use of the RemoveMasterClock (in the method OnClockFinished) that requires later use of clock->mTarget.
The easiest way to fix it, before I analyze this better is to keep a reference to the clock in RemoveUnusedMasterClocks:

void TimeManager::RemoveUnusedMasterClocks(const ClocksSet& clocks)
{
    for (Clock* masterClock: clocks)
    {
        if (!IsClockUsed(masterClock))
        {
            Ptr<Clock> masterClockPtr(masterClock);
            RemoveMasterClock(masterClock);
            masterClock->mTarget = 0;
        }
    }
}


Could you try that?
(0007909)
steveh   
2022-04-22 18:30   
Hi Sergio, your suggestion works great. We've submitted that to our local branch, much appreciated.
(0007916)
sfernandez   
2022-05-03 19:15   
Both issues solved in changeset r11317.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1547 [NoesisGUI] C++ SDK feature have not tried 2019-08-26 13:29 2022-04-28 15:30
Reporter: tkawa Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Windows
Summary: Support lighter-weight Drawing objects
Description: Refer the following forum's topic:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1793

This means implementing the classes:

- Drawing
--- DrawingGroup
--- GeometryDrawing
--- ImageDrawing
--- GlyphRunDrawing
--- VideoDrawing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: DrawingClasses.png (86,658 bytes) 2022-03-18 10:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1609&type=bug
Notes
(0007872)
sfernandez   
2022-03-18 10:54   


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
824 [NoesisGUI] C++ SDK feature always 2016-02-08 21:29 2022-04-26 12:21
Reporter: elios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.5f10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Freeze resources in xaml missing
Description: Missing attribute freeze, to be able to freeze resources on xaml loading

https://msdn.microsoft.com/library/aa970057%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396
Tags:
Steps To Reproduce: In WPF you can import this namespace

xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"

and then use it to freeze the resources you know they are not gonna change:

<SolidColorBrush x:Key="ConnectorColorBrush" Color="#888" po:Freeze="True" />
Additional Information: https://msdn.microsoft.com/library/aa970057%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396

http://stackoverflow.com/questions/799890/how-can-wpf-objects-deriving-from-freezable-be-frozen-in-xaml
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2319 [NoesisGUI] C++ SDK minor have not tried 2022-04-04 07:30 2022-04-25 11:59
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: UriConverter::ParseUri crashing when receiving null string pointer
Description: As part of the converter architecture, UriConverter::ParseUri is being invoked with a null string crashing client code.

Right now, we only have an assert there and it doesn't seem to be enough and this is exposed to client code.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007886)
jsantos   
2022-04-04 09:49   
[ 00 ] Noesis::UriConverter::ParseUri(char const*, Noesis::Uri&) const
[ 01 ] Noesis::ImageSourceConverter::TryConvertFromString(char const*, Noesis::Ptr<Noesis::BaseComponent>&) const
[ 02 ] NoesisApp::ChangePropertyAction::UpdateConvertedValue()
[ 03 ] NoesisApp::ChangePropertyAction::Invoke(Noesis::BaseComponent*)
[ 04 ] NoesisApp::TriggerBase::InvokeActions(Noesis::BaseComponent*)
[ 05 ] NoesisApp::AttachableObject::Attach(Noesis::DependencyObject*)
[ 06 ] NoesisApp::TriggerCollection::OnAttached()
[ 07 ] NoesisApp::AttachableCollection<NoesisApp::TriggerBase>::Attach(Noesis::DependencyObject*)
[ 08 ] OnTriggersChanged(Noesis::DependencyObject*, Noesis::DependencyPropertyChangedEventArgs const&)
[ 09 ] Noesis::DependencyObject::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&)
[ 10 ] Noesis::Visual::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&)
[ 11 ] Noesis::UIElement::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&)
[ 12 ] Noesis::FrameworkElement::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&)
[ 13 ] Noesis::Panel::OnPropertyChanged(Noesis::DependencyPropertyChangedEventArgs const&)
[ 14 ] Noesis::DependencyObject::Init()


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2322 [NoesisGUI] C# SDK minor always 2022-04-06 12:30 2022-04-21 19:55
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Can't load xaml from external dll
Description: When using Managed SDK it is not possible to load the xaml of user controls defined in external dlls.

To make it work now the user needs to create a custom provider that loads all its application assemblies.
It would be better to automatically handle this in the application framework using the LoadAssembly callback.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2327 [NoesisGUI] C# SDK feature always 2022-04-12 11:40 2022-04-12 11:40
Reporter: JinFox Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Button Does not expose and overridable OnClick Method (as opposed to WPF)
Description: Hello,

Could it be possible to expose an overridable OnClick Method in Button the same way WPF does?
We were trying to intercept a click to do some treatment on it and we managed to work around it using PreviousMouseButtonDown but Sergio advised to me to still open a feature request on this as having access to OnClick would be useful to achieve this.

Thank you!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2321 [NoesisGUI] Unity3D feature always 2022-04-05 21:17 2022-04-12 10:32
Reporter: ckfinite Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Custom RoutedEventArgs
Description: The usual WPF idiom for passing information about a routed event is to subclass RoutedEventArgs and provide properties that hold the relevant information. However, this is very hard to do in Noesis, as (from the managed API at least) RoutedEventArgs's implementation is very deeply entwined with the native implementation. Adding support for custom RoutedEventArgs would make it easier to implement custom routed events in an application.
Tags:
Steps To Reproduce: As an example, suppose we have
[code]
  class ResizeEventArgs : RoutedEventArgs
  {
    public float Amount {get;}
    public ResizeEventArgs(RoutedEvent @event, object sender, float amount) :
      base(@event, sender)
      { this.Amount = amount; }
  }
[/code]
If we attempt to use ResizeEventArgs as an EventArgs then Noesis will error with
[code]
InvalidOperationException: Event args for ResizeEventHandler have to define the method 'static void InvokeHandler(Delegate handler, IntPtr sender, IntPtr args)'
[/code]
Implementing InvokeHandler from a user perspective is practically impossible, making it very difficult to use this custom RoutedEventArgs implementation.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2326 [NoesisGUI] Documentation minor always 2022-04-08 11:52 2022-04-08 14:50
Reporter: CaptainCatSparrow Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Trial code generation page is not available
Description: https://www.noesisengine.com/trial/ returns 404
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1016 [NoesisGUI] C# SDK minor always 2017-02-11 17:35 2022-04-06 12:31
Reporter: Ziriax Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: .NET assemblies are not loaded when parsing XAML
Description: I had a problem where <DataTemplate DataType={x:Type vm:StartScreen}"/> (see additional information) did not work, I got assertions in the TypeExtension, mType == 0

When debugging the source code, I noticed that the C++ code could not find a native type for "StartScreen".

The reason was that the .NET runtime did not yet load the Game.ViewModels assembly when Noesis was parsing the XAML, and so Noesis did not register the types yet.

IMHO when Noesis is parsing XAML clr-namespace, it should load the .NET assemblies, and (lazily) create native types?

Tags:
Steps To Reproduce:
Additional Information: <UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:vm="clr-namespace:Game.ViewModels;assembly=Game.ViewModels"
    mc:Ignorable="d">
    <UserControl.Resources>
        <DataTemplate DataType="{x:Type vm:StartScreen}" />
    </UserControl.Resources>
</UserControl>

Attached Files:
Notes
(0004448)
sfernandez   
2017-02-21 13:20   
We don't currently load assemblies, it should be done by the user. Sorry for the inconvenience.

But maybe we can investigate what you suggested: looking for the xmlns assembly definition and try to load it ourselves.
(0004451)
Ziriax   
2017-02-21 13:25   
Ah that explains it :-)

Maybe even better and easier for you, just provide a callback for resolving these DLLs (these could be either native or managed)?
(0004457)
sfernandez   
2017-02-21 13:53   
Yes, that sounds event better.
It could be valid for native libraries too, you are right.
(0004464)
sfernandez   
2017-02-21 19:09   
By the way, we just generated a new beta for the C# SDK you can download here:
https://drive.google.com/open?id=0Bwl3Ci5GLsE8dms4RkhWcFBzems

Please create new tickets for the issues you find.

We appreciate your feedback.
(0004466)
jsantos   
2017-02-21 20:26   
There are a few important changes regarding textures in this new version:

1. WrapTexture methods are no longer part of the TextureSource. The Texture source is now built using a Texture (same as C++ API)
2. We expose separate WrapTexture methods to create a Texture using a ID3D11Texture2D (sorry for this breaking change)
3. Texture has a object field to optionally hold the object with the ownership of the native handle
4. There will be also a callback clients must set to load textures from URI. You are in charge of creating the textures now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2318 [NoesisGUI] Unity3D major always 2022-03-31 20:30 2022-04-04 11:40
Reporter: aberro Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ItemsControl.ItemsSource not working with IEnumerable
Description: Following type used as ItemsSource doesn't display any items:

public class Test<T> : IEnumerable<T>, IEnumerable
{
    private IEnumerable<T> _source;
    public Test(IEnumerable<T> collection)
    {
        _source = collection.ToArray();
    }
    public IEnumerator<T> GetEnumerator()
    {
        return _source.GetEnumerator();
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}

In WPF ItemsControl may accept any IEnumerable types.
I've tested in Unity only, but probably this relates to other environments too.
Also, this could be related to https://www.noesisengine.com/bugs/view.php?id=1017
Tags: WPF
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007883)
aberro   
2022-03-31 20:55   
Yep, seems like 1017 is related, I've implemented IList and now it's working.
(0007885)
sfernandez   
2022-04-04 09:48   
As you found our ItemsSource implementation is based on the IList interface, would that work for you?
(0007887)
aberro   
2022-04-04 11:40   
Well, yes, but aren't you trying to implement fully WPF compatible UI?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1017 [NoesisGUI] C# SDK major always 2017-02-15 12:05 2022-03-31 20:31
Reporter: Ziriax Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: ItemsControl.ItemsSource not working with custom observable collection
Description: The following C# collection does not work when assign to ItemsControl.ItemsSource

public class MyList<T> : IList, IList<T>, INotifyCollectionChanged

Removing INotifyCollectionChanged makes it work, but then you don't have change notification

The attached patch solves this, although I did not test the change notification yet

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ExtendRegistry.inl.patch (689 bytes) 2017-02-15 12:05
https://www.noesisengine.com/bugs/file_download.php?file_id=744&type=bug
Notes
(0004449)
sfernandez   
2017-02-21 13:23   
We'll fix it in a future release.

I think we need to have the 3 possibilities (an IList proxy, an INotifyCollectionChanged proxy, and an IList+INotifyCollectionChanged proxy) to provide the correct solution.
(0004452)
Ziriax   
2017-02-21 13:28   
Ok.

Now if I look at the current code in NoesisExtend.cs

            else if (typeof(System.Collections.IList).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo()))
            {
                if (typeof(System.Collections.Specialized.INotifyCollectionChanged).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo()))
                {
                    nativeType = Noesis.ExtendObservableList.Extend(TypeFullName(type));
                }
                else
                {
                    nativeType = Noesis.ExtendList.Extend(TypeFullName(type));
                }
            }

then it seems that only those types implementing both IList and INotifyCollectionChanged will be registered as ExtendObservableList.

So currently we can assume that whenever ExtendObservableList is used, the managed collection will implement IList and INotifyCollectionChanged.

So I guess my patch would be sufficient for the current code base.
(0004469)
jsantos   
2017-02-21 20:33   
Thanks for the patch! Sergio is going to study the integration soon.

Anyway, I wonder if there is a better way to expose C# interfaces in C++, the current approach seems to be very hardcoded and limited...


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2312 [NoesisGUI] Unreal crash always 2022-03-22 23:14 2022-03-25 15:27
Reporter: vogelLightword Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.5  
    Target Version: 3.1.5  
Platform: Any
Summary: Crash when using MPC-collections in a material
Description: Good evening,
We have a Material-Parameter-Collection that manages the currently selected input device inside a Material.
We want an instance of that material to be visible in our UI.
From our Noesis frontend we implement a Material-Instance (MI) as a ShaderBrush. The master-material of that MI uses the mentioned MPC.
If the MPC is connected whilst the MI is being used in a Noesis-View/xaml, the engine crashes.

Breakpoint is attached,
Tags: crash, Materials, MPC, Unreal
Steps To Reproduce: 1: Bind a Noesis-Image (or in our case ImageBrush in an inline-Container) to a Material-Instance
    1.1: The parent of the Material-Instance uses a Material-Parameter-Collection to give output
2: Implement the Noesis-View and thus try to show the Material-Instance
3: See a crash happening
Additional Information: Our noesis-sample-code: (M_InputButton_Inst is the mentioned Material-Instance, of which the parent uses a Material-Parameter-Collection).
The currentID-binding is the current ID of the image to select (not directly related to the Material-Parameter-Collection, no problem/crash occurs whilst the MPC is disconnected)
           <TextBlock>
                <Run Text="{Binding Text1}"></Run>
                <InlineUIContainer>
                    <Rectangle Width="32" Height="32">
                        <Rectangle.Fill>
                            <ImageBrush>
                                <noesis:Brush.Shader>
                                    <assets:M_InputButton_Inst KeyboardID="{Binding currentID}"/>
                                </noesis:Brush.Shader>
                            </ImageBrush>
                        </Rectangle.Fill>
                    </Rectangle>
                </InlineUIContainer>
                <Run Text="{Binding Text2}"></Run>
            </TextBlock>
Attached Files: image.png (498,733 bytes) 2022-03-22 23:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1610&type=bug
2312.patch (6,663 bytes) 2022-03-25 13:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1614&type=bug
Notes
(0007874)
vogelLightword   
2022-03-22 23:17   
    
(0007875)
vogelLightword   
2022-03-23 09:27   
Changed mentions of Material-Instances-Dynamic to Material-Instances (since in our case we only use Material-Instances as Noesis can already modify its bindings at runtime, so no Dynamic instantiation is needed)
(0007879)
hcpizzi   
2022-03-25 13:50   
Hi,

I think I fixed this correctly. Besides fixing the crash, now parameter overrides (using Set[Scalar|Vector]ParameterValue) seem to work correctly too.

Could you give the attached patch a try to confirm it solves your problem?

Thanks.
(0007880)
vogelLightword   
2022-03-25 14:19   
Thanks a lot hcpizzi, that works just fine now! Also many thanks for the fast fix!
(0007881)
hcpizzi   
2022-03-25 15:27   
Glad it solved your issue. Marking as resolved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2310 [NoesisGUI] C++ SDK feature always 2022-03-18 11:01 2022-03-18 11:06
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Support for DrawingImage
Description: Implement the ImageSource that uses a Drawing as content: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.drawingimage?view=windowsdesktop-6.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1110 [NoesisGUI] Unity3D feature always 2017-06-15 14:28 2022-03-18 11:06
Reporter: MrJul Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Support for DrawingBrush
Description: Please add support for DrawingBrush. While it can often be replaced with a Path, the latter participates in the layout calculation, making it harder to use as a background-only brush (especially in auto-sized controls).

https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.drawingbrush?view=windowsdesktop-6.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005698)
nikobarli   
2019-06-06 07:39   
I am voting to this issue as well.
(0006447)
real_mikhail   
2020-06-20 16:04   
+1 for DrawingBrush
(0007775)
spadapet   
2022-02-03 14:59   
+1 for DrawingBrush


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2309 [NoesisGUI] C++ SDK feature have not tried 2022-03-18 10:44 2022-03-18 11:06
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for CacheMode
Description: A value that indicates that rendered content should be cached as a composited bitmap when possible.

https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/how-to-improve-rendering-performance-by-caching-an-element
https://docs.microsoft.com/en-us/windows/winui/api/microsoft.ui.xaml.uielement.cachemode?view=winui-3.0

<Canvas Background="White" CacheMode="BitmapCache">
    <Ellipse Height="40" Width="40" Fill="Blue"/>
    <Ellipse Canvas.Left="21" Height="40" Width="40" Fill="Blue"/>
    <Ellipse Canvas.Top="13" Canvas.Left="10" Height="40" Width="40" Fill="Blue"/>
</Canvas>

We probably want to use an atlas for this. Right now we have one for offscreens and effects that is cleared per frame. The one we need here needs to persists between frames, so we need to expose a way to bind a render target without clearing its content in the RenderDevice abstraction.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2306 [NoesisGUI] Unreal crash have not tried 2022-03-10 13:38 2022-03-17 21:25
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.4  
    Target Version: 3.1.4  
Platform: Any
Summary: Unreal Android build crash when NotifyChanged on Image is called
Description: In my xaml, I try to bind an image to a Texture2D variable in NoesisView:

<!-- some layout -->
<Image Grid.Column="3" Width="32" Height="32" Margin="221,30,182,30">
    <Image.Source>
        <Binding Path="TestIcon"/>
    </Image.Source>
</Image>
<!-- some layout -->

Then I have a button which sets TestIcon variable w/ NotifyChanged. So when i push it, the image swaps to another texture.
Everything works fine in Unreal PIE (Play in Editor), but when i try to launch it on android, the app crashes whenever i press the button.
The crash also happens when the button simply sends a NotifyChanged on that PropertyName.
Worth noting is other TextBinding works fine.
Checking UE log, I don't see any related error before and after the crash:

LogPlayLevel:   --------- beginning of crash
LogPlayLevel: Took 0.6975239s to run adb.exe, ExitCode=0
LogPlayLevel: Running: C:\Users\AnLe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 8e865750 logcat -d
LogPlayLevel: Took 0.2529926s to run adb.exe, ExitCode=0
LogPlayLevel: ********** RUN COMMAND COMPLETED **********
LogPlayLevel: BUILD SUCCESSFUL
Tags:
Steps To Reproduce: My Project Version:
- UE 4.27.2
- NoesisGUI-UE4.27-3.1.2-Indie
Android Studio version 4.0 config, per Unreal document guidance:
- SDK: 30.0.3 / 29.0.2 / 28.0.3
- NDK: 21.4.7075529
- CMake: 3.10.2.4988404
Additional Information:
Attached Files: 2306.patch (945 bytes) 2022-03-11 13:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1607&type=bug
NoesisRenderDevice.cpp.patch (2,478 bytes) 2022-03-14 17:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1608&type=bug
Notes
(0007861)
hcpizzi   
2022-03-11 13:16   
I've found a problem where a check was accessing a null pointer if the texture property was set to none. Otherwise it is working for me. Could you try the attached patch and let us know if it works for you?
(0007863)
hcpizzi   
2022-03-14 17:27   
I have another patch for you to try. I think I was able to reproduce it this time.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2304 [NoesisGUI] Unity3D minor always 2022-03-09 18:26 2022-03-17 21:25
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.4  
    Target Version: 3.1.4  
Platform: Any
Summary: Disabled XAML Preview Appears to Affect Runtime Behavior
Description: I have preview disabled. However, this code throws an error at runtime if the associated XAML control is selected in the Unity inspector window.

*NoesisXamlEditor:CreatePreviewView *

[NOESIS/E] Child already has a logical parent
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/NoesisUnity.cs:357)
Noesis.View:CreateCPtr (System.Type,bool&) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Core/View.cs:535)
Noesis.BaseComponent:.ctor () (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Proxies/BaseComponentExtend.cs:17)
Noesis.DispatcherObject:.ctor () (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Proxies/DispatcherObject.cs:30)
Noesis.View:.ctor (System.Runtime.InteropServices.HandleRef) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Core/View.cs:519)
Noesis.View:.ctor (Noesis.FrameworkElement) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Core/View.cs:492)
Noesis.GUI:CreateView (Noesis.FrameworkElement) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Core/NoesisGUI.cs:332)
NoesisXamlEditor:CreatePreviewView () (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Editor/NoesisXamlEditor.cs:30)
NoesisXamlEditor:HasPreviewGUI () (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Editor/NoesisXamlEditor.cs:185)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

If I do not have the control selected in the inspector window I do not get this error when playback begins.
Tags:
Steps To Reproduce: 1. Create a user control.
2. Disable preview in Noesis settings.
3. Have user control visible in project Unity inspector window prior to Unity playback.
4. Show user control during runtime. Error manifests.

This is not a big deal at all. I am just reporting in case it is helpful.
Additional Information:
Attached Files: 1.png (86,011 bytes) 2022-03-09 18:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1603&type=bug
2.png (119,413 bytes) 2022-03-09 18:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1604&type=bug
3.png (209,037 bytes) 2022-03-09 18:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1605&type=bug
Notes
(0007853)
jsantos   
2022-03-10 13:13   
Thanks for reporting this!
(0007868)
sfernandez   
2022-03-17 16:50   
Hi,

I found that the Preview is being generated (although not rendered) even if the setting is disabled. We need to fix this behavior.
But I'm not able to reproduce that error. It seems to me that your control may have some global element that gets added to the UI tree when it is loaded, so when you click play and have the preview selected, that global element is added to two different UI trees. Could that be your case?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2045 [NoesisGUI] C# SDK major always 2021-06-10 19:00 2022-03-17 11:28
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: IsDoubleTapEnabled should inherit parent to child
Description: Whether a double-tap event is raised depends on the value of IsDoubleTapEnabled for the specific control that the tap is directly over. For a Button, this isn't necessarily the button object itself, but the Border that draw the colored background, the TextBlock that contains the text of the button, etc.

IsDoubleTapEnabled is currently set on each individual component. In order to enable/disable double-tap for a button, IsDoubleTapEnabled currently needs to be set on all the child objects as well.

If it were inherited instead, then setting it on the Button would be all that was necessary.
Tags:
Steps To Reproduce: In our application, we only use double-tap in two very small places. In the other 99% of the application, we want rapid tapping to be interpreted as many single taps. Therefore, we switch the default value of IsDoubleTapEnabled to false, and only set it to true in the two spots we actually use double-tap.

// At startup, before loading any GUI components:
UIElement.IsDoubleTapEnabledProperty.OverrideMetadata(typeof(FrameworkElement), new UIPropertyMetadata(false));

<Button 
    IsManipulationEnabled="True"
    IsDoubleTapEnabled="True"
    Content="Test Button"
    Tapped="OnTapped"
    Holding="OnHold"
    DoubleTapped="OnDoubleTapped"
/>


However, this doesn't work: IsDoubleTapEnabled needs to be set on whatever is directly under the mouse when the tap happens. For a plain text button, that means setting it on the Border and TextBlock inside the button.

The opposite is also true: If I don't change the default value, and set IsDoubleTapEnabled=False on a Button, its DoubleTapped event still gets raised. IsDoubleTapEnabled needs to be set to false on all the controls inside the Button to make DoubleTapped not get raised, and interpret it as two Tap events instead.

(If this change is made, then we can switch it from overriding the default value of the property, to just setting it on the top-level Window, and letting it be inherited. Way easier.)
Additional Information:
Attached Files:
Notes
(0007645)
noesisChris   
2021-12-03 15:17   
Not needed for 3.1.2 - Bryan
(0007829)
sfernandez   
2022-03-03 13:32   
I've been thinking about this and came up with a solution that doesn't break compatibility with Blend.

Instead of changing the default property to inherit, you can create an attached inherited property that will be in charge of updating the default property:

public static class TouchHelper
{
    public static bool GetIsDoubleTapEnabled(UIElement obj)
    {
        return (bool)obj.GetValue(IsDoubleTapEnabledProperty);
    }

    public static void SetIsDoubleTapEnabled(UIElement obj, bool value)
    {
        obj.SetValue(IsDoubleTapEnabledProperty, value);
    }

    public static readonly DependencyProperty IsDoubleTapEnabledProperty = DependencyProperty.RegisterAttached(
        "IsDoubleTapEnabled", typeof(bool?), typeof(TouchHelper),
        new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits, OnIsDoubleTapEnabledChanged));

    private static void OnIsDoubleTapEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        if (e.NewValue != null)
        {
            ((UIElement)d).IsDoubleTapEnabled = (bool)e.NewValue;
        }
    }
}


Then you can use it in the xaml as you suggested, disabling it for the whole window, and then enabling it only on the controls you need it:

<Window x:Class="UIShell.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:UIShell"
  local:TouchHelper.IsDoubleTapEnabled="False" ...>
  ...
  <Button local:TouchHelper.IsDoubleTapEnabled="True"/>
  ...
  <TextBox local:TouchHelper.IsDoubleTapEnabled="True"/>
  ...
</Window>
(0007850)
DavidYawCSpeed   
2022-03-10 02:27   
This looks like it'll work well. I've added the changes into our application, with one minor change: I changed GetIsDoubleTapEnabled to return "bool?", rather than plain "bool".

I am somewhat concerned about how this would interact with some control setting UIElement.IsDoubleTapEnabled directly: If some control has UIElement.IsDoubleTapEnabled set, and I have TouchHelper.IsDoubleTapEnabled set on MainWindow, then the value from MainWindow might overwrite the value set on the individual control. That said, I'm not sure what to do about it: Calling ReadLocalValue would tell me if it was still default, but don't think it's possible to tell the difference between a non-default because it was set explicitly in that control's XAML, or because TouchHelper set it previously. Perhaps set it up so that TouchHelper would set up a binding from UIElement.IsDoubleTapEnabled to TouchHelper.IsDoubleTapEnabled, but only if there's no local value or another binding set up? I know how to check if there's no local value, or if there's a previously-evaluated binding, but I'm not sure how to tell if there's a binding set up, but hasn't been evaluated yet. But that probably doesn't matter, since we're in control of every element that gets loaded in our application,
(0007851)
sfernandez   
2022-03-10 11:21   
The idea of this attached property is that you don't deal with the original one, you shouldn't mix the use of both properties.
(0007855)
DavidYawCSpeed   
2022-03-10 15:44   
That should be fine.

It's only a concern because we do consume a third-party component. I don't have the source to the most recent version of that component, but I do have source to an older version, and that version doesn't touch IsDoubleTapEnabled, so we should be good.
(0007867)
sfernandez   
2022-03-17 11:28   
Is it fine to mark this as resolved with the attached property solution?
We feel it is not necessary to change our core implementation and deviate from WPF behavior.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2300 [NoesisGUI] C# SDK major always 2022-03-09 16:23 2022-03-16 16:22
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unable to Upgrade to Noesis 3.13 Due to Xaml Not Found Errors
Description: Upgrade Steps

1. I remove the 3.1.2 package in the Unity package manager.
2. I add a package via file path to the the unzipped 3.1.3 package.
3. Noesis for some reason fails to import my game's Resources.xaml file.
4. I reimport it via right click -> reimport in Unity. Now it is recognized by Noesis with XAML icon.
5. I restart Unity. Now the XAML files this Resources.xaml file cannot be found
6. However, the Resources.xaml file is present and dependencies load
7. But none of the XAML files contained within Resources.xaml loads. (1.png, 2.png, 3.png)

Nearly every recent release of Noesis has had continuity issues. Upgrades are very painful and they need to be transparent. The reason I am upgrading is so that I can validate if a bug still exists and report it -- but I can't upgrade.

Encl.
- Noesis settings references resources.xaml. (1.png)
- Resources.xaml references other XAML files (2.png)
- XAML files referenced by resources.xaml fails to load (3.png)
- Resources.xaml




Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 1.png (86,011 bytes) 2022-03-09 16:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1598&type=bug
2.png (119,413 bytes) 2022-03-09 16:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1599&type=bug
3.png (209,037 bytes) 2022-03-09 16:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1600&type=bug
Resources.xaml (595 bytes) 2022-03-09 16:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1601&type=bug
Notes
(0007838)
sfernandez   
2022-03-09 16:46   
Hi, I'm testing with the project you provided on ticket 2141 to see if I can reproduce the problem. I'll let you know what I find.
(0007840)
stonstad   
2022-03-09 17:09   
(Last edited: 2022-03-09 17:15)
Thank you Sergio! The fix for me was to reimport everything at the top level directory. I honestly don't know why this was needed but it worked.
(0007843)
sfernandez   
2022-03-09 17:45   
We need to understand what happened. Doing a "Reimport All" shouldn't be necessary and restarting Unity can probably show errors again.

I tried the project you attached in issue 2141, installed 3.1.3 version and after fixing a few compiler issues (you are calling NoesisUnity.UpdateCursor private method), some xamls that were using x:Name as keys in dictionaries, and changing Resources.xaml to use the NoesisTheme in our package, the installation finished and got no more errors. I want to remark one thing, in the upgrade steps you specified, you are removing 3.1.2 from Unity Package Manager and then installing 3.1.3, probably without closing Unity in between. This is problematic because Noesis 3.1.2 native library is yet in memory, and the new version library cannot be loaded.

Could you please try with that project too to see if you can upgrade it correctly?
(0007845)
stonstad   
2022-03-09 17:53   
Thanks for jumping on this quickly. I can confirm that in my project the update cursor behavior and Resources.xaml behavior was fixed a few months prior. These changes occurred in the migration to 3.1.2 and the resources.xaml file present is included in this ticket.

What was not fixed in my code on upgrade to 3.1.2 are the missing key properties for inline resource dictionaries on two XAML screens. I can confirm that I did not restart Unity after removing the prior package version.

I'm not sure what my next step is to help.
(0007846)
stonstad   
2022-03-09 17:56   
I feel like the challenge here is that I am not an expert XAML user and I introduce ignorant or unexpected XAML. The XAML might work in prior versions of Noesis but then on upgrade things fail. When this happens I enter into an unexpected "no mans land" in which features that normally work very well fail with unexpected behavior (e.g. missing XAML for separate unrelated files).
(0007847)
sfernandez   
2022-03-09 17:58   
Could you share with us an updated version of the project with all the compiler/xaml issues fixed?
And try to reproduce your upgrade problems with that project, so we both have the same project to compare and find what is happening.
(0007854)
jsantos   
2022-03-10 13:17   
Hi!

We have plan to release 3.1.4 next week (before our travel to GDC), so I think this is a great opportunity to quickly solve this.

If you could give us access to a project (working in 3.1.X) and the steps to be performed to upgrade to 3.1.3 that reproduces this issue we will give this max priority.
(0007856)
stonstad   
2022-03-11 00:15   
Congratulations on the trip to GDC. I believe you have an amazing product.

The game is large and it takes considerable effort to create a package that I can share. In this scenario I would be pulling down a version from a few days prior. The only change I would apply is the addition of resource dictionary keys for two XAML screens that were missing this. Is it possible the missing keys cause import to fail on project upgrades?
(0007858)
stonstad   
2022-03-11 00:17   
I'll work to provide a zip file of the project prior to the upgrade. I'll include the missing keys so that you have everything identical to what I encountered on upgrade.
(0007859)
jsantos   
2022-03-11 11:48   
Thank you!
(0007864)
stonstad   
2022-03-16 16:10   
I'm still working on this. There is complexity in downloading a prior build due to the size of the pull (100GB+), and then making sure it compiles and runs for you.
(0007865)
jsantos   
2022-03-16 16:12   
Hi, thank you!

This build that you are preparing is reproducing the issue following a list of steps?
(0007866)
stonstad   
2022-03-16 16:22   
I haven't been able to pull down a build of my project that is a copy of the day the behavior manifest. GitHub + Git LFS is having issues when I pull a fresh copy of source + assets. I was just going to send over source without game assets but apparently my dlls are in LFS and so I need to pull down everything. It's slow going until I figure out how to better structure things in GitHub and LFS on my end. My GitHub LFS transfer speed is about 2MB/s out of 100,000 MB. This issue crept on me and it is now very apparent when I need a fresh copy of everything.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2308 [NoesisGUI] C# SDK major always 2022-03-14 11:59 2022-03-15 13:14
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.4  
    Target Version: 3.1.4  
Platform: Any
Summary: Binding to a PolyLineSegment's Points property doesn't work
Description: Binding to a PolyLineSegment's Points property results in this error:

2022-03-11 16:57:21.0651|ERROR|Noesis|Can't add a 'Boxed<Point>' to a 'PointCollection'
2022-03-11 16:57:21.0651|ERROR|Noesis|Can't add a 'Boxed<Point>' to a 'PointCollection'
Tags:
Steps To Reproduce: This XAML doesn't work:

<UserControl x:Class="Modules.Measurement.LineControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Modules.Measurement"
             Visibility="{Binding Visibility}">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="MeasurementResources.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            
            <DataTemplate DataType="{x:Type local:Line}">
                <Grid>
                    <Path x:Name="line" Stroke="White" StrokeThickness="1" >
                        <Path.Data>
                            <PathGeometry>
                                <PathFigure StartPoint="{Binding Start.Position}">
                                    <PathFigure.Segments>
                                        <PolyLineSegment Points="{Binding Points}" />
                                    </PathFigure.Segments>
                                </PathFigure>
                            </PathGeometry>
                        </Path.Data>
                    </Path>
                </Grid>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=Dotted}" Value="True">
                        <Setter TargetName="line" Property="StrokeDashArray" Value="5,5"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ResourceDictionary>
    </UserControl.Resources>
    
    <UserControl.Template>
        <ControlTemplate TargetType="{x:Type UserControl}">
            <ContentPresenter Content="{Binding}"/>
        </ControlTemplate>
    </UserControl.Template>
</UserControl>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2303 [NoesisGUI] Unity3D minor always 2022-03-09 17:41 2022-03-09 20:44
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.4  
    Target Version: 3.1.4  
Platform: Any
Summary: ScrollViewer Scrolling Disabled if Contained Element Has Focus
Description: Video: https://tonstad.blob.core.windows.net/media/ToggleScrollBehavior.mp4 The cursor is not shown in the video but I am attempting to scroll.

I'm seeing that scroll viewers fail to scroll (via mouse drag and arrow keys) if a container within has a focused element. In the video you can see that scrolling works while no elements have focus. As soon as I switch to a keyboard (or gamepad) and focus is set scrolling stops working.

I see this behavior on other screens which use a ListBox with embedded scroll viewer. I can confirm this behavior exists in 3.0.12 and 3.0.13.

Perhaps this is a change that reflects accepted WPF behavior and it should not have worked previously?






Tags:
Steps To Reproduce: XAML1:
<ScrollViewer Grid.Row="1">
<WrapPanel x:Name="_WrapPanel" />
</ScrollViewer>

XAML2:
    <ListBox x:Name="_AssetsCollection" Grid.Row="1" ScrollViewer.HorizontalScrollBarVisibility="Auto" BorderBrush="Transparent" Background="Transparent"/>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2301 [NoesisGUI] Unity3D major always 2022-03-09 16:30 2022-03-09 17:09
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Runtime Error: key is needed to add an object to a dictionary
Description:  <UserControl.Resources>
        <Storyboard x:Name="_ScrollDownAnimation">
            <DoubleAnimation Storyboard.TargetName="_Mediator" Storyboard.TargetProperty="ScrollableHeightMultiplier" From="0" To="1" Duration="0:0:0.5">
                <DoubleAnimation.EasingFunction>
                    <ExponentialEase EasingMode="EaseInOut"/>
                </DoubleAnimation.EasingFunction>
            </DoubleAnimation>
        </Storyboard>

...

Do resources now need a key in addition to a name?

[NOESIS/E] Assets/User Interface/Screens/Game/Static/Profile/ProfileScreen.xaml(10): Key is needed to add an object to a dictionary.
UnityEngine.Debug:LogError (object,UnityEngine.Object)
NoesisUnity:UnityLog (int,string) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/NoesisUnity.cs:357)
Noesis.GUI:LoadComponent (object,string) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.3/Runtime/API/Core/NoesisGUI.cs:322)
StellarConquest.Presentation.Unity.UI.ProfileScreen:InitializeComponent () (at Assets/User Interface/Screens/Game/Static/Profile/ProfileScreen.cs:66)
StellarConquest.Presentation.Unity.UI.ProfileScreen:.ctor () (at Assets/User Interface/Screens/Game/Static/Profile/ProfileScreen.cs:61)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007837)
jsantos   
2022-03-09 16:35   
x:Name inside resource dictionaries is not WPF compliant, you need to use x:Key (0002231)
(0007839)
stonstad   
2022-03-09 17:08   
Confirmed. Thank you.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2231 [NoesisGUI] Unity3D minor always 2022-01-10 00:37 2022-03-09 16:34
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Styles in Grid.Resources not automatically applied
Description: This is a minor thing that I don't even need I just run into it after trying out some styles I found online, and though you might want to look at it.

In windows it seems like if you have this:
<Style x:Key="{x:Type ComboBox}" TargetType="{x:Type ComboBox}">
   <Setter Property="Template">
      <Setter.Value>
         <ControlTemplate TargetType="{x:Type ComboBox}">
            <Grid>
               <Grid.Resources>
                  <Style TargetType="ToggleButton" x:Name="comboToggleStyle"> or <Style TargetType="{x:Type ToggleButton"} x:Name="comboToggleStyle">
               </Grid.Resources>
               ......
               <ToggleButton>
               .......
All Toggle buttons within that Grid in the template will apply the comboToggleStyle instead of the global one in windows but in NoesisGUI I get my normal style.

I tried this on a combo box style in Unity but I assume that this is the case for all usages of <Grid.Resources> with a type style like that in NoesisGUI, but that is only a guess. I'm not even sure if I like that construction but you probably aim to get as close as normal windows behavior as possible in NoesisGUI.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007770)
sfernandez   
2022-02-02 15:50   
What is happening is that our xaml parser is interpreting the x:Name specified in the Style as the Key for the dictionary.
We had to do that to be compatible with how Blend added animations in Silverlight projects in the past.
But Blend no longer supports Silverlight projects so we should probably remove that and be more compatible with WPF projects.
(0007774)
sfernandez   
2022-02-03 12:30   
We decided to follow WPF behavior and x:Name is no longer used as key in Resources.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1377 [NoesisGUI] C++ SDK minor have not tried 2018-12-18 14:18 2022-03-07 20:08
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Default type converters provided by the corresponding type
Description: We need something similar to C# TypeDescriptor to get a default converter for each type:

TypeConverter converter = TypeDescriptor.GetConverter(typeof(float));
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1239 [NoesisGUI] Unity3D block always 2018-02-17 11:29 2022-03-07 19:59
Reporter: charouze Platform: Unity3d  
Assigned To: jsantos OS: Linux  
Priority: high OS Version: unbutu 17.10  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unable to make noesisgui work in unity linux editor
Description: When i try to use noesisgui with the linux editor, i get this error :
DllNotFoundException: Noesis
Noesis.GUI.GetBuildVersion () (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:13)
NoesisVersion.RestartNeeded () (at Assets/NoesisGUI/Plugins/Editor/NoesisVersion.cs:50)
NoesisUpdater.CheckVersion () (at Assets/NoesisGUI/Plugins/Editor/NoesisUpdater.cs:32)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at /home/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:127)

I tried to reimport all but it makes unity to freeze and i'm force to kill it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Capture d’écran de 2018-02-17 11-28-11.png (369,975 bytes) 2018-02-17 11:29
https://www.noesisengine.com/bugs/file_download.php?file_id=888&type=bug
Notes
(0007835)
jsantos   
2022-03-07 19:59   
This is fixed in 3.1


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1247 [NoesisGUI] Unity3D feature always 2018-03-06 18:03 2022-03-07 19:58
Reporter: MrJul Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0rc3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Support for stroke outside shape
Description: When using a shape (here, a Path), in Noesis as well as in WPF the stroke is applied on the "center" of the shape's border.
I'd like to request a Noesis option to have the stroke completely outside or completely inside the shape (ideally a 3-states enum).

For example, the Stroke property you added to TextBlock is already an "outside" one, which is a much better default IMHO.

The primary reason for this is that centered outlines look quite bad while using a semi-transparent brush.
It also reduces the effective background of the shape.

Thanks!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1390 [NoesisGUI] C++ SDK feature N/A 2019-01-17 20:31 2022-03-07 19:52
Reporter: samzanemesis Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: D3D9RenderDevice implementation for NoesisGUI 2.x
Description: Hello

After experience with CEF and other frameworks for UI we have evaluated NoesisGUI for our project and it seems to fit our requirements better. I am implementing NoesisGUI for the Source Engine, unfortunately the engine only supports DX9 outside of Linux and OSX targets making bringing it to the engine harder due to the extra engineering effort needed to make a new RenderDevice class for D3D9.

Jesus mentioned a client donated their D3D9 implementation of RenderDevice for NoesisGUI 2.x, I would be very interested to evaluate it.

I plan to make this implementation public if possible (MIT Licensed) so it can benefit people who want to use Noesis technology with Source :)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisRendererD3D9.zip (22,156 bytes) 2019-01-17 20:35
https://www.noesisengine.com/bugs/file_download.php?file_id=959&type=bug
Notes
(0005398)
jsantos   
2019-01-17 20:35   
Please, find attached a D3D9 renderer implementation that one of our clients used for Ogre. It is not exactly your scenario but I think it may be a good starting point.
(0005403)
samzanemesis   
2019-01-20 20:40   
Hello

I have managed to make a working implementation to the Source Engine from Spivi's work, I would like to know what what is the license they have released that code under to know what to do next, including possibility to release this publicly
(0005404)
jsantos   
2019-01-21 14:35   
The are no restrictions attached to that code so I would upload it to Github under the MIT license. That way, more people can contribute and whenever we have time we can also improve it. We have an internal XamlTester at Noesis that takes image captures from hundreds of XAMLs to compare against image references. That's the first thing I would do.

Could you please do that?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1995 [NoesisGUI] Unity3D minor always 2021-04-30 17:07 2022-03-07 19:38
Reporter: KeldorKatarn Platform:  
Assigned To: jsantos OS:  
Priority: low OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Configurable Enter Play Mode results in missing XAMLs
Description: The new Configurable Enter Play Mode causes Noesis to fail. it reports the XAML Assets missing.
This only happens on the first load of the editor, however some errors have been observed also on later loads
but so far are not clearly to pinpoint.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007202)
ncosentino   
2021-04-30 21:48   
I just wanted to add that I *VERY* regularly experience this and it's quite frustrating. I have XAML files located in many different resource folders, and the only way I temporarily resolve this is manually right clicking and "reimporting" the contents of the directory. But seemingly randomly things revert back after some time and I have to repeat this process.

It makes it nearly unusable when you're spending 30% of your dev time just reimporting XAML.
(0007208)
jsantos   
2021-05-03 12:18   
Are those XAMLs properly grabbed by the currently active scene?
(0007211)
KeldorKatarn   
2021-05-03 14:31   
In my case they were yes.
(0007216)
ncosentino   
2021-05-04 07:52   
In my case, I am programmatically assigning assets to the NoesisView. The result is that it fails to show anything related to WPF, but the rest of my scene still operates (i.e. not a hard crash).

If I right click in the resource folder that has my xaml/assets and select "re-import", then I can visually see the asset get recreated and have an icon that shows a preview. Then pressing play again seems to work. (then randomly at some point in the future it fails again)

Since I have these in different resource folders throughout my Unity project, I essentially have to chase all of these down when it occurs.
(0007217)
jsantos   
2021-05-04 11:00   
(Last edited: 2021-05-04 11:00)
If you are programmatically assigning assets to NoesisView make sure those assets are hard-referenced by Unity, by having them in the chain of dependencies of the scene. For example, adding each one to a public property of a MonoBehaviour.

We have plans to better report these issues, when a XAML not correctly referenced is being loaded.

But that's a different topic regarding this issue.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2057 [NoesisGUI] Unity3D major always 2021-07-07 20:06 2022-03-07 19:37
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Noesis Dependency Logic Breaking Change
Description: XamlDependencies.cs
NoesisGuiExtensions.Dependency.Source

This property checks for the existence of a file using File.Exists(path). In prior versions of Noesis I use the following syntax:
   <noesis:Dependency Source="/Assets/User Interface/Controls/ProductMenuControl.xaml"/>

This throws "[noesis] Dependency not found" errors. An alternative syntax shown below does not work either.
   <noesis:Dependency Source="Assets/User Interface/Controls/ProductMenuControl.xaml"/>

Using a relative path does not eliminate the error, either:
      <noesis:Dependency Source="../Assets/User Interface/Controls/ProductMenuControl.xaml"/>

Is this breaking change an intended behavior? The only workaround at present is to disable the File.Exists check.


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007318)
jsantos   
2021-07-07 22:11   
(Last edited: 2021-07-07 22:13)
This is not the intended behavior but it is part of the things we needed to change in the new version. So maybe we broke things.

The syntax "<noesis:Dependency Source="Assets/User Interface/Controls/ProductMenuControl.xaml"/>" should work, I don't understand why File.Exists is failing. The file does exist, right?

(0007319)
jsantos   
2021-07-07 22:12   
I assume this is 3.1 right? (this was originally marked as a 3.0.12 issue)
(0007322)
sfernandez   
2021-07-08 00:55   
Could you open Unity C# project in Visual Studio, attach to Unity to put a breakpoint in XamlDependencies.cs, and check System.IO.Directory.GetCurrentDirectory() when debugger stops.
It should point to the opened Unity project, so calling File.Exist on paths like "Assets/Path/To/Some/Control.xaml" have to work if the file is there.

I just did some tests with absolute paths (starting with "/Assets/...") and relative paths and both worked fine in my project.
(0007323)
stonstad   
2021-07-08 17:00   
I uncommented the lines in XamlDependencies.cs which performs the check and this time I received errors for three user controls instead of all referenced user controls. I can confirm the three user controls listed were not present and the errors shown are valid. Previously, I received errors for all user controls referenced.

I removed the incorrect dependencies and upon reimport I observed a NullReferenceException from OnInitialized, which appears to be due to invalid state in my code which is referenced during XAML preview. I added if (!Application.isPlaying) return; to OnInitialized and observed no further errors.

The current behavior looks bug free and correct. I am positive I received errors for all XAML dependencies initially, including the example cited above ("Assets/User Interface/Controls/ProductMenuControl.xaml") -- that one remains valid.

This is Noesis 3.0.12. It is MBI, and so they are not using the newest version of Noesis, yet. I'll be upgrading Stellar Conquest to 3.1 soon, and this will be an opportunity for me to retest the initial upgrade/import process again.

Environment.CurrentDirectory is correctly reported as the top-level directory of the Unity project, above .\Assets.

I am OK, because it is working.
(0007834)
jsantos   
2022-03-07 19:37   
Closing this for now. Please, reopen if necessary.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1722 [NoesisGUI] C++ SDK feature always 2020-06-11 11:24 2022-03-07 19:27
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Reduce Color Banding when rendering gradients
Description: The following articles propose using dithering in the pixel shader to reduce banding artifacts:

https://observablehq.com/@mattdesl/perceptually-smooth-multi-color-linear-gradients
http://www.visualextract.com/posts/color-banding/

The first one also comments about using spline interpolation to improve smoothness.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007141)
jsantos   
2021-04-05 17:19   
Shadertoy doing dithering

https://www.shadertoy.com/view/ll2GD3
(0007743)
jsantos   
2022-01-17 20:46   
Oklab space gradients

https://aras-p.info/blog/2021/11/29/Gradients-in-linear-space-arent-better
https://raphlinus.github.io/color/2021/01/18/oklab-critique.html
(0007833)
jsantos   
2022-03-07 19:26   
(Last edited: 2022-03-07 19:27)
somehow related, our app framework could expose a resource dictionary with named "gradients".

https://webgradients.com/

And our color picker, could expose collections like this

https://coolors.co/palettes/trending


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2196 [NoesisGUI] C++ SDK feature have not tried 2021-11-18 14:42 2022-03-04 12:05
Reporter: lowprofile Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Create a callback allows loading UserControl xamls when the Control type is not found while parsing xamls hierarchy
Description: Currently we need to create C++ class for all UserControls that we use in the hierarchy. And usually that C++ class only do loading the corresponding UserControl xaml.
Could we have a solution that there is a callback that developer can handle, that is called when there is a control type found undefined during parsing xamls?

Details are described in this forum thread.
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2477&p=13589#p13589
Tags: C#, C++, xaml
Steps To Reproduce:
Additional Information:
Attached Files: Factory.patch (2,230 bytes) 2021-12-06 17:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1557&type=bug
noesis.diff.txt (1,908 bytes) 2022-01-17 18:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1577&type=bug
Notes
(0007591)
jsantos   
2021-11-19 11:04   
Thanks for the report, you have access to the source code right? I mean, I can send you a patch for testing things.
(0007592)
lowprofile   
2021-11-19 12:27   
Yes, we have the source code. We could test if you send a patch.
(0007656)
jsantos   
2021-12-06 17:30   
(Last edited: 2022-01-05 15:52)
Something as simple as the attached patch should work.

Right now, there is a bit of inefficiency because for the implementation of Factory::IsComponentRegistered we need to also invoke the custom callback just for checking the returned object and then just discard. I think we could get rid of IsComponentRegistered. But let's experiment with this first.

(0007724)
lowprofile   
2022-01-11 14:27   
(Last edited: 2022-01-11 14:28)
After applying the patch, I noticed that the callback is not called. I investigated the source code and saw that there is an early return if Reflection::GetType(typeId) returns nullptr in XmlContext.cpp line 823. I fixed this part by adding if IsComponentRegistered. Then the callback was called properly. I was using Noesis::GUI::LoadXaml in the callback. But it wasn't showing the loaded xaml in the hierarchy. Would be great if you could test it.

I think we should have 2 callbacks. One is for to be used in the IsComponentRegistered that checks if view xaml could be loaded (without loading it). And the second callback from Factory::CreateComponent to load the xaml.

(0007731)
lowprofile   
2022-01-13 13:45   
I have changed the source code in XamlContext.cpp and It works now. I will send the solution to you. You might want to check it if it has any side effects.
(0007732)
jsantos   
2022-01-13 17:23   
(Last edited: 2022-01-13 17:24)
We want to remove all kind of "IsComponentRegistered" or "IsTypeRegistered" API to simplify everything a bit but I still didn't have time to think about it.

Yes, please, if you could attach a patch with the changes in all your files, that will definitely help toward having this feature officially supported.

Thank you!

(0007741)
lowprofile   
2022-01-17 18:16   
(Last edited: 2022-01-21 14:22)
I made very minimal changes and it works.
I shouldn't put Assert for typeId. Because type will be always come from the loaded xaml root element. Which is mostly UserControl.
(0007759)
jsantos   
2022-01-31 16:07   
Thanks for the patch, I will review it as soon as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2235 [NoesisGUI] Unity3D minor always 2022-01-10 19:24 2022-03-03 17:23
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Create Noesis Inspector Flag for Automatic DPI Scaling
Description: Flag determines whether code at NoesisView 1349, _uiView.SetScale... executes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2220 [NoesisGUI] Unity3D feature always 2021-12-27 19:28 2022-03-03 15:11
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: [Unity] Update Emscripten to 2.0.19
Description: https://docs.unity.cn/2021.2/Documentation/Manual/UpgradeGuide20212.html

In Unity 2021.2, the underlying Emscripten compiler used by the WebGL platform was updated to version 2.0.19. Previous versions of Unity were using 1.38.11.

This is a breaking change, changing this will make our library incompatible with previous versions of Unity (or we can provide two separate libraries).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007824)
EnergyNick   
2022-02-22 09:03   
Hi!
Do you have any updates when Noesis will update the Emscripten version?
(0007826)
jsantos   
2022-02-23 17:02   
Problem we have is that if we update Emscripten version we are going to break Unity versions previous to 2021.2. We are trying to find alternative ways (providing both versions of Noesis, inside the package or in a private folder).

For now the only workaround is using a version of Noesis before Unity 2021.2


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2246 [NoesisGUI] Unity3D block always 2022-01-23 12:44 2022-03-03 15:11
Reporter: EnergyNick Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: WebGL
Summary: Unity 2021.2.8f build issue
Description: Can't build to Unity 2021.2.8f with Noesis 3.1 and 3.1.2 for WebGL.

Exception on build:

Building Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js failed with output:
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(Noesis_wrap.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(Extend_wrap.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(UnityBindings.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(ExtendBindings.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(Events_wrap.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(CoreBindings.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(SWIGDefinitions.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(RenderBindings.o): machine type must be wasm32 or wasm64
wasm-ld: error: C:\\Users\\nsika\\AppData\\Local\\Temp\\tmptwgboul7Noesis.a(UnityDeviceGL.o): machine type must be wasm32 or wasm64
emcc2: error: '"C:/Program Files/Unity/Hub/Editor/2021.2.8f1/Editor/Data/PlaybackEngines/WebGLSupport/BuildTools/Emscripten/llvm\wasm-ld.exe" @C:\Users\nsika\AppData\Local\Temp\emscripten_e3ckgxre.rsp' failed (1)
UnityEditor.GenericMenu:CatchMenu (object,string[],int)
Tags: Unity, Unity URP
Steps To Reproduce:
Additional Information:
Attached Files: settings2.png (14,038 bytes) 2022-01-23 12:44
https://www.noesisengine.com/bugs/file_download.php?file_id=1579&type=bug
settings1.png (39,809 bytes) 2022-01-23 12:44
https://www.noesisengine.com/bugs/file_download.php?file_id=1580&type=bug
Notes
(0007755)
jsantos   
2022-01-24 12:05   
We are going to update or plugin to Emscripten to 2.0.19 to be compatible with Unity 2021.2+

For now, the workaround is using Unity 2021.1 or earlier.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2206 [NoesisGUI] C++ SDK feature N/A 2021-12-03 10:10 2022-03-02 13:15
Reporter: pdx_lysannschlegel Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Expose StringFormat and the global CultureInfo object
Description: From this forum thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2468

When making a markup extension/converter I realized that I cannot easily provide a property to the user that behaves like StringFormat in a binding, as in, actually implementing the formatting itself.
Since there is an implementation for it in the C++ SDK to support it for Bindings, it would be nice to have it available in the SDK, so my usage of it behaves the same as in the rest of Noesis, and in XAML we can just use the familiar syntax without having to reinvent the wheel on the C++ side.

Not sure how the CultureInfo would be best passed in. Converteres seem to be lacking it right now. Even outside of converters it would be nice to get access to the global CultureInfo we can set via Noesis::GUI::SetCulture, but this could worked around if necessary.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007828)
jsantos   
2022-03-02 13:15   
Solved in r11236 and r11237

- StringFormat.h is now a public header
- Added Noesis::GUI::GetCulture()


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1961 [NoesisGUI] Unreal major always 2021-04-09 05:03 2022-03-02 12:32
Reporter: Tadinu Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Linux
Summary: Font not found in Linux UE4
Description: Hi Noesis,

Regarding these warnings as running in Linux UE 4.26.1:
[2021.03.31-10.26.54:161][ 0]LogNoesis: Warning: Theme/NoesisTheme.Fonts.xaml(6): Font not found 'Fonts/#PT Root UI'
[2021.03.31-10.26.57:020][ 0]LogNoesis: Warning: UserControls/MainWindow.xaml(1): Font not found './#Aero Matics'
https://github.com/Noesis/Tutorials/blob/master/Samples/UserControl/UE4/Assets/UserControl/MainWindow.xaml#L8
And this function keeps returning False:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisResourceProvider.cpp#L111

But somehow, this project here could still display the fonts fine.
https://github.com/Noesis/Tutorials/tree/master/Samples/UserControl/UE4

However, on my custom project with I put all of fonts under a Plugin's Content folder (instead of directly under Project/Content folder), my fonts could not be found.
Specifically, ​these are what I found:
* It looks like the font folder path registration here:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisResourceProvider.cpp#L99
is required to be consistent with font fallback family registration here:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisSettings.cpp#L157

* For some reason, the font fallback registration:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisSettings.cpp#L186
seems to automatically chop off the leading slash character if being present in the family name path.
=> This seems to be not in line with the font path expansion in XAML file, since when I tried using "../" in the font path specified here:
https://github.com/Noesis/Tutorials/blob/master/Samples/UserControl/UE4/Assets/UserControl/MainWindow.xaml#L8
, it resolves to an absolute path with the leading slash character (if it reaches the Content folder in a Plugin) thus cause a "Font not found" warning.

I then have to do some post processing to the path check in FamilyExist() function that also chops off the leading slash if present, just to adapt to the above mentioned behavior.
I'm not sure about the internal implementation, but to make it simple & consistent I would suggest:
* To allow both absolute path (if explicit clarity-favored) and relative font family path (if portability-favored) to be specified in XAML. It will then be resolved to the absolute path anyway I suppose.
* Always the absolute UE asset package path to be added into Noesis::GUI::SetFontFallbacks() and Noesis::CachedFontProvider::RegisterFont(), to make it match the resolved absolute path from XAML.

Thanks.
Tags: C++, UE4, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1951 [NoesisGUI] Unreal major always 2021-03-26 15:29 2022-03-02 12:31
Reporter: Tadinu Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Linux
Summary: XAML assets not recognized as placed in Plugin's Content
Description: In various places of NoesisGUI plugin sources, `/Game/` prefix is hardcoded, meaning the asset is presumed to reside under the Content folder of Project, however it does not work for ones in Plugin's Contents, notably these ones:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisEditor/Private/NoesisXamlFactory.cpp#L341
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisResourceProvider.cpp#L34
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisResourceProvider.cpp#L63
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisResourceProvider.cpp#L79

(1) I would recommend the argument being passed into `LoadXAML()` function be just the xaml asset name, and by using AssetRegistry, a `FAssetData` could be fetched based on that name as the key. Then that `FAssetData` could be converted to `UObject*`, in our case as `UNoesisXaml*` as noted here:
https://docs.unrealengine.com/en-US/ProgrammingAndScripting/ProgrammingWithCPP/Assets/Registry/#convertingfassetdatatouobject*

That operation actually also invokes `LoadObject()` under the hood.
https://github.com/EpicGames/UnrealEngine/blob/master/Engine/Source/Runtime/CoreUObject/Public/AssetRegistry/AssetData.h#L248

That way, we would not have to preprocess the path with `/Game/`, regardless of where the asset resides, either in Project's Content or Plugin's Content folder.
Besides, it would be great if you could make the loading asynchronous as recommended here in case we have numerous xaml asset widgets:
https://docs.unrealengine.com/en-US/ProgrammingAndScripting/ProgrammingWithCPP/Assets/AsyncLoading/index.html

(2) Otherwise, it looks like in here:
https://github.com/Noesis/UE4Plugin/blob/master/Source/NoesisRuntime/Private/NoesisXaml.cpp#L13
We could pass the UE asset path as it is directly like these:
Noesis::GUI::LoadXaml(TCHARToNsString(*(GetPackage()->GetPathName())).Str());
Noesis::GUI::LoadComponent(Component, TCHARToNsString(*(GetPackage()->GetPathName())).Str());

If so, that path could be forwarded to FNoesisXamlProvider::LoadXaml() and fed well to `LoadObject`, without having to use AssetRegistry I guess.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2214 [NoesisGUI] C++ SDK feature N/A 2021-12-10 14:39 2022-03-01 19:07
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Video support on Switch
Description: I would like to have video support on PS4 and Switch. Could you please figure out when we can have this feature on those platform?
Thanks,

Ryan
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2250 [NoesisGUI] C++ SDK minor always 2022-01-26 17:39 2022-03-01 19:07
Reporter: ext.mnawrot Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Switch
Summary: Nintendo Switch: NoesisApp Window doesn't utilize available screen resolution
Description: Nintendo Switch integrated screen has 720p however when docked and plugged to TV the output resolution is 1080p. Currently the NXDisplay and NVNRenderContext use hardcoded 720p which makes Noesis UI to appear blurry on TVs.

We bypassed this limitation by extending the original implementation of NXDisplay and NVNRenderContext with the following code:

nn::oe::Initialize();
nn::oe::GetDefaultDisplayResolution(&clientWidth, &clientHeight);
Tags:
Steps To Reproduce: Use SDev Cradle / dock and 1080p TV / Monitor
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2295 [NoesisGUI] C++ SDK feature have not tried 2022-02-28 15:46 2022-02-28 15:47
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Add NoesisTheme to App.xaml in all our samples
Description: Now adding controls that are not styled in the sample will result in the undesired magenta templates.
We should add the theme in the App.xaml to avoid confusion to users modifying existing samples.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2293 [NoesisGUI] C++ SDK major always 2022-02-24 20:38 2022-02-25 15:39
Reporter: Logris Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Windows
Summary: SizeToContent crashes
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2556&sid=764aeb7ca119bbb6169599d08467c27e
Tags: C++
Steps To Reproduce: set Window flag
SizeToContent="Height"
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1505 [NoesisGUI] C++ SDK feature have not tried 2019-06-21 17:12 2022-02-23 22:48
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Can't get access to application resource dictionary
Description: Add a GetApplicationResources() function to IntegrationAPI to access the global application dictionary.

In C# (and Unity) the API should be the same as in WPF:
Application.Current.Resources = resources;
...
ResourceDictionary resources = Application.Current.Resources;
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005762)
sfernandez   
2019-06-25 11:43   
(Last edited: 2019-06-25 11:44)
We should make Application.Resources a modifiable dictionary as it is in WPF (so new resources can be added), currently it is read-only in Noesis (improve that error message also).



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2290 [NoesisGUI] Unity3D minor always 2022-02-21 17:12 2022-02-23 12:54
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Noesis Package Should Specify Dependency on Unity.UI
Description: Class NoesisView has a dependency on UnityEngine.EventSystems. This class is contained within Unity.UI, The Noesis package does not specify a dependency for Unity.UI.
Tags:
Steps To Reproduce: Remove Unity.UI from a standard 3D project with Noesis package installed. A compilation error in NoesisView.cs occurs.
Additional Information:
Attached Files:
Notes
(0007823)
jsantos   
2022-02-21 17:23   
Thanks for reporting this!
(0007825)
sfernandez   
2022-02-23 12:54   
Added compilation macros to detect if user's project includes Unity.UI package to enable that code path.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2291 [NoesisGUI] Documentation text always 2022-02-22 22:45 2022-02-23 10:31
Reporter: Armitage1982 Platform:  
Assigned To: sfernandez OS:  
Priority: none OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: A suffixe is missing from the Unity Tutorial
Description: Head to :
https://www.noesisengine.com/docs/Gui.Core.Unity3DTutorial.html#shader-assets

The second bullet point read :
The node <local: Noise scale="2"/> generates a dependency to the asset 'Noise.noesisbrush'

I guess it should be:
<local:NoiseBrush scale="2"/>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2286 [NoesisGUI] Unity3D block always 2022-02-16 20:06 2022-02-21 16:09
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: GamePad Analog Thumbstick Cannot Navigate Dense UI
Description: 1. See the enclosed sample project with 4x4 grid of buttons. (GamePadBehavior.zip)
2. Navigating from button 1 to button N around the perimeter using a gamepad is easy when using the D-Pad (DPad Works.mp4).
3. Navigating from button 1 to button N around the perimeter is impossible using the left analog thumbstick from (Analog Thumbstick Broken.mp4).
4. Open the Windows 11 settings menu and navigate UI via the same left analog thumbstick. It works as expected. (Windows 11 Works.mp4).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GamePadBehavior.zip (53,548 bytes) 2022-02-16 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1592&type=bug
DPad Works.mp4 (238,170 bytes) 2022-02-16 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1593&type=bug
Windows 11 Works.mp4 (4,563,508 bytes) 2022-02-16 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1594&type=bug
Analog Thumbstick Broken.mp4 (263,814 bytes) 2022-02-16 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1595&type=bug
Notes
(0007813)
sfernandez   
2022-02-16 21:34   
I was able to reproduce this issue with the following xaml:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="Black">
  <UniformGrid Width="300" Height="300" Columns="4" Rows="4" KeyboardNavigation.DirectionalNavigation="Contained">
    <Button Content="1" Margin="5"/>
    <Button Content="2" Margin="5"/>
    <Button Content="3" Margin="5"/>
    <Button Content="4" Margin="5"/>
    <Button Content="5" Margin="5"/>
    <Button Content="6" Margin="5"/>
    <Button Content="7" Margin="5"/>
    <Button Content="8" Margin="5"/>
    <Button Content="9" Margin="5"/>
    <Button Content="10" Margin="5"/>
    <Button Content="11" Margin="5"/>
    <Button Content="12" Margin="5"/>
    <Button Content="13" Margin="5"/>
    <Button Content="14" Margin="5"/>
    <Button Content="15" Margin="5"/>
    <Button Content="16" Margin="5"/>
  </UniformGrid>
</Grid>

The problem is that gamepad input actions configuration is missing the deadzones settings (Processors > Axis Deadzone), so it is not filtering out minimal movements of the stick.
(0007815)
stonstad   
2022-02-16 23:09   
Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2283 [NoesisGUI] C++ SDK crash always 2022-02-16 04:48 2022-02-21 13:44
Reporter: ralspaugh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Older Intel HD Graphics Crashing on Init/Shader Compile
Description: Ivy Bridge Intel HD Graphics Crashing on Init/Shader Compile

We are seeing crashes with certain Intel HD GPU's on Windows. So far, we have encountered crashes on
- Intel HD Graphics 4000
- Intel HD Graphics 2500
- Intel HD Graphics 505
- Intel HD Graphics 400

Our theory is only certain generations of these cards are impacted, ie: Ivy Bridge.

Stack Trace
NoesisApp::GLRenderDevice::ActivateProgram (GLRenderDevice.cpp:1952)
NoesisApp::GLRenderDevice::DrawBatch (GLRenderDevice.cpp:345)
Noesis::VGLContext::DrawGPUBatches (vglcontext.cpp:3484)
Noesis::VGLContext::Flush (vglcontext.cpp:1472)
Noesis::RenderTreeHelper::Render (rendertreehelper.cpp:125)
Noesis::RenderTree::Render (rendertree.cpp:294)
Noesis::Renderer::Render (renderer.cpp:221)
Noesis::Renderer::Render (renderer.cpp:187)
NoesisLib::NoesisGUI::OnscreenRender (NoesisGUI.cpp:178)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007811)
jsantos   
2022-02-16 21:08   
(Last edited: 2022-02-16 21:08)
Do you have access to this HW? Any chance to have a debug build with log running?

We need GLSL 140 (OpenGL 3.1) since Noesis 3.1. Could it be that this are very old drivers?
(0007814)
ralspaugh   
2022-02-16 21:34   
We do not have direct access to the hardware unfortunately - this is coming from our crash reporting. We are working to roll out additional logging for the error, and expect to have that data available in the next week or so. It does seem possible these devices have very old drivers.
(0007819)
jsantos   
2022-02-17 11:44   
(Last edited: 2022-02-21 13:44)
As in 0002285, GLRenderDevice.cpp seems to be different from the official 3.0.11

By the way, I assume you are using GL in all your platforms on purpose, and I assume you don't want to use D3D on windows, right? In our experience, D3D drivers are much more robust on Windows than GL ones.
(0007821)
ralspaugh   
2022-02-17 23:45   
Yeah, we are using GL currently. This is changing but we will be using OpenGL for a while.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2285 [NoesisGUI] C++ SDK crash sometimes 2022-02-16 19:15 2022-02-21 13:43
Reporter: ralspaugh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Crash - Noesis::VGLContext::PackPath
Description: Crashes on certain Intel HD GPU's when sending vertex data

So far, we have seen this crash on the following cards
- Intel(R) HD Graphics 4000
- Intel(R) HD Graphics 2500

Stack trace
EXCEPTION_ACCESS_VIOLATION_WRITE: Fatal Error: EXCEPTION_ACCESS_VIOLATION_WRITE
  File "vglcontext.cpp", line 2284, in Noesis::VGLContext::PackPath
  File "vglcontext.cpp", line 3314, in Noesis::VGLContext::UploadGPUGeometry
  File "vglcontext.cpp", line 1463, in Noesis::VGLContext::Flush
  File "rendertreehelper.cpp", line 706, in Noesis::RenderTreeHelper::RenderOffscreenNodes
  File "rendertree.cpp", line 280, in Noesis::RenderTree::RenderOffscreen

Possibly related, we are also seeing the following crash w/ stack trace
EXCEPTION_ACCESS_VIOLATION_READ: Fatal Error: EXCEPTION_ACCESS_VIOLATION_READ
  File "GLRenderDevice.cpp", line 651, in NoesisApp::GLRenderDevice::MapBuffer
  File "vglcontext.cpp", line 3224, in Noesis::VGLContext::UploadGPUGeometry
  File "vglcontext.cpp", line 1463, in Noesis::VGLContext::Flush
  File "vglcontext.cpp", line 3197, in Noesis::VGLContext::FlushBatchesIfNeeded
  File "vglcontext.cpp", line 2900, in Noesis::VGLContext::BatchTriangles
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007812)
jsantos   
2022-02-16 21:09   
Are these machines the same having issues in 0002283 ?

Is it possible to execute Noesis in debug?
(0007816)
ralspaugh   
2022-02-16 23:14   
There is some overlap of devices between the two issues.

Here's a random sampling of hardware details from devices experiencing both Noesis::VGLContext::PackPath and GLRenderDevice::ActivateProgram crashes.
Device 1: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz; GL 3.1.0 - Build 10.18.10.4358; Intel(R) HD Graphics 2500
Device 2: Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz; GL 3.1.0 - Build 10.18.10.4358; Intel(R) HD Graphics 4000
Device 3: Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz; GL 3.1.0 - Build 10.18.10.4252; Intel(R) HD Graphics 4000
(0007818)
jsantos   
2022-02-17 11:36   
(Last edited: 2022-02-17 11:36)
Is the indicated product version (3.0.11) correct?

Because, I see discrepancies between line numbers and functions in GLRenderDevice.cpp or maybe you have local changes to that file?

But it seems driver is returning a bad pointer when locking the the vertex or index buffer
(0007820)
ralspaugh   
2022-02-17 23:39   
There were some small changes made to the source, but agree, it does appear to be a bad return value from OpenGL mapping the buffer. Is there a fallback value that can be used when we hit this scenario?
(0007822)
jsantos   
2022-02-21 13:42   
(Last edited: 2022-02-21 13:43)
Problem is, the driver is returning a trash pointer, so probably can be detected with IsBadWritePointer and try to disable the extension, but I need to understand what extension is being active on these cards.

If possible I would need a minidump with your .exe + noesis.dll (if you are not using static library) and your pdbs + your GLRenderDevice.cpp

We have a Intel HD4000 here, but it not reproducing the issue. I will try with different drivers to see if I am lucky


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2284 [NoesisGUI] Inspector minor always 2022-02-16 18:24 2022-02-18 16:32
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Inspector not showing selected View's Xaml path
Description: Xaml path is not displayed on the View combo box (see screen capture below). Probably related to the addition of AdornerDecorator in 3.1.2?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisInspector-NoViewXaml.png (33,983 bytes) 2022-02-16 18:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1591&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2255 [NoesisGUI] C++ SDK trivial always 2022-02-01 03:39 2022-02-15 15:10
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Stroke bug - bad path generation
Description: Hi guys, we're seeing bad strokes caused by our fonts. It seems that the path it rasterises does not match the font glyph shape. I've attached a ZIP which you can use to see our font. Pay attention to the "A", you can see that the stroke in the centre looks odd.

Some glyphs are worse than others. We can play about with the stroke thickness to improve things somewhat, but I'm wondering if something is going wrong in the stroke generation code where it's generating bad paths.

I've also uploaded an image of this in case you didn't want to build the sample.

Cheers,

-Steven
Tags:
Steps To Reproduce: 1. Extract the ZIP into the Native Noesis SDK folder.
2. Generate the config I attached
3. Build and run the "FontStrokeBug" sample I added
4. Notice the artifacts in the strokes around the font glyphs. The fonts are pixel perfect but the strokes have artifacts in them where they "bleed" into other strokes and don't match the font path exactly
Additional Information:
Attached Files: StrokeBug.zip (59,217 bytes) 2022-02-01 03:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1581&type=bug
BadStroke.png (214,540 bytes) 2022-02-01 03:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1582&type=bug
Notes
(0007762)
jsantos   
2022-02-01 10:57   
Hi Steve,

This seems to be SDF imprecisions. I will analyze it carefully, but probably we will need to increase SDF resolution.

Is this happening on trunk or in the Arabic branch?
(0007763)
steveh   
2022-02-01 11:03   
Hey Jesus, yes, this is in the Arabic branch, but I'm pretty sure this issue was present in the build prior to integrating the Arabic branch as well.
(0007764)
jsantos   
2022-02-01 11:06   
Yes, that makes sense.

I am finishing an important crash you have in the Arabic branch (VGLTextLayout::HitTestTextPosition) and will jump to this ASAP.
(0007765)
steveh   
2022-02-01 11:09   
Awesome, much appreciated. And yes, those HitTestTextPosition bugs take precedence over this issue for us, this is just a slight graphical issue that's fairly low priority, the other issues are causing glyphs to be rendered in the incorrect location so we're getting overlapping prompts which will cause compliancy failures.

Thank you for your help Jesús! Much appreciated.
(0007809)
jsantos   
2022-02-15 15:09   
(Last edited: 2022-02-15 15:10)
Hi Steve, I see similar artifacts even without stroking. This is a limitation of the current technique we are using for rendering text, each font is internally rasterized to a distance field of size 54. If you double this size, you will see everything improves:

Index: VGLContext.cpp
===================================================================
--- VGLContext.cpp	(revision 11207)
+++ VGLContext.cpp	(working copy)
@@ -3709,7 +3709,7 @@
 #if 1
     // Render glyph SDF at a fixed resolution
     NS_UNUSED(scale);
-    float renderSize = 54.0f;
+    float renderSize = 54.0f * 2;
 #else
     // Render glyph SDF at the next power of two needed resolution
     float renderSize = (float)Clip(NextPow2(uint32_t(p.size * scale)), 1U, 54U);

But doing this has tricky implications. Right now, by default our glyph cache uses an internal texture of 1024 x 1024 with tiles of 512 x 512 (tiles are entirely discarded when there is not enough space in the atlas using a LRU algorithm).

The resolution of 1024 x 1024 can be changed by clients (not sure if your game is doing that), but the 512 x 512 is hardcoded in a macro (TILE_SIZE). The patch provided above should probably also increase TILE_SIZE. But this also depends on how heavy is your game about text.

Not sure yet what's the best way to expose this to client code. Tile size can be exposed the same as atlas size, and probably we can expose a size threshold for glyphs, if the size of the glyph (in your case is 200) is greater than that we can increase the rasterized distance field.

I need to think more about this, but feedback is welcome.

PS: thanks for the amazing repro-case, as always, you always make things so easy for us :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2265 [NoesisGUI] Unreal tweak always 2022-02-08 16:38 2022-02-15 13:25
Reporter: LightwordJoel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Windows
Summary: Importer unable to create references to assets
Description: Copy-paste of my mail to Jesús:

I noticed a bug in the UE4 plugin, precisely in the importer routines.

While evaluating Noesis and did some packaging tests I noticed that the importer tries to create asset references in the NoesisXamlFactory.cpp. However, there are several issues that sit in the dlls so I can't give you a full patch to fix the issue, but I try to be as precise and helpful as possible explaining the bug(s).

The code I'm talking about is the UNoesisXamlFactory::FactoryCreateBinary function (in my code, NoesisXamlFactory.cpp:256). However, the issue can be narrowed down to the DependencyCallback lambda (:333).

The lambda (which is wrapped into another short lambda DependencyCallbackAdaptor, line 487) expects three parameters: UserData (which is unused), the URI to the resource, and the XamlDependencyType.

First of all (because it's short and easy to explain), if the dependency is a custom shader, the XamlDependencyType is mentioned as another xaml document. This triggers the IsUserControl condition (:385), however this is not relevant in the further evaluation (the .xaml suffix is dropped to find the asset and everything works as expected).

The real issue is the asset path:

It is possible to access assets in subdirectories using a proper namespace declaration in the xaml, for example: xmlns:k="clr-namespace:MySource.Shaders". However, the path I get in the lambda (from Noesis::GUI::GetXamlDependencies) is always in the same directory as the xaml itself. This happens because I only get the last path, e.g. if I use the brush <k:MyShader/> I only get "MyShader" as the URI, not the full relative URI "Shaders/MyShader" or an absolute path "/MySource/Shaders/MyShader".

This incomplete URI is then appended to the path of the xaml package, which results in a bad path and the asset registry can't find the asset, resulting in missing references between Unreal assets if the referenced material is in another directory than the imported xaml.

However, it should be mentioned that loading the referenced assets at runtime works perfectly fine, the materials show up in the UI.

Also since I'm new to Noesis it is possible I forgot some detail somewhere, and I hope my explanation can help you further polish your product. Let me know if you need more details and thank you in advance.
Tags: C++, UE4
Steps To Reproduce: Unreal material in Content/MySource/Shaders/MyMaterial

In xaml:

xmlns:k="clr-namespace:MySource.Shaders"

<noesis:Brush.Shader>
<k:MyMaterial/>
</noesis:Brush.Shader>

Then, (re)import the xaml. The material will show up at runtime, however there is no asset reference in the Unreal sense. Therefore the referenced material will not automatically show up in a packaged build via references, developers have to assign referenced assets in the packaging system, eg using asset labels or by manually packaging the whole directory.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2263 [NoesisGUI] C++ SDK crash random 2022-02-08 03:43 2022-02-14 19:56
Reporter: nikobarli Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Windows
Summary: Crash when running Debug build (HashMap entry is not correctly updated inside AddLoadedXaml)
Description: We experienced crashes when running Debug build of Noesis.

The callstack is as follows:

CallStack[27280]: 7FF9A9538EB6h : Noesis.dll (7FF9A8E80000h) : Noesis::BaseVector<Noesis::BaseComponent *>::Erase + 96h : Vector.inl (561) + 30h
CallStack[27280]: 7FF9A952E269h : Noesis.dll (7FF9A8E80000h) : OnDependencyObjectDestroyed + E9h : UI.cpp (763) + 0h
CallStack[27280]: 7FF9A953AC6Ch : Noesis.dll (7FF9A8E80000h) : Noesis::Delegate<void __cdecl(Noesis::DependencyObject *)>::FreeFuncStub<void (__cdecl*)(Noesis::DependencyObject *)>::Invoke + 3Ch : Delegate.inl (397) + 0h
CallStack[27280]: 7FF9A8F5D973h : Noesis.dll (7FF9A8E80000h) : Noesis::Delegate<void __cdecl(Noesis::DependencyObject *)>::operator() + 53h : Delegate.inl (173) + 0h
CallStack[27280]: 7FF9A8F85DAAh : Noesis.dll (7FF9A8E80000h) : Noesis::Delegate<void __cdecl(Noesis::DependencyObject *)>::MultiDelegate::Invoke + CAh : Delegate.inl (573) + 0h
CallStack[27280]: 7FF9A8F5D973h : Noesis.dll (7FF9A8E80000h) : Noesis::Delegate<void __cdecl(Noesis::DependencyObject *)>::operator() + 53h : Delegate.inl (173) + 0h
CallStack[27280]: 7FF9A8F519DCh : Noesis.dll (7FF9A8E80000h) : Noesis::DependencyObject::OnDestroy + 4Ch : DependencyObject.cpp (557) + 0h
CallStack[27280]: 7FF9A91BC7DEh : Noesis.dll (7FF9A8E80000h) : Noesis::FrameworkElement::OnDestroy + EEh : FrameworkElement.cpp (1632) + 0h
CallStack[27280]: 7FF9A8F22941h : Noesis.dll (7FF9A8E80000h) : Noesis::BaseRefCounted::Release + 91h : BaseRefCounted.inl (41) + 10h
CallStack[27280]: 7FF9A8F7804Bh : Noesis.dll (7FF9A8E80000h) : Noesis::FrameworkElement::Release + 3Bh : FrameworkElement.h (542) + 11h

Debugging the issue, we found the root problem is inside AddLoadedXaml. The problematic sequence is as follows:

- "objects" reference is initialized as gLoadedXamls[uri.Str()];

- "OnDependencyObjectDestroyed(object);" is called
-> internally it may erase entry inside gLoadedXamls, and the internal implementation of gLoadedXamls (HashMap) may reorganize its physical storage

- "objects.PushBack(component);" is called
-> if gLoadedXamls is reorganized in the previous step, the "objects" reference we retrieved before is no longer valid, thus storing the component into it is not correctly updated gLoadedXamls.


static void AddLoadedXaml(BaseComponent* component, const Uri& uri)
{
    DependencyObject* object = DynamicCast<DependencyObject*>(component);
    ResourceDictionary* dictionary = DynamicCast<ResourceDictionary*>(component);

    if (object || dictionary)
    {
        Vector<BaseComponent*>& objects = gLoadedXamls[uri.Str()];
        if (objects.Find(component) == objects.End())
        {
            if (object != nullptr)
            {
                OnDependencyObjectDestroyed(object);
                object->Destroyed() += &OnDependencyObjectDestroyed;
                objects.PushBack(component);
                gComponentXamls[component] = uri.Str();
            }
            else if (dictionary != nullptr)
            {
                OnResourceDictionaryDestroyed(dictionary);
                dictionary->Destroyed() += &OnResourceDictionaryDestroyed;
                objects.PushBack(component);
                gComponentXamls[component] = uri.Str();
            }
        }
    }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2223 [NoesisGUI] Unity3D tweak always 2021-12-31 04:42 2022-02-14 17:48
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: 'Binding Log Level' set to Warning will instead create Unity errors.
Description: I have Binding Log Level set to Warning, but when a binding fails it instead creates a unity error.

https://i.imgur.com/MWtvjVk.png
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007702)
sfernandez   
2022-01-03 10:41   
Hi,

If you want to hide binding errors you have to set the Binding log level to 'Off'.
Selecting 'Warning' level will show warning and error messages (as it does Visual Studio by default).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2124 [NoesisGUI] C# SDK major always 2021-09-20 19:12 2022-02-14 17:04
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: UIElement is missing TranslatePoint method
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.uielement.translatepoint?view=net-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2030 [NoesisGUI] C# SDK minor always 2021-05-25 11:39 2022-02-14 17:04
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: WPF Inconsistency: UIElement.TranslatePoint is missing
Description: UIElement.TranslatePoint is missing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2118 [NoesisGUI] C# SDK feature always 2021-09-17 16:37 2022-02-14 17:01
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: WPF Inconsistency: IDataObject is missing GetDataPresent() method
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.idataobject.getdatapresent?view=net-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2119 [NoesisGUI] C# SDK feature always 2021-09-17 16:38 2022-02-14 17:01
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: WPF Inconsistency: DataObject should be public and have a public constructor
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.dataobject?view=net-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2280 [NoesisGUI] C# SDK minor always 2022-02-14 10:26 2022-02-14 10:57
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Invoking animation on VisibilityProperty from code behind throws an exception
Description: Changing targets of an animation in code behind works properly for DoubleAnimations, but throws an System.InvalidOperationException when I do it on ObjectAnimationUsingKeyFrames on Visibility property.
Details and code samples are in this thread:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2549
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2277 [NoesisGUI] Unity3D block always 2022-02-11 19:39 2022-02-11 20:36
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.3  
Platform: Any
Summary: GamePad Input Not Responding
Description: This feels like user error but I wanted to confirm I am not missing anything. In 3.1.x I have Active Input Handling set to "Both" and Enable GamePad enabled. Should my gamepad be able to navigate Buttons using the left thumb stick? This worked previously in 3.0.x, and I don't know if this is an upgrade issue. The GamePad Actions option is set to "None". If GamePad Actions is none, this means default mappings are used?

Thanks,
Shaun
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007802)
jsantos   
2022-02-11 20:36   
It is an upgrade issue. GamePad Actions option cannot be set to None. Just reset the component to get default values or copy the asset that we are assigning by default to a new view.

If you need a different mapping you can create your own version but by default it should work fine.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2269 [NoesisGUI] Unity3D crash always 2022-02-10 19:53 2022-02-11 20:27
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Noesis_View_Update Crashes Editor (Update: It's a Unity Bug)
Description: =================================================================
    Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
      at <unknown> <0xffffffff>
      at Noesis.View:Noesis_View_Update <0x0010c>
      at Noesis.View:Update <0x00192>
      at NoesisView:ExternalUpdateInternal <0x00492>
      at NoesisView:LateUpdate <0x000da>
      at System.Object:runtime_invoke_void__this__ <0x00187>
=================================================================
Tags:
Steps To Reproduce: TBD. It crashes Unity before the editor is able to produce a stack dump. All I have at this point is the editor log file attached to this ticket. It is reproducible based on a specific screen appearing. I am investigating the XAML and code-behind to see the cause. It is new to 3.1.2 and does not exist in 3.0.4.
Additional Information:
Attached Files: Editor-prev.log (40,761 bytes) 2022-02-10 19:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1588&type=bug
Notes
(0007799)
stonstad   
2022-02-10 21:36   
OK, although it reports as originating from View_Update this is a Unity bug. When I changed the signature of two methods Unity stopped crashing on instantiation of the Noesis object.

public void SetText(params string[] textCollection)
public void SetText(IList<string> textCollection)

The issue is resolved on my end. I likely picked this up in Unity 2021.2.x.

This is a candidate for closure. Thanks!
(0007801)
sfernandez   
2022-02-11 20:27   
Thanks for the update, closing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2278 [NoesisGUI] C++ SDK minor always 2022-02-11 19:44 2022-02-11 19:45
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: PasswordBox inside a ListBoxItem loses focus
Description: When placing a PasswordBox inside a ListBoxItem, if you click it the focus will be lost on mouse button up.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2268 [NoesisGUI] Unity3D minor always 2022-02-10 13:14 2022-02-10 14:21
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: ImageSourceConverter not working for Uri properties
Description: Binding Image.Source to a Uri property is not working because the converter doesn't support it, only works when value is a strings.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2264 [NoesisGUI] Unreal feature always 2022-02-08 14:00 2022-02-08 14:00
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Improve xaml import process to check errors when dependencies change
Description: As it happens with latest Unity plugin, when a dictionary changes, all xamls using it are reimported to check errors are fixed or new errors appeared.

We can probably use
bool UAssetRegistryImpl::GetReferencers(const FAssetIdentifier& AssetIdentifier, TArray<FAssetIdentifier>& OutReferencers, EAssetRegistryDependencyType::Type InReferenceType) const

in Unreal to do something similar.

Implementing this could make import process inefficient so we should be very careful.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2239 [NoesisGUI] C++ SDK feature N/A 2022-01-13 18:10 2022-02-07 14:12
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Hot-Reloading improvements
Description: We are using this ticket as a place holder for all improvements and ideas we have to improve current Hot-Reloading implementation.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007733)
sfernandez   
2022-01-13 18:24   
Add a virtual method to FrameworkElement equivalent to ConnectEvent for the FindNames, something in the line of:

 - virtual void ConnectName(BaseComponent* source, const char* name);
(0007734)
sfernandez   
2022-01-13 18:25   
Consider deprecating Reloaded event in favor of a more friendly cycle of events for the user:

 - Unloaded
 - "load and parse xaml"
 - Initialized
 - Loaded
(0007735)
jsantos   
2022-01-13 18:31   
We are also keeping an internal list of "named" elements to avoid dangling pointers on the client that is probably unnecessary as it doesn't cover all scenarios.
(0007736)
stonstad   
2022-01-13 22:05   
I understand the desire to encourage users to use DataContext. But I think forcing users to adopt this path when it is not required in WPF, UWP, and prior versions of Noesis is not sensible. I need a mechanism to opt out because data binding is not always the right solution. The targeting system for my game should not use data contexts. The proposed Noesis solution is that I port controls over to an opinionated design or live with runtime breakage each time I modify XAML during Unity playback. A sensible interim solution is an opt out flag, i.e. "Disable Runtime Reload".
(0007738)
jsantos   
2022-01-17 11:10   
I think the only way to retain the state is using Data Context. The improvements commented in this ticket are in the line of fixing as much as possible to avoid breakage (not using DataContext). This is the approach closer to WPF also (if you hot-reload in Visual Studio).

To understand more about your scenario could you tell us more about why are you editing XAML during play if you don't expect it to reload?

Anyway, @sfernandez is is extremely confusing that editing a resource dictionary reload all dependencies and reset the state of all its XAML even when hot-reloading is not supported in ResourceDictionaries,
(0007740)
stonstad   
2022-01-17 16:44   
I edit XAML during playback for the same reason I edit code -- to correct bugs and apply fixes. There are scenarios in which I purposefully do not use data context. Is there a Noesis Unity CS file I may modify to disable this behavior?
(0007742)
jsantos   
2022-01-17 18:45   
I know, yes, but I am trying to understand, if you want to disable XAML reloading what's the purpose of editing xaml while in Play mode? It will behave exactly as not editing xaml.
(0007744)
stonstad   
2022-01-18 15:46   
Hot reload is a great feature that I intend to use but at present this isn't possible. With regard to my daily workflow -- the reason I make changes during runtime is because Unity has a slow iteration time -- this is the time between editor stop and subsequent playback. I could take notes of necessary product changes as I play the game or I can just make the changes directly. Which one seems easier to you? When I am developing I am usually working on multiple changes at once. For each editor iteration, I am likely testing two changes (which can only be confirmed through visual play) and working on new code for a subsequent change. Having Noesis forcibly remove control state which was previously set in the game breaks this development workflow.
(0007748)
Faerdan   
2022-01-19 16:26   
I have had to disable hot reloading (by modifiying the code) in our project for reasons similar to stonstad.

As well as breaking some elements, it was also triggering XAML imports during play, which was frustrating as you have to wait for it to complete before doing anything in the Editor.
(0007750)
jsantos   
2022-01-20 12:07   
In 3.1.2 we added two important improvements to Hot-Reloading

 - ResourceDictionaries do not reload. So if you touch them, nothing happens
 - Reimport times are now an order of magnitude faster. From second to milliseconds.

We also observed that setting 'Preferences > General > Script Changes While Playing' to 'Recompile After Finished Playing' disables Hot-Reloading (because it disables import for all assets)
(0007752)
stonstad   
2022-01-20 16:29   
> We also observed that setting 'Preferences > General > Script Changes While Playing' to 'Recompile After Finished Playing' disables Hot-Reloading

I'm not sure this is the case for many Unity versions. I'm running Unity 2021.2.5f1 with Recompile After Finished Playing set and Noesis still hot reloads. See https://issuetracker.unity3d.com/issues/a-false-pup-up-appears-when-modifying-a-script-and-having-recompile-after-finished-playing-set
(0007768)
stonstad   
2022-02-01 22:49   
Any updates on whether this will be a supported feature, i.e. disabling hot reload via noesis configuration?
(0007769)
jsantos   
2022-02-02 12:34   
We need to discuss about this, but definitely is not happening on 3.1.3 that we plan to release very soon.

Could you disable this by code for now? (NoesisPostProcessor.cs)
(0007778)
stonstad   
2022-02-04 15:59   
Yes, a work-around is fine. Do I add an Editor.isPlaying check to OnPostprocessAllAssets?
(0007782)
jsantos   
2022-02-07 14:12   
yes, something like that should work for now


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2234 [NoesisGUI] C++ SDK major always 2022-01-10 18:26 2022-02-07 12:38
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Bindings in resources not resolving
Description: From forum posts:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2500
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2502
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2233 [NoesisGUI] C# SDK major always 2022-01-10 18:16 2022-02-04 16:09
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Android
Summary: Missing libEGL.so.1 in Android
Description: Android Runtime Problems:
=======================
When I was using the older NuGet packages as defined in the original download (3.0.something), and when I had commented out the Interaction.Triggers code, I could get the Android project to build and run on a physical Android phone. With the 3.1.2 packages, the Android project builds, but at runtime it fails with this exception:

    System.DllNotFoundException
    Message=libEGL.so.1 assembly:<unknown assembly> type:<unknown type> member:(null) 
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2258 [NoesisGUI] C++ SDK minor have not tried 2022-02-03 17:04 2022-02-03 17:05
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Support moving focus to Hyperlink inlines
Description: In WPF Hyperlink inlines inside a TextBlock can be focused and keyboard can navigate through them (both Tab and Directional navigation).
We should add support for that in Noesis.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2257 [NoesisGUI] C++ SDK major always 2022-02-03 01:09 2022-02-03 10:43
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.2.0  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version:  
Platform: Any
Summary: VIsual::PointFromScreen called from a button click - zero determinent, invalid matrix inverse
Description: Hi guys, we're getting an assert when trying to invert a matrix with a zero determinent from seemingly valid inputs when we click a button:

     Noesis::Inverse(const Noesis::Matrix4 & m, float determinant) Line 860 C++ Symbols loaded.
     Noesis::Inverse(const Noesis::Matrix4 & m) Line 854 C++ Symbols loaded.
> Noesis::Visual::PointFromScreen(const Noesis::Point & point) Line 204 C++ Symbols loaded.
     Noesis::BaseButton::OnMouseMove(const Noesis::MouseEventArgs & e) Line 359 C++ Symbols loaded.


To get the view projection we're using the default calculated one (i.e. NOT a user projection matrix). My view resolution is 1920 x 1011 (a maximized window on a 1080p monitor, so the actual render target height is only 1011 pixels instead of 1080, so this is not perfectly 16:9 aspect ratio).

t (InternalTransformToRoot()) is the following:

- t {mVal=0x0000000003dce9a8 {{x=0.468055546 y=0.000000000 z=0.000000000 }, {x=0.000000000 y=0.468055546 ...}, ...} } Noesis::Transform3
- mVal 0x0000000003dce9a8 {{x=0.468055546 y=0.000000000 z=0.000000000 }, {x=0.000000000 y=0.468055546 z=0.000000000 }, ...} Noesis::Vector3[4]
+ [0] {x=0.468055546 y=0.000000000 z=0.000000000 } Noesis::Vector3
+ [1] {x=0.000000000 y=0.468055546 z=0.000000000 } Noesis::Vector3
+ [2] {x=0.000000000 y=0.000000000 z=1.00000000 } Noesis::Vector3
+ [3] {x=93.6111069 y=210.625000 z=0.000000000 } Noesis::Vector3


Projection Matrix is as follows:

- proj {mVal=0x0000000003dcea20 {{x=1.00000000 y=0.000000000 z=0.000000000 ...}, {x=-0.000000000 y=1.00000000 ...}, ...} } Noesis::Matrix4
- mVal 0x0000000003dcea20 {{x=1.00000000 y=0.000000000 z=0.000000000 ...}, {x=-0.000000000 y=1.00000000 z=-0.000000000 ...}, ...} Noesis::Vector4[4]
- [0] {x=1.00000000 y=0.000000000 z=0.000000000 ...} Noesis::Vector4
        x 1.00000000 float
        y 0.000000000 float
        z 0.000000000 float
        w 0.000000000 float
- [1] {x=-0.000000000 y=1.00000000 z=-0.000000000 ...} Noesis::Vector4
        x -0.000000000 float
        y 1.00000000 float
        z -0.000000000 float
        w -0.000000000 float
- [2] {x=0.960000038 y=0.505500019 z=0.00100000005 ...} Noesis::Vector4
        x 0.960000038 float
        y 0.505500019 float
        z 0.00100000005 float
        w 0.00100000005 float
- [3] {x=0.000000000 y=0.000000000 z=0.999499977 ...} Noesis::Vector4
        x 0.000000000 float
        y 0.000000000 float
        z 0.999499977 float
        w 1.00000000 float


mtx (t * proj) is as follows

- mtx {mVal=0x0000000003dcea60 {{x=0.468055546 y=0.000000000 z=0.000000000 ...}, {x=0.000000000 y=0.468055546 ...}, ...} } Noesis::Matrix4
- mVal 0x0000000003dcea60 {{x=0.468055546 y=0.000000000 z=0.000000000 ...}, {x=0.000000000 y=0.468055546 z=...}, ...} Noesis::Vector4[4]
- [0] {x=0.468055546 y=0.000000000 z=0.000000000 ...} Noesis::Vector4
        x 0.468055546 float
        y 0.000000000 float
        z 0.000000000 float
        w 0.000000000 float
- [1] {x=0.000000000 y=0.468055546 z=0.000000000 ...} Noesis::Vector4
        x 0.000000000 float
        y 0.468055546 float
        z 0.000000000 float
        w 0.000000000 float
- [2] {x=0.960000038 y=0.505500019 z=0.00100000005 ...} Noesis::Vector4
        x 0.960000038 float
        y 0.505500019 float
        z 0.00100000005 float
        w 0.00100000005 float
- [3] {x=93.6111069 y=210.625000 z=0.999499977 ...} Noesis::Vector4
        x 93.6111069 float
        y 210.625000 float
        z 0.999499977 float
        w 1.00000000 float



These are the properties inside the Determinent method:

- m {mVal=0x0000000003dcea60 {{x=0.468055546 y=0.000000000 z=0.000000000 ...}, {x=0.000000000 y=0.468055546 ...}, ...} } const Noesis::Matrix4 &
- mVal 0x0000000003dcea60 {{x=0.468055546 y=0.000000000 z=0.000000000 ...}, {x=0.000000000 y=0.468055546 z=...}, ...} Noesis::Vector4[4]
- [0] {x=0.468055546 y=0.000000000 z=0.000000000 ...} Noesis::Vector4
        x 0.468055546 float
        y 0.000000000 float
        z 0.000000000 float
        w 0.000000000 float
- [1] {x=0.000000000 y=0.468055546 z=0.000000000 ...} Noesis::Vector4
        x 0.000000000 float
        y 0.468055546 float
        z 0.000000000 float
        w 0.000000000 float
- [2] {x=0.960000038 y=0.505500019 z=0.00100000005 ...} Noesis::Vector4
        x 0.960000038 float
        y 0.505500019 float
        z 0.00100000005 float
        w 0.00100000005 float
- [3] {x=93.6111069 y=210.625000 z=0.999499977 ...} Noesis::Vector4
        x 93.6111069 float
        y 210.625000 float
        z 0.999499977 float
        w 1.00000000 float
        v0 154.879593 float
        v1 0.865908921 float
        v2 0.866388917 float
        v3 0.294622242 float
        v4 0.294875026 float
        v5 5.00003807e-07 float
        t00 2.34029557e-07 float
        t10 -0.000000000 float
        t20 -0.405518144 float
        t30 0.405293465 float


The v5 is pretty much zero and when multiplied through the matrix's first column it ends up returning zero for each component:
Tags:
Steps To Reproduce: Use this function to use the same properties as me and then click a button.

Point PointFromScreenTest(/*const Point& point*/)
{
    Point point(302.0f, 401.0f);
    //Transform3 t = InternalTransformToRoot();
    Transform3 t(
        0.468055546f, 0.0f, 0.0f,
        0.0f, 0.468055546f, 0.0f,
        0.0f, 0.0f, 1.0f,
        93.6111069f, 210.625f, 0.0f);

    float det = Determinant(t.Rotation());
    if (fabsf(det) < FLT_EPSILON)
    {
        return Point(FLT_INF, FLT_INF);
    }

    //Matrix4 proj = GetViewProjectionMatrix(mView);
    Matrix4 proj(
        1.0f, 0.0f, 0.0f, 0.0f,
        0.0f, 1.0f, 0.0f, 0.0f,
        0.96f, 0.5055f, 0.001f, 0.001f,
        0.0f, 0.0f, 1.0f, 1.0f
    );
    Matrix4 mtx = t * proj;
    Matrix4 invMtx = Inverse(mtx);
    Vector4 dir = Vector4(point, 1.0f, 1.0f) * invMtx;

    Vector4 p = Vector4(0.0f, 0.0f, 0.0f, 1.0f) * invMtx;
    p /= p.w;

    return IntersectPlane(p, dir, Matrix4::Identity()).first;
}
Additional Information:
Attached Files:
Notes
(0007771)
steveh   
2022-02-03 01:20   
Ah, sorry, I think this is a dupe of 0002202 and have fixed in r11159 and r11170
(0007772)
steveh   
2022-02-03 01:31   
Just to confirm, I've integrated r11159 and r11170 into our version of 3.1.2 (with the Arabic branch merged in as well), and it fixed out reliable repro case.
(0007773)
sfernandez   
2022-02-03 10:43   
Thanks for the confirmation Steve, marking this as solved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2202 [NoesisGUI] C++ SDK block always 2021-11-30 08:02 2022-02-03 10:43
Reporter: krupitskas Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: 3D UI interaction broken
Description: Hello!
I'm trying to implement 3D ui elements, which I want to click and drag around. Imagine "image placer" in 2D world.
What I've did is created a canvas with custom name, obtained it through:

[code]
application_text_tool = Noesis::Ptr<AppTextTool>{Noesis::DynamicCast<AppTextTool*>(noesis_3d_view->GetContent())};
auto content_text_tool = Noesis::DynamicCast<Noesis::FrameworkElement*>(application_text_tool->GetContent());
world_space_canvas = Noesis::Ptr(content_text_tool->FindName<Noesis::Canvas>("TextToolCanvas"));
noesis_3d_view->SetSize(static_cast<uint16_t>(p.win_width), static_cast<uint16_t>(p.win_height));
[/code]

Later I render it:
[code]
    const auto viewport = Noesis::Matrix4::Viewport(window_w, window_h);
    const auto view = Noesis::Matrix4(glm::value_ptr(camera.get_view()));
    const auto proj = Noesis::Matrix4(glm::value_ptr(camera.get_proj()));
    Noesis::Matrix4 offset = Noesis::Transform3::Trans(0.0, static_cast<float>(-window_h), 0.0).ToMatrix4();

    const auto prod = offset * view * proj * viewport;

    noesis_3d_view->SetProjectionMatrix(prod);
    noesis_3d_view->GetRenderer()->RenderOffscreen(prod);
    noesis_3d_view->GetRenderer()->Render(prod);
[/code]

Element itself:

[code]
    <Canvas x:Name="TextToolCanvas">
       <Viewbox Stretch="Uniform" StretchDirection="Both">
            <Rectangle Opacity="0.8" Width="736" Height="951" Fill="Red">
                    <i:Interaction.Behaviors>
                        <ei:MouseDragElementBehavior ConstrainToParentBounds="False" />
                    </i:Interaction.Behaviors>
            </Rectangle>
        </Viewbox>

    </Canvas>
[/code]

So result looks like this: [url]http://www.giphy.com/gifs/HyE5flQi9qF40jmQ3t[/url]

But if I insert rectangle into 2D ui, everything works perfect. [url]http://www.giphy.com/gifs/JMkTe0Rms1CqDyoJi5[/url]\

Forum post:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2482
Tags: C++
Steps To Reproduce: Create two views, provide world space matrix to one of them, add rectangle with mouseinteraction behaviour, try to click and move.
Additional Information:
Attached Files: Main.cpp (11,012 bytes) 2021-12-27 19:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1570&type=bug
Notes
(0007687)
sfernandez   
2021-12-20 11:20   
Just to confirm, are you able to reproduce these issues with NoesisGUI 3.1.1 version?
(0007688)
jsantos   
2021-12-20 12:24   
The following XAML is working fine in XamlToy. Also we tried this same XAML in a local example changing the perspective projection of the camera (this cannot be done in xamltoy)

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
  xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
  
  <noesis:Element.Transform3D>
    <noesis:CompositeTransform3D RotationY="50" />
  </noesis:Element.Transform3D>
  
    <Canvas x:Name="TextToolCanvas">
       <Viewbox Stretch="Uniform" StretchDirection="Both" Canvas.Left="200" Canvas.Top="200">
            <Rectangle Opacity="0.8" Width="100" Height="200" Fill="Red">
                    <i:Interaction.Behaviors>
                        <ei:MouseDragElementBehavior ConstrainToParentBounds="False" />
                    </i:Interaction.Behaviors>
            </Rectangle>
        </Viewbox>

    </Canvas>
  
</Grid>
(0007692)
krupitskas   
2021-12-27 19:26   
Hello. I've reproduced this issue with glut example. Attaching file Main.cpp
+ Also try to increase or decrease size of the window in `glutInitWindowSize(1000, 600);`
For some reason clicking become broken.

P.S. const uint8_t AppGlut_xaml[] is

```
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
  xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
  
    <Canvas x:Name="TextToolCanvas">
       <Viewbox Stretch="Uniform" StretchDirection="Both" Canvas.Left="200" Canvas.Top="200">
            <Rectangle Opacity="0.8" Width="1000" Height="2000" Fill="Red">
                    <i:Interaction.Behaviors>
                        <ei:MouseDragElementBehavior ConstrainToParentBounds="False" />
                    </i:Interaction.Behaviors>
            </Rectangle>
        </Viewbox>

    </Canvas>
  
</Grid>
```
(0007726)
krupitskas   
2022-01-11 17:22   
Hey guys, any update? It's a blocker for us for the next release unfortunately :(
(0007727)
sfernandez   
2022-01-12 10:43   
Hello, sorry for the delay, we've been on holidays the past weeks.
We are now working on the issue, related to float precision on the world-screen operations when the z range is big.

I guess the projection matrix you are setting is the same you have in your 3D scene, right?
(0007730)
hcpizzi   
2022-01-12 17:43   
Could you paste the values from view matrix taken from your application? I want to make sure the fix doesn't just work with the kind of matrices that we use when none is set.

Thanks.
(0007737)
krupitskas   
2022-01-14 10:54   
GLM projection matrix: mat4x4((1.014229, 0.000000, 0.000000, 0.000000), (0.000000, 1.732051, 0.000000, 0.000000), (-0.000000, -0.000000, 1.000000, 1.000000), (0.000000, 0.000000, -0.010000, 0.000000))

GLM view matrix: mat4x4((1.000000, 0.000000, 0.000000, 0.000000), (0.000000, 1.000000, 0.000000, 0.000000), (0.000000, 0.000000, 1.000000, 0.000000), (-0.000000, -0.000000, 16525.679688, 1.000000))

Yes, I use multiplication of these two matrices for my props and for a Noesis UI 3d view.
(0007757)
hcpizzi   
2022-01-28 16:05   
Hi,

Sorry this is taking so long. We think we have a robust solution now, and would like to build a library with the fix for you to test.

Which version of the Noesis SDK are you using, and what platform would you like the library for?

Thank you for your patience.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2211 [NoesisGUI] Unity3D feature always 2021-12-07 13:22 2022-02-02 13:54
Reporter: JinFox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Implementation of VisualStateManager events : CurrentStateChanging and CurrentStateChanged
Description: Hello,
According to our conversation, it would seem that Noesis currently doesn't have the following function implemented in VisualStateManager

VisualStateGroup.CurrentStateChanged :
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.visualstategroup.currentstatechanged?view=winrt-22000
VisualStateGroup.CurrentStateChanging :
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.visualstategroup.currentstatechanging?view=winrt-22000

So I would like to do a feature request to have these event implemented so we can use them as event trigger.
Tags: C# Storyboard
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2227 [NoesisGUI] Unity3D minor always 2022-01-02 18:03 2022-02-01 15:30
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Noesis 3.1.2 Compiler Warnings
Description: Noesis 3.1.2 shows compiler warnings during project compilation. "<filename> could not be added to the project. Cannot add a link to the file <filename>". See enclosed screenshot.
Tags:
Steps To Reproduce: 1. Upgraded project from 3.0.X to 3.1.2.
2. Compiled Unity project in Visual Studio 2020
3. Error List shows compiler warnings which do not resolve.
Additional Information:
Attached Files: Compile Warnings.png (112,309 bytes) 2022-01-02 18:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1572&type=bug
Notes
(0007766)
sfernandez   
2022-02-01 15:30   
We had files with the same name in different folders but Unity add them all to the same level producing conflicts.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2225 [NoesisGUI] C# SDK major sometimes 2021-12-31 15:36 2022-01-31 13:41
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Linux
Summary: Offscreen rendering sometimes does not render everything
Description: Saving a measurement, which is just some lines and circles and text, offscreen sometimes render nothing or just part of the measurement.
Tags:
Steps To Reproduce: 1.) From live, save an image
2.) Recall it (global menu > file manager > tap on it)
3.) Add a point-to-line measurement (measure > select a tip > add ref. cursors > add point-to-line measurement
4.) Done
5.) Save the image
--> Sometimes the measurement will disappear or partially disappear

This seems to only happen on our hardware. I cannot reproduce it in Windows.
Additional Information:
Attached Files:
Notes
(0007758)
sfernandez   
2022-01-31 13:41   
Resolved in 3.1.3b1 nugets.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2236 [NoesisGUI] C++ SDK minor always 2022-01-11 16:52 2022-01-31 13:34
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Incorrect Rectangle geometry when only setting one of RadiusX or RadiusY
Description: The following xaml should render a simple Rectangle because only RadiusX is set, but it renders a skewed rectangle instead.
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Rectangle Width="200" Height="200" Fill="Red" RadiusX="20"/>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2245 [NoesisGUI] C# SDK minor always 2022-01-20 00:34 2022-01-31 12:17
Reporter: asthomas Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Application.FindResource not implemented
Description: Application.Resources is available in Application.OnStartup. This would be a good place to set the default font characteristics. For this, we need to search the resources, so Application.FindResource would be handy.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2240 [NoesisGUI] C++ SDK major always 2022-01-14 11:32 2022-01-31 12:00
Reporter: DavidJefferies Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Path doesn't stretch when Viewbox expands
Description: I've got a Viewbox that contains a background Path and some collapsed TextBlocks.

When the visibility of the TextBlocks gets changed to Visible the whole control is meant to expand.

This works as expected in Blend but in Noesis (3.1.2) the Viewbox expands but the Path doesn't. (However, if the TextBlocks are initially set to Visible then the Path is expanded as expected.)
Tags:
Steps To Reproduce: Reproducible in xamltoy using the xaml from this post:

https://www.noesisengine.com/forums/viewtopic.php?f=3&p=13818&sid=edd9d9fd011da1ac27fd0e238b8812db#p13818
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2216 [NoesisGUI] C++ SDK feature always 2021-12-16 20:53 2022-01-28 16:29
Reporter: arjunc007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: StaticResourceExtension not in the public API
Description: The StaticResourceExtension class does not have an implementation in the C++ API
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2229 [NoesisGUI] C# SDK trivial always 2022-01-02 20:31 2022-01-26 20:35
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: System.Windows.Media.PathSegmentCollection Runtime Compatibility
Description: Trivial --

*PathSegmentCollection
PathSegmentCollection.Segments is initialized to an empty collection in the PresentationCore assembly.
PathSegmentCollection.Segments is initialized to null In Noesis.

*PathFigureCollection
PathFigureCollection.Figures is initialized to an empty collection in the PresentationCore assembly.
PathFigureCollection.Figures is initialized to null In Noesis.

I don't know if this is by design. I'm just calling attention to the departure in behavior.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007705)
sfernandez   
2022-01-03 11:49   
You mean PathGeometry.Figures and PathFigure.Segments collections, right?
This happens when creating a PathGeometry or PathFigure in code.
(0007708)
jsantos   
2022-01-03 18:01   
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2503
(0007711)
stonstad   
2022-01-04 17:39   
Re: Sergio, yes. Creating an instance of PathGeometry or PathFigure results in a null collection. I believe WPF behavior is different due to code examples showing these collections being initialized to empty instead of null. This has no impact on my projects -- I'm reporting this if code parity with WPF is desired.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2178 [NoesisGUI] Unity3D major always 2021-11-04 22:24 2022-01-23 16:58
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: Text Wrapping Algorithm Breaks Words Strangely
Description: The text "Genesis Torpedo" is wrapped as:

"Genesis T
orpedo"

OK.

But then "Genesis XTorpedo" is wrapped as
"Genesis
XTorpedo".

See attached screenshots.


Tags:
Steps To Reproduce: Can be reproduced with the following xaml

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="White">
  <Border Width="200" VerticalAlignment="Center" Background="LightGreen">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" Text="Genesis Torpedo" FontSize="30" FontFamily="Arial" Foreground="Black"/>
  </Border>
</Grid>
Additional Information:
Attached Files: Genesis Torpedo.png (4,510,409 bytes) 2021-11-04 22:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1535&type=bug
Genesis XTorpedo.png (4,395,399 bytes) 2021-11-04 22:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1536&type=bug
Poppins-Regular.zip (70,118 bytes) 2022-01-19 19:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1578&type=bug
Notes
(0007722)
stonstad   
2022-01-10 19:22   
Are there any possible work-arounds for this behavior? i.e. no break tags or some way to predict when the behavior might manifest? Thank you!
(0007729)
jsantos   
2022-01-12 13:04   
Sorry, we didn't find time for this so far. I will tell you something soon
(0007749)
sfernandez   
2022-01-19 19:41   
Another related issue with text wrapping and trimming can be reproduced with the following xaml, it is incorrectly applying trimming to "Keyboard":
<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Border Width="190" Background="WhiteSmoke" HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock Text="Show Keyboard" HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" MaxWidth="171" FontSize="22" FontFamily="./#Poppins" Foreground="Black"/>
  </Border>
</Grid>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2243 [NoesisGUI] Unity3D major always 2022-01-19 11:28 2022-01-19 11:31
Reporter: CaptainCatSparrow Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: Any
Summary: UI not rendered in Unity with URP
Description: Tested with next versions:
1) Unity 2021.2.8f1 + URP 12.1.3
2) Unity 2020.3.26f1 LTS + URP 10.8
Tags: Unity, Unity URP
Steps To Reproduce: 1) Download Scoreboard sample from git.
2) Open the project using Unity version mentioned in the description
3) Install URP into project using official guide (https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@13.1/manual/InstallURPIntoAProject.html)
4) Press the play button

Result: UI is not rendered in play mode.
Additional Information:
Attached Files:
Notes
(0007747)
jsantos   
2022-01-19 11:31   
(Last edited: 2022-01-19 11:31)
Duplicate of 0002219


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2219 [NoesisGUI] Unity3D major always 2021-12-27 13:56 2022-01-19 11:30
Reporter: Phodopus Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.3  
    Target Version: 3.1.3  
Platform: macOS
Summary: When running NoesiGUI examples with Unity 2021.2.7f under MacOS rendering artefacts occur
Description: When using a new URP project, only a black screen is rendered on play but I can hear sounds when I move the cursor. When using an HDRP template, random artifacts occur.
Tags: Unity HDRP URP
Steps To Reproduce: Hardware: Macbook Pro M1 Max
OS: macOS Monterey Version 12.1
Unity Version 2021.2.7f (apple silicon)
Render: Metal

1) start a new project from Unity Hub
2) choose either 3D (URP) or 3D (HDRP)
3) install/import NoesisGUI 3.1.2 with Unity package manager
4) install Noesis Examples
5) load example (e.g. buttons)
6) play
7) rendering artifacts occur (HDRP) or the screens stays black while sounds can be heard (URP)
Additional Information:
Attached Files: Unity HDRP.png (570,858 bytes) 2021-12-27 13:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1568&type=bug
Unity URP.png (376,143 bytes) 2021-12-27 13:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1569&type=bug
Notes
(0007701)
somebarrel   
2022-01-03 05:40   
(Last edited: 2022-01-03 05:55)
Same URP issue occurs in Windows 11 with 2021.2.7f1

Hardware: Core i9-10900KF/1060 6GB
OS: Windows 11 22000.376
Renderer: DX11

Exact same steps to reproduce (URP tested only)



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2241 [NoesisGUI] Inspector feature N/A 2022-01-17 12:43 2022-01-17 12:47
Reporter: jsantos Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Inspector profiling improvements
Description: Right now the inspector is assuming a render thread operating in lock-step with the main thread. But or architecture allows both threads being executed independently and at different frequencies.

We propose a new layout, were both threads are presented in different windows and a timeline below. Clicking on a frame of the Update or Render Window will select the box in the timeline giving a clear vision of the ordering of both threads. Also below the timeline we will display a tree-view with all profiling events that happened in that frame.

See attached screenshot.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: IMG_20220114_185531.jpg (488,261 bytes) 2022-01-17 12:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1576&type=bug
Notes
(0007739)
jsantos   
2022-01-17 12:47   
Our CPU profiler must be changed to expose callbacks for profiling events. The inspector will connect to those events from both threads. We need a way to send the current view (if inside a view) with each event.

If we do this, we no longer need timings in ViewStats and we should expose a new method in IRenderer to get the stats for the last frame.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2230 [NoesisGUI] C# SDK feature N/A 2022-01-06 22:40 2022-01-12 13:01
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Contrast Shader Effect
Description: This is a feature request for a contrast shader effect!

In the example below (example.png), you can see how a UI may take a sprite with alpha and increase contrast to create a shape of a sprite. A general purpose contrast and brightness shader could help create some awesome effects!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: example.png (442,987 bytes) 2022-01-06 22:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1575&type=bug
Notes
(0007718)
jsantos   
2022-01-10 13:45   
In Noesis 3.1, now you can create your own shaders for effect and brushes. Not sure if you tried the VideoEffect and BruishShaders examples included with he package.

For now, only working in HLSL but we are working on supporting all platforms.
(0007721)
stonstad   
2022-01-10 19:21   
Thank you. I'll take a look!
(0007728)
jsantos   
2022-01-12 13:01   
https://www.noesisengine.com/docs/Gui.Core.ShadersTutorial.html


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2238 [NoesisGUI] Unreal crash random 2022-01-12 10:34 2022-01-12 10:36
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: NoesisTextBoxTextInputMethodContext
Description: It is possible that the TextBox pointer in the NoesisTextBoxTextInputMethodContext can become invalid (TextBox has been destroyed) but the context itself hasn’t been deactivated for whatever reason.
That situation causes crash trying to call functions on invalid pointer.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2160 [NoesisGUI] C++ SDK major always 2021-10-26 11:14 2022-01-11 16:27
Reporter: frochet38 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1.2  
Platform: Windows
Summary: Crash when using multi-line TextBox with more than 1300 lines
Description: A text box with a very-long text (more than 1300 lines) will crash in Window.cpp when the user scrolls at the end of the text:

in void Window::Render(double time)
{
...
mRenderContext->EndRender(); <-- here
...
}

Seems the rendercontext is corrupted.
Tags:
Steps To Reproduce: add a TextBox with 1300+ lines of text
scroll to the end of the text
Additional Information: XAML extract:

            <TextBox Canvas.Left="-175.5" Canvas.Top="207.5" Text="{Binding Text_CGV, FallbackValue=Sample_Value_CGV}" Width="666" Height="261" RenderTransformOrigin="0.5,0.5" Foreground="Black" Background="#00000000" TextWrapping="Wrap" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Visible" IsReadOnly="True" UseLayoutRounding="True" AcceptsReturn="True" AcceptsTab="True" BorderBrush="#00000000">
                <TextBox.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="270"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </TextBox.RenderTransform>
            </TextBox>
Attached Files: Crash_Noesis_TextBox.dmp (218,309 bytes) 2021-10-26 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1530&type=bug
Notes
(0007536)
frochet38   
2021-10-26 11:19   
the crash is independent of the content of the text, depends only on the number of lines displayed on the TextBox
(0007538)
sfernandez   
2021-10-26 14:04   
Hi, I tried to reproduce the crash in NoesisGUI 3.0.12 and 3.1.1 but it is working fine for me.
Could you please attach the crash dump? You should be able to generate one from Visual Studio, in the Debug menu select "Save Dump As...".
Thanks for your help.
(0007539)
frochet38   
2021-10-26 14:16   
I used a workaround to split the text in pages, so I lowered the bug priority to "major". Here is the attached minidump.
(0007543)
sfernandez   
2021-10-27 11:30   
Looking at the crash dump it points to some code dealing with emojis, is it possible that it crashed when you were adding emojis to your text?
(0007552)
frochet38   
2021-10-30 12:41   
It's possible (that's my customer EULA and I don't know what is the exact text) but I can also reproduce the crash with a text composed of 1500 lines of 'AAAAAAAAAAAAAA'...
(0007556)
sfernandez   
2021-11-03 13:19   
I can't reproduce it even with 3.0.2 version, or using "AAAA..." to fill the TextBox.
Can you attach a new crash dump when using the "AAA.." text? I want to verify if it is crashing in the same code.
(0007557)
sfernandez   
2021-11-03 13:19   
Anyway, have you tried with a newer version of Noesis? 3.0.2 is quite old now.
(0007669)
sfernandez   
2021-12-10 14:22   
This must be resolved in 3.1.X, please upgrade.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2218 [NoesisGUI] C# SDK major always 2021-12-21 22:07 2022-01-11 14:40
Reporter: ARGeaslin Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.3  
Platform: Any
Summary: WebBrowser Caching Information
Description: WebBrowser isn't going to the correct version of a page after closing and reopening. I suspect the device is somehow caching information that's preventing a that page from loading fresh. Previously we were calling Cef.DeleteCookies("", "") prior to navigating.

I tried intentionally caching information by setting WebBrowser.CachePath and then clearing that manually, but the files in the cache were always in use and threw exceptions, even when the view containing the WebBrowser was unloaded.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007710)
hcpizzi   
2022-01-04 12:41   
If WebBrowser.CachePath is not set, all the cahed data is held in memory, which means it would be reset when the application closes. Is that the behavior you want? Or would you like to be able to just clear the cookies on demand?
(0007725)
hcpizzi   
2022-01-11 14:40   
A new static function WebBrowser.DeleteCookies has been added. It must be called after setting WebBrowser.CachePath. It deletes the cookes for the specified URL, or all of them if the URL is empty.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2224 [NoesisGUI] C++ SDK major always 2021-12-31 14:26 2022-01-11 13:08
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.3  
Platform: Any
Summary: WebBrowser InputText always appends
Description: The WebBrowser's InputText API always appends. We need a way to clear the text and probably know what is already in the text box if that's possible. Let's discuss more in email.
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007723)
hcpizzi   
2022-01-11 13:08   
InsertText still only inserts text, but we've made two changes: The current text is passed with the event, so that the virtual keyboard can be prepopulated, and the text in the TextBox is selected, so that inserting the contents of the virtual keyboard will replace the contents.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2193 [NoesisGUI] C++ SDK tweak always 2021-11-17 13:16 2022-01-10 13:55
Reporter: ext.smichalak Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1  
Platform: Any
Summary: Reducing memory allocation without shutting down Noesis
Description: As we discussed in this forum thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2474&p=13573#p13573, we should investigate more how we could reduce the memory allocation without fully shutting down Noesis and being able to "restart" the rest of the components, dependencies, etc.

As mentioned earlier, that's the current memory allocation in our case during shutdown steps:

[code]
void Noesis::Shutdown()
{
    if (gKernelState == KState::Initialized)
    {
        NS_LOG_INFO("Noesis Shutdown");
        // Memory allocation: 2 721 711 bytes
        UnregisterPackages();
        // Memory allocation: 417 177 bytes
        Boxing::Shutdown();
        // Memory allocation: 188 512 bytes
        SymbolManager::Shutdown();
        // Memory allocation: 0 bytes
    }
}
[/code]

The above values were tested on Windows in Unreal Editor.

We're looking into reducing that 2.7MB to as little as possible.
Tags:
Steps To Reproduce: Cleaning up as much memory as possible without calling `Noesis::Shutdown()`. I used `Noesis::GetMemoryAllocation()` helper to get the above-mentioned values.
Additional Information:
Attached Files:
Notes
(0007581)
jsantos   
2021-11-17 16:35   
Thanks for this, there are many small tasks to be solved with this ticket:

1. Have a separate macro for the inspector (now it is the same as NS_PROFILE)
2. The inspector should consume 0 memory if it is not enabled at runtime (we don't have ways to disabled it on Unity and Unreal, only the C++ SDK)
3. Integration API should offer a way to release all internal memory to the point after the invocation of Init
4. Analyze memory consumed by the reflection, it seems it is more than expected and find a way to free it as much as possible before shutdown.
(0007678)
jsantos   
2021-12-15 21:21   
(Last edited: 2021-12-17 21:16)
A few improvements added in r11039.

These are the number I have right now (important you should at least measure this invoking UI::DisableInspector before UI::Init(), but in general you shouldn't release apps in profile configuration).

Uninstalling everything from IntegrationAPI (removing providers, removing resource dictionary), before UI::Shutdown() we have:
[pre]
= 1.054.854 bytes =
[/pre]

This memory mostly belongs to
[pre]
= Boxing 51 Kb =
= Symbols 184 Kb =
= Factory 34 Kb =
= Reflection 761 Kb =
[/pre]

Reflection + Symbols cannot be unloaded, at least without heavy modifications that we cannot apply on 3.1.

Boxing and Factory could be unloaded, but probably not in 3.1 because I think we need a better API for Init and Shutdown
Symbols could be optimized in general to take half that memory (we need to improve our reflection macros for Dependency Properties in C++)
Reflection can be optimized also, and we are working on it, but this is not happening soon as it is a huge breaking change.

(0007685)
ext.smichalak   
2021-12-17 21:14   
Thank you @jsantos for the work and thorough answer. Feel free to close this ticket, once we're able to get back to that topic and something is unclear, we're going to let you know. Thanks again!
(0007719)
jsantos   
2022-01-10 13:54   
(Last edited: 2022-01-10 13:55)
Closing this and leaving 0002232 as related

Thank you for your feedback!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2232 [NoesisGUI] C++ SDK feature always 2022-01-10 13:52 2022-01-10 13:53
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Use symbols with static strings in Dependency properties
Description: Right now, symbols created by dependency properties are copying the string to the internal table. For the reflection macros used in C++ we are using static symbols, the string is not copied, only the pointer. We should do the same for Dependency properties and events (and probably more things).

This should save a few KB (see 0002193)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2228 [NoesisGUI] Unity3D major always 2022-01-02 20:19 2022-01-05 15:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.3  
Platform: Any
Summary: XAML Not Found Error and Unicode Characters
Description: XAML containing certain Unicode characters causes Noesis to throw a cryptic XAML not found 'filename' error. The actual cause is the presence of certain Unicode characters.

Example 1:
<TextBlock Text="Å"/>

Example 2:
<!-- Å -->

[NOESIS/E] Assets/User Interface/UIStateMachine.xaml(27): Xaml not found 'filename' C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.2/Runtime/NoesisUnity.cs:357)
Noesis.GUI:LoadComponent (object,string) (at C:/Users/stons/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.1.2/Runtime/API/Core/NoesisGUI.cs:322)
Tags:
Steps To Reproduce: Add one of the following to an XAML file:

<TextBlock Text="Å"/>

OR

<!-- Å -->

I'm using default file encoding.
Additional Information:
Attached Files: UIStateMachine.xaml (2,248 bytes) 2022-01-04 17:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1573&type=bug
Encoding.png (23,558 bytes) 2022-01-04 17:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1574&type=bug
Notes
(0007706)
sfernandez   
2022-01-03 12:21   
I'm not able to reproduce this issue, could you attach a file that fails for you?
(0007707)
jsantos   
2022-01-03 13:28   
Also, make sure the XAML is saved with UTF8 encoding
(0007712)
stonstad   
2022-01-04 17:46   
Encl. associated XAML and VS encoding configuration for file.
(0007713)
jsantos   
2022-01-04 17:48   
Changing the encoding to UTF8 should fix the issue. We are only compatible with that encoding.
(0007714)
stonstad   
2022-01-04 21:45   
Understood. Thank you.
(0007715)
jsantos   
2022-01-05 10:31   
Please, let us know if we can close this.

Thank you!
(0007716)
stonstad   
2022-01-05 15:01   
Yes, and thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2141 [NoesisGUI] Unity3D major always 2021-10-06 20:17 2022-01-03 11:17
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Noesis 3.1.1 Upgrade Stuck in Import Loop
Description: Not sure if this is intended or if it will ever end. I'm on "iteration 43" 24 minutes into an asset upgrade (screenshot). Eventually I am going to kill it but I'm not sure if it is actually doing work. I doubt any kind of import process for XAML would take longer than 20 seconds.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: import.PNG (26,253 bytes) 2021-10-06 20:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1511&type=bug
import2.PNG (5,274 bytes) 2021-10-06 21:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1512&type=bug
connection.png (93,668 bytes) 2021-10-06 21:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1513&type=bug
N1.PNG (136,764 bytes) 2021-10-06 21:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1514&type=bug
N2.PNG (161,872 bytes) 2021-10-06 21:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1515&type=bug
N3.PNG (210,875 bytes) 2021-10-06 21:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1516&type=bug
N4.PNG (42,896 bytes) 2021-10-06 21:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1517&type=bug
SlowUnityUpgrade.diff (1,960 bytes) 2021-11-24 16:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1543&type=bug
a.png (21,345 bytes) 2021-12-03 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1551&type=bug
b.png (220,069 bytes) 2021-12-03 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1552&type=bug
c.png (39,147 bytes) 2021-12-03 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1553&type=bug
Notes
(0007505)
stonstad   
2021-10-06 21:27   
I force quit unity and I'm continuing w/ the upgrade.

New Error: I'm going through the Unity console errors generated by Noesis. First one is below.
(0007506)
stonstad   
2021-10-06 21:30   
Next error appears to be related to the prior behavior I saw in a 3.x upgrade. It says XAML is not found, but clearly it exists and should be found, maybe.
(0007508)
sfernandez   
2021-10-08 11:16   
Hi, we fixed several things regarding upgrade in 3.1.1 but it seems there are still more issues.
Would it be possible to get a copy of your project before upgrading, so we can debug what is happening during the upgrade process?
(0007509)
sfernandez   
2021-10-08 11:18   
And just as a confirmation, I guess you are installing NoesisGUI 3.1.1 using the Package Manager with our plugin unzipped outside your project Assets/ folder, right?
(0007511)
stonstad   
2021-10-08 18:43   
> And just as a confirmation, I guess you are installing NoesisGUI 3.1.1 using the Package Manager with our plugin unzipped outside your project Assets/ folder, right?
Yes, I did it correctly this time around.

> Would it be possible to get a copy of your project before upgrading, so we can debug what is happening during the upgrade process?
Yes. I made a mistake rolling back changes and I'm pulling down my game repository (100+GB) from GitHub and it going to take a long time... After it completes I'll see if I can provide a version that is the game with just XAML and image assets + scripts. Not sure what that would look like yet in terms of size.
(0007573)
sfernandez   
2021-11-16 13:12   
Hello, would still be possible to get a copy of your project before the upgrade to analyze this problem?
(0007578)
stonstad   
2021-11-17 00:12   
(Last edited: 2021-11-17 22:27)
Yes, thank you for reaching out. I will work to upload a project.

(0007587)
sfernandez   
2021-11-18 10:11   
Thanks a lot for the project, we will investigate what is happening to fix it as soon as possible.
(0007607)
sfernandez   
2021-11-24 16:17   
Hi, I've been testing the upgrade with your project and detected a few issues that were invalidating the same items many times, causing the process to take a lot of time to finish.
I managed to fix those problems, could you please test it yourself with the attached patch (changes only affect the scripts included in the Unity plugin).
(0007646)
stonstad   
2021-12-03 16:15   
Hey Sergio -- I am circling back to this problem. Do you know if this fix is likely to address the issue of XAML files not being found by GUI.LoadComponent("path")?
(0007647)
sfernandez   
2021-12-03 16:23   
The fix is only related to the upgrade process taking forever to finish.

The problem with xaml files not found it is more likely to be xamls that are being loaded in code and not referenced by the scene, so they are not available in the XamlProvider.
Are you instantiating UserControls in code?
(0007648)
stonstad   
2021-12-03 18:27   
I'm instantiating user controls in code while making sure to forward declare an XAML dependency. With 3.1.x it seems like I received a large number of 'XAML not found' errors, when in fact the file path is correct. If pathing doesn't change between 3.0.x and 3.1.x, why would I get these errors?

Yesterday, I started getting the same behavior in 3.0.x, which is new for me. (screenshot below). You can see the XAML declaration, and the associated error message. What is perplexing is that if I manually reimport the asset it works until the next time Unity restarts.

I am posting screenshots of pathing so that I can double-check. Maybe it is a path length issue.
(0007649)
stonstad   
2021-12-03 18:31   
(Last edited: 2021-12-03 18:33)
It is easy to misspell 'Communications' but if it is misspelled I am just not seeing it. To test pathing and rule out spelling I copied each path shown above and pasted them into the explorer to open the associated XAML file while navigated at the root folder of the project -- it works each time.

The complete file path length (C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\User Interface\Screens\Game\Overlay\Communications\CommunicationsControl.xaml.meta) is 163 characters. I guess we can rule that out.

(0007650)
stonstad   
2021-12-03 18:37   
(Last edited: 2021-12-03 18:44)
OK, when I reimported the single control, this time Noesis dumped runtime (not compile time) exceptions to the window caused by bad runtime logic. The logic is not invariant -- and fails on XAML preview. So I think my reproduction workflow is something like this:

1) A user control exists in a working state.
2) I introduce a code change which messes up compilation or runtime logic during preview.
3) A code change kicks off reimport of the user control, but the bug associated with #2 is hit
4) The XAML for the user control cannot be found, due to #2.
5) It fails silently and I am hunting down unrelated pathing issues.
6) Lastly, if I manually reimport the error is shown, and I can fix it OR the error only occurs in preview, in which case I am required to reimport the control.

Lastly, in 3.1.x, maybe more of my controls are failing during the preview stage, and that is why I had so many XAML not found errors.

Note that all of the above is on 3.0.x, not 3.1.x. I am commenting on a behavior that I see in both 3.0.x and 3.1.x.

Update: the bad logic was when I called _Root.FindName("name") with an invalid name. This happens easily due to refactoring or changes in XAML. It is something of an error prone workflow and I think the take away here is that a failed preview or incremental import -- whatever it is -- should not prevent the XAML from generating. Or if generation previously failed, it should continue to report that XAML cannot be generated.

(0007660)
sfernandez   
2021-12-07 17:31   
I think we should close this ticket about the import process.

And regarding the "XAML not found" issue, could you create a new ticket for that?
If you can provide reproduction steps in 3.1 version it would be better, becasue the code changed a lot from 3.0 and the import process is not the same.
(0007697)
stonstad   
2022-01-02 18:08   
Specific to this issue, I can confirm the upgrade from 3.0.x to 3.1.2 worked smoothly. All XAML controls were properly upgraded and the XAML not found behavior is resolved. Thank you!
(0007704)
sfernandez   
2022-01-03 11:17   
Glad to hear! thanks for the update.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2226 [NoesisGUI] Unity3D minor always 2021-12-31 21:37 2022-01-02 20:02
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis 3.1.2 Behavior
Description: I'm seeing new behavior in UIs which use code to assign X/Y positioning of elements within a canvas. I'm trying to understand what might be different in Noesis 3.1.x. It could be a user error on my part that is somehow manifest in Noesis 3.1.x.

- Did viewbox functionality change, or is there new scaling behavior?
- Did the behavior of FrameworkElement.LayoutTransform or FrameworkElement.RenderTransform change?
- Did behavior of ScaleTransform change?
- Does the NoesisPostprocessor import process behave differently than the prior importer, re: image centralization or transparent pixels?
- Did handling of negative margin values change?

I'll keep testing to see if I can identify a cause on my end.

Thanks,
Shaun
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: example.png (442,987 bytes) 2021-12-31 21:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1571&type=bug
Notes
(0007693)
stonstad   
2021-12-31 22:00   
(Last edited: 2022-01-02 18:05)
OK, disabling Noesis code (NoesisView 1349, _uiView.SetScale...) reverts behavior back to 3.0.x. What is the correct approach for disabling automatic scaling?

Separately, this raises other questions that I could not find answers to in documentation.

- How do I read the current scale factor used by the UI?
- Does the scale factor update dynamically when device scaling also changes (i.e. resolution change)?
- Do I have the ability to override this automatic scaling behavior via API, i.e. if I allow the end user to configure scaling behavior?
- Can this scaling behavior be disabled or is modification of Noesis source code the best approach?

Thanks,
Shaun

(0007700)
jsantos   
2022-01-02 20:02   
(Last edited: 2022-01-02 20:02)
Hi Shaun, as this is not a bug can we move this to the forums to continue the discussion? If there is something specific to be solved, then let's create a ticket. Thank you!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2197 [NoesisGUI] Unity3D crash random 2021-11-19 18:25 2022-01-02 19:30
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.3  
Platform: Any
Summary: Runtime Crash on KeyEventArgs_IsToggled
Description: Runtime crash occurred while playing game via editor.

Stack Trace:
Received signal SIGSEGV
Obtained 110 stack frames
0x00007ffffa7388b8 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffffa737977 (Noesis) QueryContinueDragEventArgs_GetKeyStatesHelper
0x00007ffffa7457b5 (Noesis) BaseComponent_GetStaticType
0x00007ffffa737699 (Noesis) QueryContinueDragEventArgs_GetKeyStatesHelper
0x00007ffffa738531 (Noesis) KeyEventArgs_IsToggled_get
0x00007ffffa772046 (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007ffffa77231d (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007ffffa7b3113 (Noesis) Color_GetStaticType
0x00007ffffa81aaf3 (Noesis) ItemsControl_ContainerFromElement__SWIG_0
0x00007ffffa7c4fad (Noesis) Noesis_GetPlatformID
0x00007ffffa7b3113 (Noesis) Color_GetStaticType
0x00007ffffa77e737 (Noesis) DependencyProperty_GetOwnerTypeHelper
0x00007ffffa7b3113 (Noesis) Color_GetStaticType
0x00007ffffa81aaf3 (Noesis) ItemsControl_ContainerFromElement__SWIG_0
0x00007ffffa7c4fad (Noesis) Noesis_GetPlatformID
0x00007ffffa7b3113 (Noesis) Color_GetStaticType
0x00007ffffa7bb542 (Noesis) BindingOperations_SetBinding
0x00007ffffa7b17ab (Noesis) Color_GetStaticType
0x00007ffffa7b65a4 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa8bf149 (Noesis) Boxed_VirtualizationCacheLength_GetStaticType
0x00007ffffa8bf24f (Noesis) Boxed_VirtualizationCacheLength_GetStaticType
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7b6a36 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa852e51 (Noesis) DragEventArgs_SetEffectsHelper
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7c75e9 (Noesis) Noesis_GetPlatformID
0x00007ffffa7c6490 (Noesis) Noesis_GetPlatformID
0x00007ffffa7c775a (Noesis) Noesis_GetPlatformID
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa759126 (Noesis) Uri_GetStaticType
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa8569f0 (Noesis) DragEventArgs_SetEffectsHelper
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7b6a36 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7c75e9 (Noesis) Noesis_GetPlatformID
0x00007ffffa7c6490 (Noesis) Noesis_GetPlatformID
0x00007ffffa7c775a (Noesis) Noesis_GetPlatformID
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7b6a36 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7c75e9 (Noesis) Noesis_GetPlatformID
0x00007ffffa7c642a (Noesis) Noesis_GetPlatformID
0x00007ffffa7c775a (Noesis) Noesis_GetPlatformID
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7c879e (Noesis) Noesis_GetPlatformID
0x00007ffffa7c77a9 (Noesis) Noesis_GetPlatformID
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7b6a36 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa759126 (Noesis) Uri_GetStaticType
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7b6a36 (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa930bc6 (Noesis) ManipulationCompletedEventArgs_FinalVelocities_get
0x0000022d184a8960 (Mono JIT Code) (wrapper managed-to-native) object:wrapper_native_00007FFFFA930BB0 (System.Runtime.InteropServices.HandleRef,Noesis.Size&,Noesis.Size&)
0x0000022d184a9fff (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_HandleRef_Size&_Size& (System.Runtime.InteropServices.HandleRef,Noesis.Size&,Noesis.Size&)
0x0000022d184a9404 (Mono JIT Code) [FrameworkElementExtend.cs:45] Noesis.FrameworkElement:MeasureOverride (Noesis.Size)
0x0000022d184a9158 (Mono JIT Code) [FrameworkElementExtend.cs:89] Noesis.FrameworkElement:CallMeasureOverride (Noesis.Size,Noesis.FrameworkElement/MeasureBaseCallback)
0x0000022d184a8d03 (Mono JIT Code) [Extend.cs:1974] Noesis.Extend:FrameworkElementMeasure (intptr,Noesis.Size&,Noesis.Size&,Noesis.FrameworkElement/MeasureBaseCallback)
0x0000022d177df083 (Mono JIT Code) (wrapper native-to-managed) Noesis.Extend:FrameworkElementMeasure (intptr,Noesis.Size&,Noesis.Size&,Noesis.FrameworkElement/MeasureBaseCallback)
0x00007ffffa9236c3 (Noesis) UnbindEvent_Clock_Completed
0x00007ffffa94379b (Noesis) ManipulationCompletedEventArgs_FinalVelocities_get
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa7c879e (Noesis) Noesis_GetPlatformID
0x00007ffffa7c77a9 (Noesis) Noesis_GetPlatformID
0x00007ffffa7b67ce (Noesis) BindingOperations_GetBindingExpression
0x00007ffffa89d484 (Noesis) SizeChangedInfo_WidthChanged_get
0x00007ffffa8a6cd1 (Noesis) ContentControl_Content_get
0x00007ffffa8a6aab (Noesis) ContentControl_Content_get
0x00007ffffa8a5250 (Noesis) ContentControl_Content_get
0x00007ffffa8a513a (Noesis) ContentControl_Content_get
0x0000022d184d942d (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)
0x0000022d184c9bc3 (Mono JIT Code) [View.cs:333] Noesis.View:Update (double)
0x0000022d184a63ab (Mono JIT Code) [NoesisView.cs:910] NoesisView:ExternalUpdateInternal ()
0x0000022d184a546b (Mono JIT Code) [NoesisView.cs:880] NoesisView:LateUpdate ()
0x0000022d18078ac8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007fffd9d7e034 (mono-2.0-bdwgc) [mini-runtime.c:3445] mono_jit_runtime_invoke
0x00007fffd9cbe724 (mono-2.0-bdwgc) [object.c:3064] do_runtime_invoke
0x00007fffd9cbe8bc (mono-2.0-bdwgc) [object.c:3111] mono_runtime_invoke
0x00007ff69b03bda4 (Unity) scripting_method_invoke
0x00007ff69b036a24 (Unity) ScriptingInvocation::Invoke
0x00007ff69b004464 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff69b00456c (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff69ab0a8d8 (Unity) BaseBehaviourManager::CommonUpdate<LateBehaviourManager>
0x00007ff69ab11d2a (Unity) LateBehaviourManager::Update
0x00007ff69ad1f17d (Unity) `InitPlayerLoopCallbacks'::`2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward
0x00007ff69ad0604c (Unity) ExecutePlayerLoop
0x00007ff69ad06123 (Unity) ExecutePlayerLoop
0x00007ff69ad0bd39 (Unity) PlayerLoop
0x00007ff69bc31a48 (Unity) PlayerLoopController::UpdateScene
0x00007ff69bc2fc97 (Unity) Application::TickTimer
0x00007ff69c06a13a (Unity) MainMessageLoop
0x00007ff69c06e95b (Unity) WinMain
0x00007ff69d37d602 (Unity) __scrt_common_main_seh
0x00007ff8c18454e0 (KERNEL32) BaseThreadInitThunk
0x00007ff8c286485b (ntdll) RtlUserThreadStart

Encl. logs and dump.
Tags:
Steps To Reproduce: TBD. This is the first time I have seen a crash at this stack location.
Additional Information:
Attached Files: Crash_2021-11-19_172103638.zip (1,653,607 bytes) 2021-11-19 18:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1539&type=bug
Noesis.dll (4,571,136 bytes) 2021-11-22 16:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1542&type=bug
Notes
(0007595)
sfernandez   
2021-11-22 11:49   
Are you using the official 3.0.12 libraries, or this happened using a patched library we provided? Do you recall which one?
(0007596)
stonstad   
2021-11-22 14:26   
Patched, I believe. I will attach the DLL when I am in the office.
(0007667)
sfernandez   
2021-12-10 13:53   
This is related to deleted textures (its native pointer), something we thought it was fixed: 0001871
Do you have a way to reproduce this now that we have your project to test it?
(0007675)
jsantos   
2021-12-15 16:45   
(Last edited: 2021-12-15 16:46)
Hi stonstad, 3.1.2 is almost ready. If you could indicate a way to reproduce this I think this will be included in the pre xmas release :)

(0007696)
stonstad   
2022-01-02 18:07   
I don't have a way to easily reproduce this behavior -- it appears randomly , unfortunately. I have migrated to 3.1.2.
(0007698)
jsantos   
2022-01-02 19:30   
Thank you, I am going to close this, please reopen or create a new ticket if you find the issue again.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2215 [NoesisGUI] C# SDK major always 2021-12-16 17:43 2021-12-21 13:08
Reporter: ARGeaslin Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.3  
Platform: Windows
Summary: WebBrowser v1.0.6 VKB
Description: There is no way at the moment to inject a value from the virtual keyboard into the focused web element of the web browser.
Tags:
Steps To Reproduce: - Navigate to a webpage with a text box, click to start entering text
- WebBrowser_VirtualKeyboardRequested fires as expected

Nothing in WebBrowser or VirtualKeyboardRequestedEventArgs gives a place to inject the string taken from our virtual keyboard
Additional Information:
Attached Files:
Notes
(0007691)
hcpizzi   
2021-12-21 13:08   
I've added a function public void InputText(string text) to WebBrowser.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2210 [NoesisGUI] C++ SDK minor always 2021-12-06 14:39 2021-12-20 21:27
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Hot reloading a control, losing focus of Unity, and going back into Unity reimports files again and breaks the UI
Description: Hot reloading works, but once I tab out and back into Unity, importing will happen again. This will always make my UI disappear, making hot reloading unusable for some controls. This does not happen with all controls.
Tags:
Steps To Reproduce: https://files.catbox.moe/45oh9s.mp4

Once I do the hot reload I then tab out and back into unity, triggering another import.
Additional Information:
Attached Files:
Notes
(0007674)
asusralis   
2021-12-15 04:49   
Is there any info on this? It actually gets really bad in larger projects. Changing a single value in an XAML forces the import for 10 - 15 files, and then losing and gaining focus of Unity does this again. This exactly project had none of these issues in 2.x.

https://files.catbox.moe/378irf.mp4
(0007680)
sfernandez   
2021-12-16 12:05   
Hi, we are currently studying this problem as we still have access to your project.

The first thing I noticed is that you have a folder named Unused with lots of xamls that are giving errors, and from the name of the folder it seems to me those are old files, couldn't you take them outside Assets to avoid getting undesired error messages?

Regarding the modification of CustomViews.xaml that triggers the import of the rest of xamls, that is happening because that xaml is a dependency of your ApplicationResources (Resources.xaml), and whenever that xaml gets reimported, all xamls need to be reimported as it is a dependency of all of them. The imports occurring after you regain focus on Unity is because Unity processes the import of dependencies in background processes when it determines it is appropriate.

Anyway, we'll investigate the hot-reloading of xamls after the reimport because we should be able to restore the state of the game without breaking things.
(0007681)
sfernandez   
2021-12-17 14:18   
We fixed a problem with hot-reloading initializing elements before setting its properties.

Apart from that your game logic is adding elements in code that get destroyed when xaml is reloaded.
For example, your MainGameBehavior is adding the MainMenu to the View on Start. You can hook to the Reloaded event there to add the menu again:
            if (MainView?.Content != null)
            {
                MainView.Content.Reloaded += (s, e) =>
                {
                    FrameManager.Get("Main").Push("MainMenu", new NavParams(hasAnimation: false, canBack: false));
                };
            }


And those dynamic elements added to the NavFrame, when that control gets reloaded will also be removed them from the "ContentRoot" grid because it gets filled with the "Overlay" button defined in the xaml. Wouldn't be better in that control to add the dynamic elements to a sibling of the "Overlay" button, something like this:
        <Grid>
            <Button
                x:Name="Overlay"
                Click="Overlay_Click"
                Visibility="Collapsed">
                <Button.Style>
                    <Style BasedOn="{StaticResource {x:Type Button}}" TargetType="Button">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="Button">
                                    <Grid Background="{TemplateBinding Background}" />
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Button.Style>
                <Button.Background>
                    <SolidColorBrush Opacity=".4" Color="Black" />
                </Button.Background>
            </Button>
            <Grid x:Name="ContentRoot"/>
        </Grid>

This way you don't even need to change the ZIndex of the Overlay button because the dynamic elements will always be added on top.
(0007682)
jsantos   
2021-12-17 15:17   
One of the things we have new in 3.X is that when the Application resources is modified (or any of its dependencies) *ALL* xamls are reimported (to get errors and thumbnails).

I don't know if we should consider having a way to disable this...
(0007683)
asusralis   
2021-12-17 15:20   
Sorry, I wasn't sure how to reply without reopening this ticket.

Thanks for the help! I didn't know about Reloaded, I will try to implement this for NavFrame to automatically recreate the page stack.

About the overlay, it is possible for some pages to behind the overlay. For example, if there are three pages and the top page has an overlay, the overlay would have to be between the second and third page. This is why I found it easier to set the ZIndex in the code behind. If this doesn't relate to what you were suggesting, can you explain how your example would be different? Thanks again!
(0007684)
jsantos   
2021-12-17 15:46   
We are measuring times again, probably reloading all XAMLs when the global dictionary changes was not a good idea...
(0007690)
jsantos   
2021-12-20 21:27   
Reloading of Xamls, including dependencies from Application resources should be now much faster.

Thanks for your feedback. Please, let us know about all issues you find with hot-reloading.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2217 [NoesisGUI] C++ SDK major always 2021-12-18 22:03 2021-12-20 19:49
Reporter: mdube Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Rendering artifacts after tabbing in tab controls
Description: Code that was working fine with 3.0.10 is now showing icons all over the place when toggling tabs with 3.1.1

I'm able to reproduce a variant in the xamltoy, please see attached files.
Tags:
Steps To Reproduce: Run the attached code (xamltoy.xaml) in XamlToy, click on the tabs (numbered 1 and 2) in the attached screenshot. After toggling a few times, incorrectly sized and positioned icons will show in the red circled areas from the same screenshot.
Additional Information:
Attached Files: xamltoy.xaml (426,500 bytes) 2021-12-18 22:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1566&type=bug
Screenshot 2021-12-18 160011.png (612,888 bytes) 2021-12-18 22:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1567&type=bug
Notes
(0007689)
sfernandez   
2021-12-20 19:49   
There was a problem with Path geometry transforms we introduced in 3.1 version, we fixed it for the following release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2128 [NoesisGUI] C++ SDK feature N/A 2021-09-23 12:32 2021-12-19 13:07
Reporter: Ryan Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Video support on PlayStation
Description: I would like to have video support on PS4 and Switch. Could you please figure out when we can have this feature on those platform?
Thanks,

Ryan
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007671)
jsantos   
2021-12-10 14:55   
I created a related ticket for Switch (targeting 3.1.3) as we already finished the implementation of video for PS4 for the version we are going to release next week.
(0007686)
jsantos   
2021-12-19 13:07   
PlayStation 4 and PlayStation 5 implemented


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2173 [NoesisGUI] C# SDK major always 2021-10-29 04:04 2021-12-16 12:29
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.3  
Platform: Linux
Summary: MediaPlayer: Unable to detect corrupt/invalid files
Description: When a corrupt file is loaded, the MediaFailed event is not fired. MediaOpened is fired instead.

I think that after setting the Source of a MediaElement, it should be a hard requirement that either MediaOpened or MediaFailed events be fired (this might already be the case). Also, detecting files that cannot be handled should be enhanced, and MediaOpened should only be raised if successfully read and it contains valid data.
Tags:
Steps To Reproduce: I did my testing with a zero-byte file. ("touch empty.mp4".) When I attempt to play it back, here's the result I get. Note that this is a mix of the Noesis logger, my logger (I'm logging all the events that MediaElement raises), and raw console output from 'mp'. Also note that MediaOpened event is raised, but MediaFailed is not.

2021-10-27 17:00:21.2142|TRACE|VideoPlaybackViewModel|MediaElementInitialized()
2021-10-27 17:00:21.2557|TRACE|VideoPlaybackViewModel|Initialize(empty.mp4) <--- This method sets MediaElement.Source
2021-10-27 17:00:21.2845|TRACE|VideoPlaybackViewModel|MediaElementHasLoaded() <--- This method calls my Play() method.
2021-10-27 17:00:21.2893|TRACE|VideoPlaybackViewModel|Play() <-- This method calls MediaElement.Play.
2021-10-27 17:00:21.3167|INFO|Noesis|'media/Internal/empty.mp4' loaded
(mp:10719): GLib-GObject-CRITICAL **: 17:00:21.419: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(mp:10719): GLib-GObject-WARNING **: 17:00:21.421: invalid (NULL) pointer instance
(mp:10719): GLib-GObject-CRITICAL **: 17:00:21.421: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(mp:10719): GLib-GObject-WARNING **: 17:00:21.421: invalid (NULL) pointer instance
(mp:10719): GLib-GObject-CRITICAL **: 17:00:21.421: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(mp:10719): GStreamer-CRITICAL **: 17:00:21.421: gst_object_unref: assertion 'object != NULL' failed
(mp:10719): GStreamer-CRITICAL **: 17:00:21.421: gst_pad_get_current_caps: assertion 'GST_IS_PAD (pad)' failed
(mp:10719): GStreamer-CRITICAL **: 17:00:21.421: gst_object_unref: assertion 'object != NULL' failed
2021-10-27 17:00:21.4732|TRACE|VideoPlaybackViewModel|MediaElement_MediaOpened()
ERROR Stream contains no data.
ERROR debug information: ../../../git/plugins/elements/gsttypefindelement.c(1132): gst_type_find_element_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind:
Can't typefind empty stream
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2035 [NoesisGUI] C++ SDK minor have not tried 2021-05-25 12:44 2021-12-16 01:09
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WindowState Maximized not working
Description: In the Application Framework for Windows there is the problem that a window that should be maximised at startup (WindowState=Maximized) is not correctly displayed maximized. If you maximize it later (e.g. due to an event) it works correctly. I have already checked the code, but could not find the error quickly.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2318
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007679)
jsantos   
2021-12-16 01:08   
At least in 3.1.2, I am not able to reproduce this in, for example, the HelloWorld sample.

This must have fixed, please reopen if necessary.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2201 [NoesisGUI] C++ SDK crash always 2021-11-28 09:43 2021-12-15 19:53
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Crash when applying style to custom control.
Description: Unity will crash once the editor imports everything - it doesn't need to use the control in-game. Removing ApplyTemplate() will avoid crashes after importing but will crash when showing the control (I'm pretty sure at least...?). I'm kind of getting random crashes everywhere while using this control.
Tags:
Steps To Reproduce:     public class ExpeditionMap : Control
    {
        public ExpeditionMap()
        {
            Loaded += (s, e) =>
            {
                ApplyTemplate();
            };

            DataContextChanged += (s, e) =>
            {
                
            };
        }

        static ExpeditionMap()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ExpeditionMap), new FrameworkPropertyMetadata(typeof(ExpeditionMap)));
        }
    }

    <Style TargetType="local:ExpeditionMap">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:ExpeditionMap">
                    <Grid>
                        <TextBlock Text="Hello!" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
Additional Information:
Attached Files: Crash_2021-11-28_083712163.7z (377,343 bytes) 2021-11-28 09:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1548&type=bug
Notes
(0007676)
sfernandez   
2021-12-15 18:05   
Hi, I see in the log the following error message while trying to run the static constructor for Shelter.Views.ExpeditionMap.:

[NOESIS/E] DependencyProperty 'NodeStyle' already registered to type 'Shelter.Views.LocationView'


Can you verify that the call to DependencyProperty.Register() has all the parameters fine? It seems that you are using typeof(LocationView) as owner instead of typeof(ExpeditionMap).

Anyway, I'll check our code to see why it is crashing when trying to register a duplicate property.
(0007677)
sfernandez   
2021-12-15 19:53   
I was able to reproduce the crash by defining 2 dependency properties with the same string name.
It will be fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2212 [NoesisGUI] C# SDK crash always 2021-12-07 18:27 2021-12-15 11:47
Reporter: ttermeer-rcg Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Extending GridViewColumnHeader cause Unity to crash
Description: When using a custom class for GridViewColumnHeader, Unity Editor crashes when the screen using the custom GridViewColumnHeader is displayed.
Tags: C#, Unity
Steps To Reproduce: * Create a new class that extends GridViewColumnHeader
* Use it inside a Grid View
Additional Information:
Attached Files: Editor.log (47,487 bytes) 2021-12-07 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1560&type=bug
crash.dmp (1,062,958 bytes) 2021-12-07 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1561&type=bug
SampleProject.zip (45,468 bytes) 2021-12-07 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1562&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2213 [NoesisGUI] Unreal feature always 2021-12-09 10:44 2021-12-14 13:31
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: No way to call RaiseCanExecuteChanged for wrapped commands in UE4
Description: It seems, there is no obvious way to get a NoesisFunctionWrapper for a MVVM command and call RaiseCanExecuteChanged for it.
Tags: C++, UE4
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007673)
hcpizzi   
2021-12-14 13:31   
Two native functions have been added:

NOESISRUNTIME_API void NoesisNotifyCanExecuteFunctionChanged(class UObject*, FName);
NOESISRUNTIME_API void NoesisNotifyCanExecuteFunctionChanged(class UObject*, class UFunction*);

It's also been exposed for Blueprints in NoesisFunctionLibrary as:

 void NotifyCanExecuteFunctionChanged(UObject* Owner, FName FunctionName);

The functions get the wrapper for the command and invoke RaiseCanExecuteChanged.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2147 [NoesisGUI] C# SDK crash always 2021-10-13 10:50 2021-12-10 15:16
Reporter: relife87 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Unable to start .NET 5 app in linux (XDisplay)
Description: From forum post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2446

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 2021-10-14 025315.jpg (124,480 bytes) 2021-10-14 01:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1518&type=bug
Notes
(0007512)
hcpizzi   
2021-10-13 11:09   
Sorry, just to clarify a few points:

- You're using WSL, right? Is it WSL 1 or 2?
- You can run other GUI applications on WSL.
- Which Linux distribution are you using?

Thanks
(0007513)
relife87   
2021-10-13 17:32   
(Last edited: 2021-10-13 18:31)
- version 2
- yes, i'm configured Xming and check this on default x11 programs - xcalc, xclock and firefox
- Ubuntu 20.04.3 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)

message in forum contains two problems,
- XDisplay return zero if you not change parameter XOpenDisplay(null); to content output from $DISPLAY variable from console command
- library .dll not correct working call on linux

please say me if second problem need created to another thread - this critical for my project, i'm cannot testing application

Thanks

(0007514)
hcpizzi   
2021-10-13 23:17   
Another question: Are you able to run OpenGL applications, such as glxgears?
(0007515)
relife87   
2021-10-14 01:53   
(Last edited: 2021-10-14 02:01)
yes.... may-be i'm run app from VS 2022 (target WSL for debug) and this make problem display cannot auto identity x11, i'm tryed first run application from Virtual Box VM on Ubuntu, but after crash without exception - using debug with WSL from VS 2022

(0007516)
hcpizzi   
2021-10-14 16:57   
(Last edited: 2021-10-14 16:59)
I've been able to run our samples using WSL2 and our 3.1.1 NuGet packages.

However, even though it worked for me, I've made two changes that will be part of the next release:

- We were passing "" as an argument to XOpenDisplay. I've changed the parameter to null. When a null pointer is passed to XOpendDisplay it uses the value of the DISPLAY environment variable. It is working for me using "", but the new code is more correct.
- I've made changes to the OpenGL/GLX/X11 DllImports to explicitly state the version of the so, so that you don't need libGLX.so, just libGLX.so.0 and so on. I could get around this by creating the symlinks, but it's more correct this way.

I didn't see any problems with Noesis_GetCurrentThreadId. The version of libNoesis.so has those functions and they work correctly.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2126 [NoesisGUI] Unreal crash unable to reproduce 2021-09-21 11:12 2021-12-10 15:15
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Cannot build the UE4 plugin 3.1.1
Description: Hi guys, I'm not sure if something is wrong with my system, but I am trying to update to 3.1.1, and I cannot compile the plugin for my project.

I tried with the example project, it also doesn't work.

I tried reinstalling UE4.26, also didn't work.

Bellow is the output log.

Wondering if anyone else has this problem


Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp] [Line: 475] Pure virtual function being called

UE4Editor_Core
VCRUNTIME140
UE4Editor_NoesisRuntime!NoesisNotifyArrayPropertyChanged() [D:\git\UI\Plugins\NoesisGUI\Source\NoesisRuntime\Private\NoesisTypeClass.cpp:3257]
UE4Editor_NoesisRuntime!UNoesisFunctionLibrary::NotifyArrayChanged() [D:\git\UI\Plugins\NoesisGUI\Source\NoesisRuntime\Private\NoesisFunctionLibrary.cpp:35]
UE4Editor_NoesisRuntime!UNoesisFunctionLibrary::execNotifyArrayChanged() [D:\git\UI\Plugins\NoesisGUI\Intermediate\Build\Win64\UE4Editor\Inc\NoesisRuntime\NoesisFunctionLibrary.gen.cpp:49]
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_NoesisRuntime!NoesisFunctionWrapper::Execute() [D:\git\UI\Plugins\NoesisGUI\Source\NoesisRuntime\Private\NoesisTypeClass.cpp:1547]
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
Noesis
UE4Editor_NoesisRuntime!UNoesisInstance::NativeOnTouchEnded() [D:\git\UI\Plugins\NoesisGUI\Source\NoesisRuntime\Private\NoesisInstance.cpp:1068]
UE4Editor_UMG
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisTypeClass.cpp-2.patch (2,069 bytes) 2021-09-22 10:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1499&type=bug
NoesisTypeClass.cpp (109,579 bytes) 2021-09-27 12:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1506&type=bug
Notes
(0007471)
hcpizzi   
2021-09-22 10:10   
Hi,

We finally figured out what the real problem was that was causing this crash and could reproduce it locally. Please, try this patch and let us know if the problem still persists.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2130 [NoesisGUI] Unreal crash always 2021-09-24 13:45 2021-12-10 15:14
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Crash in SetPropertyByRef when Input is null
Description: SetPropertyByRef and the underlying setters don't do enough validation on the Input parameter, including checking for null.
Tags:
Steps To Reproduce: Load the Buttons sample.
Open the View Blueprint
Add an input parameter to the StartCommand function
Run the sample and press the Start button
Additional Information:
Attached Files: NoesisTypeClass.cpp.patch (5,480 bytes) 2021-09-24 14:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1504&type=bug
Notes
(0007480)
hcpizzi   
2021-09-24 13:47   
Added null Input check to SetPropertyByRef, except for UObject properties (it's OK to assign null to an UObject*).

Added additional type validation to the underlying setters.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2155 [NoesisGUI] C# SDK major always 2021-10-21 17:02 2021-12-10 15:01
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Linux
Summary: Tearing during video playback on ARM64 Ultrascale HW
Description: Tearing during video playback on ARM64 Ultrascale HW

Waygate TFS bug #28637
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2174 [NoesisGUI] C# SDK major always 2021-10-29 04:37 2021-12-10 14:59
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.3  
Platform: Linux
Summary: MediaPlayer: Errors when calling methods rapid-fire
Description: I'm getting various errors when I call various methods on MediaElement rapid-fire.

I haven't tried every combination, but I have found this:
- Pause() followed by setting Position: This causes playback to stop working, and the last displayed frame stays on the screen. Loading a different video seems to reset things.
- Multiple sets of Position: MediaFailed event gets raised, with a null e.ErrorException. The majority of the time, a later call to Play() succeeds, but sometimes it does cause playback to stop working.

I could implement a wrapper around MediaElement to check for these timing requirements, and wait until the required time is elapsed, but I would need to know which combinations of methods cannot be called rapid-fire, and I'd need some way to know when it's good to call the method again. I could just implement a hard 3 second delay between each call, but the actual time required is probably different for different video files, so a real solution would probably involve interacting with the 'mp' utility to know when it's safe to call again.
Tags:
Steps To Reproduce: My testing code: Start a video playing, and then run this method:

public async void OddballTest()
{
    logger.Trace("OddballTest(): About to Pause");
    MediaElement.Pause();
    DELAY_OF_SOME_SORT_1

    TimeSpan startingPosition = MediaElement.Position;

    for (int i = 1; i <= 5; i++)
    {
        logger.Trace("OddballTest(): About to Position +=");
        MediaElement.Position = startingPosition + i * TimeSpan.FromSeconds(10);
        DELAY_OF_SOME_SORT_2
    }
    logger.Trace("OddballTest(): About to Play");
    MediaElement.Play();
    logger.Trace("OddballTest(): Done");
}


- DELAY_OF_SOME_SORT_1 = nothing, DELAY_OF_SOME_SORT_2 = nothing: Playback freezes up, always. Usually there's MediaFailed events, sometimes not. e.ErrorException is always null.
- DELAY_OF_SOME_SORT_1 = await Task.Delay(10000), DELAY_OF_SOME_SORT_2 = nothing: Usually MediaFailed events, sometimes not. Sometimes the call to Play() succeeds and resumes video playback, sometimes it takes a couple calls to Play/Pause/Play/Pause/Play.
- DELAY_OF_SOME_SORT_1 = await Task.Delay(3000), DELAY_OF_SOME_SORT_2 = await Task.Delay(3000): Works perfectly. Able to see the intermediate frames as it steps forward in the video 5 times, and playback resumes properly.
- I tried a very short delay: ThreadSwitcher ResumeBackground followed immediately by ResumeForeground, which should be a single iteration of the main Render loop. Same behavior as no delay at all.
- I tried a slightly longer delay: await Task.Delay(20), slightly longer than 1 frame. Results were the same as no delay.

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2184 [NoesisGUI] C# SDK minor always 2021-11-10 16:11 2021-12-10 14:20
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Rendering offscreen doesn't seem to apply styles exactly the same as rendering to the screen
Description: I have these styles...

    <Style x:Key="StandardTextStyle" TargetType="{x:Type TextBlock}">
        <Setter Property="FontSize" Value="20" />
        <Setter Property="Foreground" Value="{StaticResource ControlForegroundBrush}" />
        <Setter Property="FontWeight" Value="Regular" />
        <Setter Property="HorizontalAlignment" Value="Center" />
        <Setter Property="VerticalAlignment" Value="Center" />
    </Style>

    <Style x:Key="MeasurementTextStyle" TargetType="{x:Type TextBlock}" BasedOn="{StaticResource StandardTextStyle}">
        <Setter Property="FontSize" Value="28" />
    </Style>

When rendering this XAML to the screen, the FontSize is correct (28)

                        <TextBlock
                            Text="{Binding LetterLabel}"
                            Margin="2"
                            Style="{StaticResource MeasurementTextStyle}"/>
                        <TextBlock
                            Text="{Binding FormattedResultInCurrentUnits}"
                            Margin="2"
                            Style="{StaticResource MeasurementTextStyle}"/>
                        <TextBlock
                            Text="{i18n:TranslateBinding Path=UnitsLabel}"
                            Margin="2"
                            Style="{StaticResource MeasurementTextStyle}"/>
                    </StackPanel>

But when rendering offscreen to save as a file, the FontSize is not correct (20)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007566)
sfernandez   
2021-11-11 11:35   
Where are those styles defined? In the Application Resources?
If they are part of the one of the application views, and the offscreen rendering is done using other root, then it won't be able to find those styles.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1669 [NoesisGUI] Unity3D minor always 2020-04-25 15:52 2021-12-10 03:23
Reporter: tkaczz Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Can't use NoesisView with Unity 2019.3.x + URP's Post Processing
Description: Very precisely described in forum post
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1950
Tags: Unity, Unity LWRP, Unity SRP
Steps To Reproduce: 1. Create URP project
2. Create and save even very basic xaml file like this
<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Border Background="Red" />
</Grid>
3. Add NoesisView component to first base camera
3.1 Set NoesisView Xaml to use that Xaml
4. Create PostProcessing asset
4.1 Add for example vignette effect
5. Add Volume component and set to use previously created PostProcessing asset
6. Be sure that NoesisView and Volume are On
7. Play scene
8. Post processing is not working with NoesisView

Expected behaviour
PostProcessing should be displayed over NoesisView content by default
Additional Information:
Attached Files: buttons-noesis.png (265,827 bytes) 2020-04-25 16:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1216&type=bug
URP_CameraStacking.jpg (95,740 bytes) 2021-12-10 03:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1565&type=bug
Notes
(0006275)
tkaczz   
2020-04-25 16:17   
(Last edited: 2020-04-25 16:17)
Now this is even more interesting...
Used xaml
<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
    <Button Width="150" Height="150" Content="Sample button 1" Background="Red" />
    <Button Width="150" Height="150" Content="Sample button 2" Background="Green" />
  </StackPanel>
</Grid>

(0006277)
jsantos   
2020-04-27 12:11   
I didn't have time to investigate this. Will do it soon.

Could you elaborate about what you mean with "interesting" ?

Thanks for your feedback!
(0006280)
tkaczz   
2020-04-27 12:51   
(Last edited: 2020-04-27 12:52)
Post processing is working with xaml, but not when any image is being rendered or anything on full screen?

(0007666)
jsantos   
2021-12-10 03:23   
We fixed this. I am attaching a preview of the documentation.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1826 [NoesisGUI] Unity3D major always 2020-10-30 19:21 2021-12-10 03:16
Reporter: kokolihapihvi Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: HDRP render texture overlap / stacked cameras not rendering
Description: I ran into 0001811 while adding a render texture view to a scene.
Applying the fix provided in 0001811:0006699 fixed the overlap problem, but stopped stacked UI cameras from rendering.
UI is still interactable, but not visible.

We use stacked cameras to switch between multiple complex views, one being active at a time on top of the main camera.

Unity 2019.4.10f1, HDRP 7.3.1
Tags: Unity HDRP
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006713)
jsantos   
2020-10-30 20:16   
Thanks for reporting this, last time we tried the integration with stacked cameras we found a few bugs. I hope Unity fixed all the problems and we can have this properly solved.
(0007663)
jsantos   
2021-12-10 03:16   
Stacking cameras are not supported in HDRP, but we added support for manually selecting the injection point (before or after the post-processing) using Custom Passes. The documentation will give more detail but basically the steps are:

1. Attach a 'Custom Pass Volume' to the camera
2. Set 'Mode' to 'Camera'
3. Set 'Target Camera' to the same camera
4. Select 'Injection Point' (only 'Before Post Process' or 'After Post Process' makes sense)
5. Add a Custom Pass of type 'NoesisCustomPass'
6. Set 'Clear Flags' to 'Stencil'

If you don't need this for tweaking the post processing then we don't recommend using more than one camera. Just use a single Noesis view and add content dynamically to the root.

Please, let us know (at the forums) if you need more information about this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2192 [NoesisGUI] Unity3D crash always 2021-11-17 08:40 2021-12-08 11:40
Reporter: nvonhertzen Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: XboxOne
Summary: Unity xboxone crash
Description: Running the Hello world sample app crashes with "[0xBD87C098] ID3D12GraphicsCommandList(Graphics)::DrawIndexedInstanced: All viewports are currently invalid, as they have not been set via RSSetViewports since command list recording started." when running on xboxone.

Tested with Noesis 3.1.1, Unity 2021.2.0b11, and GDK version April 2021 GXDK QFE 2.

There appears to be another crash message when the view contains a DropShadowEffect ("[0xBE70402B] ID3D12CommandQueue(Graphics)::ExecuteCommandLists: Render target 0 resource (0x0000000200405D00 "Noesis_Pyramid_Up_L0") state is PIXEL_SHADER_RESOURCE (0x80) but it is expected to contain RENDER_TARGET (0x4)."), but neither render anything before crashing.
Tags:
Steps To Reproduce: 1. Create new Unity project with the Hello World sample
2. Build and run on Xboxone, observe the crash
Additional Information:
Attached Files: 192.168.1.121_Image_0.png (180,783 bytes) 2021-12-07 12:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1558&type=bug
MainWindow.xaml (20,149 bytes) 2021-12-07 12:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1559&type=bug
Notes
(0007579)
jsantos   
2021-11-17 12:38   
(Last edited: 2021-11-17 12:42)
I will check ASAP, this is weird because 'Hello World' was the example we were continuously testing when implementing D3D12 support for both Xbox One and Xbox Series on Unity. So this could be a misalignment of Unity Version / GDK Version. I will verify.

And the same example works in Xbox Series?

The DropShadowEffect error is a different thing we are working on (probably related to 0002190)

(0007580)
nvonhertzen   
2021-11-17 13:01   
I haven't had a chance to test on Xbox series yet (don't have access to a kit atm). Unreal/Native xboxone/series work fine for us, just having issues with unity.
(0007659)
jsantos   
2021-12-07 12:54   
(Last edited: 2021-12-07 12:54)
Just tried this with the latest Unity plugin (https://forum.unity.com/threads/unity-2021-2-3f1-32358a8527b4.1199941/)
 - Unity 2021.2.3f1
 - [2021.06 Update 4] - Microsoft GDK (10.0.19041.7032)

and everything is working as expected. i just modified the HelloWorld sample a bit to also apply a DropShadowEffect and let the background transparent so I can verify Unity rendering is not corrupted. I am attaching both the xaml and the screenshot from the xbox_one.

(0007661)
nvonhertzen   
2021-12-08 05:48   
Thanks, we'll try with those versions to see if we can still replicate the issue


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2125 [NoesisGUI] C++ SDK major always 2021-09-20 22:50 2021-12-06 18:19
Reporter: Ringo Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Sample code is not energy-efficient
Description: Integration samples and NoesisApp framework are rendering at maximum framerate, even when nothing is changing on a screen.

While I understand those are just examples and many games render at maximum framerate by design anyway,
I think the code should be fixed, because:
- Users will copy the code as is and do not realize it can be improved;
- It is a shame sample code do not promote one of the strongest selling points of NoesisGUI;
- Currently there are some subtle issues with variable framerate in NoesisGUI, probably because such code path is not tested much;
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007467)
jsantos   
2021-09-21 13:49   
(Last edited: 2021-09-21 13:52)
Our application framework is doing this on purpose because this is the typical scenario for videogames. We have plans to create a specific example showcasing render on demand. For that we need extra things on the application framework (we need to detect the sync rate and sleep, this is natively available in many platforms like Choreographer in Android - we are already using it -).

Could you please elaborate about 2 ( It is a shame sample code do not promote one of the strongest selling points of NoesisGUI) and 3 (Currently there are some subtle issues with variable framerate in NoesisGUI)?

(0007638)
Ringo   
2021-12-03 11:58   
Sample code I've mentioned is ApplicationLauncher\Src\Window.cpp, it doesn't use the return value of Noesis::IRenderer::UpdateRenderTree() to skip render.

As for my code, it is not easy to reproduce properly, but the issue I am having is:
When rendering on demand, there are occasional spikes in performance of Noesis::IRenderer::Render()/RenderOffscreen().

Jank happens after somewhat long periods of update w/o render.
The typical timeline is:
* .......
* update, skipped render (0ms)
* update, skipped render (0ms)
* update, skipped render (0ms)
* update, skipped render (0ms)
* update, render (30ms) // abnormally long render
* update, render (2ms) // back to normal
* update, render (2ms)
* update, render (2ms)
* .......
(0007639)
Ringo   
2021-12-03 12:07   
If I do not use the return value of Noesis::IRenderer::UpdateRenderTree() to skip render, then there is no jank. The performance is consistent.
(0007653)
jsantos   
2021-12-06 14:49   
When skipping rendering, I assume *only* Render() and RenderOffscreen() are skipped, right? You should keep invoking Update and UpdateRenderTree consistently.
(0007658)
Ringo   
2021-12-06 18:19   
Yes, Update and UpdateRenderTree are invoked consistently on vsync signal.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2095 [NoesisGUI] Unity3D major always 2021-08-26 19:56 2021-12-06 17:33
Reporter: nvonhertzen Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.2  
Platform: Switch
Summary: Switch Unity rendering occasionally flickers
Description: Any UI that I've tested so far seems to have an occasional flicker with Noesis on Unity Switch. See example in the video.
Tags:
Steps To Reproduce: 1. Download Noesis Unity 3.1.0 package
2. Create a new unity project, import package
3. Import the Hello world sample
Additional Information:
Attached Files: flicker.mp4 (1,014,708 bytes) 2021-08-26 19:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1475&type=bug
Notes
(0007385)
jsantos   
2021-08-26 20:27   
Could you please indicate versions for Unity and Nintendo SDK ? Thanks
(0007388)
rg_moliver   
2021-08-27 00:13   
(Last edited: 2021-08-27 19:42)
Unity 2020.3.16f1 and Nintendo SDK 11.4.3

(0007390)
nvonhertzen   
2021-08-27 05:30   
* Nintendo SDK 11.4.3
I've tested with both 2020.3.1f1 and 2020.3.13f1
(0007428)
jsantos   
2021-09-10 14:08   
I am not able to reproduce this with the latest stable SDK and Unity addon:
- SDK 12.3.7
- Unity2021.1.19

I will try with 2020
(0007430)
jsantos   
2021-09-10 16:31   
(Last edited: 2021-09-10 16:31)
I tried with SDK 11.4.3 and Unity2020.3.16f1 and still not able to reproduce the flickering... tried with both Debug and Profile versions of Noesis, with Development and Non-development Unity builds, enabling low-level graphics debugger + Draw validation with no luck.

I am going to need more feedback about this.

(0007657)
jsantos   
2021-12-06 17:33   
Please, reopen if needed.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2131 [NoesisGUI] C++ SDK major always 2021-09-24 15:55 2021-12-06 17:06
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: 100KB of stack space used for parsing property paths
Description: Hi guys, we're getting crashes on PS4 due to runing out of stack space when parsing a path, I've attached the callstack from where the issue begins.

So the issue starts when we invoke the following:

bool PropertyPath::UpdatePathItems() const
{
    if (!mPath.Empty() && mPathItems.Empty())
    {
        Parser<> parser(mPath.Str());
        PE::PropertyPathExpr expr;
        ParseResult pr = parser.TryParseFull(expr);

mPath.Str() is "(UIElement.Opacity)"

At this point, sizeof(expr) is 7072 bytes, which primarily consists of 2320 bytes of CollectionPath and 4752 bytes of CombinedPath.

This then gets tripled in CombinedPath::TryParse


    template<class SkipExpr>
    ParseResult TryParse(const ParserSource<SkipExpr>& input)
    {
        typedef Seq5<AnyIdentifier, Ch<':'>, AnyIdentifier, Ch<'.'>, AnyIdentifier>
            PropertyWithPrefix;
        typedef Seq3<AnyIdentifier, Ch<'.'>, List<AnyIdentifier, Ch<'.'>, 12>>
            PropertyWithNamespaces;
        typedef Seq3<Ch<'('>, Or<PropertyWithPrefix, PropertyWithNamespaces>, Ch<')'>>
            QualifiedProperty;
        typedef Or<AnyIdentifier, QualifiedProperty> Property;

        List<Or<Indexer, Seq<Property, Opt<Indexer>>>, Ch<'.'>, NumItems> expr;


sizeof(expr) is now 24,080 bytes. This then gets quadrupled in List::TryParse

struct List
{
    template<class SkipExpr>
    ParseResult TryParse(const ParserSource<SkipExpr>& input)
    {
        Seq<Item, Star<Seq<Separator, Item>>> expr;


sizeof(expr) is now 99,536 bytes.


This blows up our stack and we run out of space. We've recently reduced our stack from 1MB to 384KB and this issue has arisen. We can temporarily patch this up by reducing the numbers somewhat so PropertyPath isn't 7kB to begin with which is what I think we're going to try.

Is there any way you could look at the usage of stack space so we don't require so much space? That would be much appreciated. Alternatively, can you suggest any workaround for the time being? Do you think it's safe to tweak the static counts in the CombinedPath and CollectionPath structs? Are there any hard limits to adhere to the WPF standards, or are these numbers ones you found worked well?

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: callstack.txt (10,086 bytes) 2021-09-24 15:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1505&type=bug
Notes
(0007481)
jsantos   
2021-09-27 14:13   
For efficiency purposes we are abusing the stack in many places but 100KB is too much. :) We will fix the expression.

Thanks!
(0007654)
jsantos   
2021-12-06 17:05   
The CombinedPath was taking 137776 bytes (7072 --> 7088 --> 24080 -> 99536).

We fixed this to have both paths under 10 Kb (6832 -> 2464 [CombinedPath] and 6832 -> 4152 [CollectionPath]).

This also brings performance optimizations as extra copies are avoided.

I consider this fixed, please reopen if necessary.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2203 [NoesisGUI] Unity3D major sometimes 2021-12-02 18:53 2021-12-06 14:59
Reporter: rachelle Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis DLL not found exception after 3.1.0 upgrade
Description: After upgrading to Noesis 3.1.0, some folks are getting this error spammed in the Unity editor.

DllNotFoundException: Noesis
Noesis.GUI.UpdateInspector () (at Packages/com.noesis.noesisgui/Runtime/API/Core/NoesisGUI.cs:61)
NoesisEditor+<>c.<.cctor>b__0_0 () (at Packages/com.noesis.noesisgui/Editor/NoesisEditor.cs:9)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <97cf4a1854994d3e8abd9a503bfdbeb8>:0)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007632)
sfernandez   
2021-12-02 19:50   
Please try with the following library: https://drive.google.com/file/d/1LPJHWLMJOsHtR91yVn79qAqBP-ci6y3T/view?usp=sharing
(0007635)
rachelle   
2021-12-03 02:01   
Using this library resolved the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2204 [NoesisGUI] Unity3D major sometimes 2021-12-02 18:54 2021-12-06 14:59
Reporter: rachelle Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Asset import failed error after 3.1.0 upgrade
Description: After upgrading to Noesis 3.1.0, some folks are getting this error spammed in the Unity editor.

Asset import failed, "Packages/com.noesis.noesisgui/Theme/NoesisTheme.Brushes.LightOrange.xaml" > DllNotFoundException: Noesis
Noesis.XamlProvider.Extend (System.String typeName) (at Packages/com.noesis.noesisgui/Runtime/API/Proxies/XamlProvider.cs:60)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <695d1cc93cca45069c528c15c9fdd749>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <695d1cc93cca45069c528c15c9fdd749>:0)
Noesis.Extend.RegisterNativeType (System.Type type, System.Boolean registerDP) (at Packages/com.noesis.noesisgui/Runtime/API/Core/Extend.cs:1270)
Noesis.Extend.EnsureNativeType (System.Type type, System.Boolean registerDP) (at Packages/com.noesis.noesisgui/Runtime/API/Core/Extend.cs:1629)
Noesis.Extend.EnsureNativeType (System.Type type) (at Packages/com.noesis.noesisgui/Runtime/API/Core/Extend.cs:1621)
Noesis.Extend.NewCPtr (System.Type type) (at Packages/com.noesis.noesisgui/Runtime/API/Core/Extend.cs:4616)
Noesis.BaseComponent.CreateExtendCPtr (System.Type type, System.Boolean& registerExtend) (at Packages/com.noesis.noesisgui/Runtime/API/Proxies/BaseComponentExtend.cs:85)
Noesis.BaseComponent.CreateCPtr (System.Type type, System.Boolean& registerExtend) (at Packages/com.noesis.noesisgui/Runtime/API/Proxies/BaseComponentExtend.cs:79)
Noesis.BaseComponent..ctor () (at Packages/com.noesis.noesisgui/Runtime/API/Proxies/BaseComponentExtend.cs:17)
Noesis.XamlProvider..ctor () (at Packages/com.noesis.noesisgui/Runtime/API/Proxies/XamlProvider.cs:31)
NoesisXamlProvider..ctor () (at Packages/com.noesis.noesisgui/Runtime/NoesisProviders.cs:14)
NoesisXamlProvider..cctor () (at Packages/com.noesis.noesisgui/Runtime/NoesisProviders.cs:12)
Rethrow as TypeInitializationException: The type initializer for 'NoesisXamlProvider' threw an exception.
NoesisXaml.RegisterDependencies () (at Packages/com.noesis.noesisgui/Runtime/NoesisXaml.cs:26)
NoesisXamlImporter.OnImportAsset (UnityEditor.AssetImporters.AssetImportContext ctx) (at Packages/com.noesis.noesisgui/Editor/NoesisXamlImporter.cs:311)
UnityEditor.AssetImporters.ScriptedImporter.GenerateAssetData (UnityEditor.AssetImporters.AssetImportContext ctx) (at <97cf4a1854994d3e8abd9a503bfdbeb8>:0)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007633)
sfernandez   
2021-12-02 19:50   
Please try with the following library: https://drive.google.com/file/d/1LPJHWLMJOsHtR91yVn79qAqBP-ci6y3T/view?usp=sharing
(0007636)
rachelle   
2021-12-03 02:02   
Using this library resolved the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2208 [NoesisGUI] C# SDK major always 2021-12-03 22:25 2021-12-06 14:44
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Can't convert '' into a 'ResourceDictionary' object
Description: I'm getting the following error repeatedly on imports and Unity player start:

[noesis] Assets/NoesisGUI/Theme/NoesisTheme.Brushes.DarkBlue.xaml(13): Can't convert '' into a 'ResourceDictionary' object.

What is so strange about this is that my SCM shows no XAML changes today. I left my computer and when I returned this error appeared after starting unity. I can confirm no changes in the above mentioned XAML, and no changes in the XAML which references it.

Is the error, "Can't convert '' into a 'ResourceDictionary' object" something you have seen before?
Tags:
Steps To Reproduce: Attached screenshot
Additional Information:
Attached Files: a.png (261,822 bytes) 2021-12-03 22:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1554&type=bug
Line13.png (1,446,366 bytes) 2021-12-03 23:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1555&type=bug
Notes
(0007651)
stonstad   
2021-12-03 23:06   
Regarding this error -- you can see line endings on the left. It shows CRLF consistently. On the right, you can see the stream of XAML importer or runtime errors relating to something on line 13 in the XAML. I haven't found a way to work around this -- it affects this file and one other (which comes later in the sequence). I'm currently dead in the water. Very frustrating!
(0007652)
stonstad   
2021-12-03 23:56   
This was resolved by deleting \library and obj, and letting the project entirely rebuild. Noesis was the only component erroring out -- but as to how or why I do not know.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2150 [NoesisGUI] C++ SDK crash always 2021-10-16 05:40 2021-12-03 13:16
Reporter: satorp Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Sample applications crash on startup
Description: I tried the 3.1.1 indie SDK on a machine and the sample applications keep crashing on startup (see the exception and call stack below). The machine GPU does not support DX12 level features, so maybe the cause is fallback failure. I'm not sure if the default renderer (D3D12) is supposed to be compatible with all DX11 GPUs (It seems to work well on another machine with DX11 GPU). I've also uploaded the DxDiag result. By the way we haven't used the D3D12 renderer in our production code, so this issue does not affect us now.

-------------------------------------------------------------------------------------
Exception thrown: read access violation.
page->buffer was nullptr.

NoesisApp.dll!NoesisApp::D3D12RenderDevice::AllocatePage(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer) Line 1159
NoesisApp.dll!NoesisApp::D3D12RenderDevice::MapBuffer(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer, unsigned int size) Line 1297
NoesisApp.dll!NoesisApp::Window::Render(double time) Line 234
NoesisApp.dll!NoesisApp::DisplayLauncher::Run::__l2::<lambda>(NoesisApp::Display * __formal) Line 44
[Inline Frame] NoesisApp.dll!Noesis::Delegate<void __cdecl(NoesisApp::Display *)>::operator()(NoesisApp::Display *) Line 172
NoesisApp.dll!NoesisApp::Win32Display::EnterMessageLoop(bool runInBackground) Line 479
NoesisApp.dll!NoesisApp::DisplayLauncher::Run() Line 49
[Inline Frame] Samples.HelloWorld.exe!NsMain(int argc, char * * argv) Line 81
Samples.HelloWorld.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) Line 36
---------------------------------------------------------------------------------------
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: DxDiag-IntelHD4400.txt (19,529 bytes) 2021-10-16 05:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1519&type=bug
bug2150-debug-logtrace.txt (14,824 bytes) 2021-11-25 14:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1546&type=bug
bug2150-debug-callstack.txt (1,056 bytes) 2021-11-25 14:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1547&type=bug
bug2150-badalloc-NoesisHelloWorld.txt (1,748 bytes) 2021-12-01 07:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1549&type=bug
bug2150-badalloc-D3D12HelloTriangle.txt (1,180 bytes) 2021-12-01 07:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1550&type=bug
Notes
(0007604)
jsantos   
2021-11-23 13:39   
(Last edited: 2021-11-23 13:39)
An important issue with Intel cards has been fixed in r10929. I am not sure this is 100% related to your callstack but probably it is. Could you please try it?

The minimal feature level required for the D3D12 renderer is D3D_FEATURE_LEVEL_11_0 (we check that in D3D12RenderContext) so that shouldn't be a problem.

(0007619)
satorp   
2021-11-25 12:40   
I tried the patch but it seems to have no effect, the crash still occurs (same call stack).
(0007620)
jsantos   
2021-11-25 12:43   
(Last edited: 2021-11-25 12:43)
Could you please uncomment the two lines at the top of D3D12RenderDevice to enable extra logging

#undef NS_LOG_TRACE
#define NS_LOG_TRACE(...) NS_LOG_(NS_LOG_LEVEL_TRACE, __VA_ARGS__)

and send me the log and call-stack again?

Thank you!

(0007621)
satorp   
2021-11-25 14:42   
Here are the trace log and call stack when HelloWorld is executed in Debug build (the trace log seems to be enabled only in Debug build?). The call stack is different from the one in Description, which was a Release build. There's a D3D12 error in the trace log which may provide a hint.

------------------------------------------------------------------------------------------------------------------------------------
D3D12: Removing Device.
D3D12 ERROR: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DEVICE_HUNG: The Device took an unreasonable amount of time to execute its commands, or the hardware crashed/hung. As a result, the TDR (Timeout Detection and Recovery) mechanism has been triggered. The current Device Context was executing commands when the hang occurred. The application may want to respawn and fallback to less aggressive use of the display hardware). [ EXECUTION ERROR #232: DEVICE_REMOVAL_PROCESS_AT_FAULT]
(0007622)
jsantos   
2021-11-26 12:31   
Thanks for the reports. It seems the driver is behaving erratically and randomly crashing. I also read in the log

Exception thrown at 0x00007FFA454B4F69 in Samples.HelloWorld.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x00000012CBEFC2C8.

So it seems, a library is getting out of memory conditions. Not sure which one.

We are doing something that the Intel driver doesn't like. I wonder if you could try the minimal Hello World sample (Samples/Desktop/D3D12HelloWorld) in the Microsoft repository:

https://github.com/microsoft/DirectX-Graphics-Samples

and see if it works?
(0007628)
satorp   
2021-12-01 07:54   
I've found that the std::bad_alloc exception occurs inside the call to swapchain Present function (see uploaded callstack). The same exception also occurs when I run the D3D12 HelloWorld samples (except for D3D12HelloWindow).
(0007629)
jsantos   
2021-12-01 11:35   
So Microsoft examples are also crashing? It seems to me given the attached call-stack but I want to confirm.
(0007640)
satorp   
2021-12-03 12:56   
Yes, Microsoft samples also crash. This seems to be a graphics driver issue (Intel driver 20.19.15.5171). I tried rolling back to previous version (20.19.15.4568) and the crash disappears.
(0007641)
jsantos   
2021-12-03 13:16   
Thank you! Closing this


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2207 [NoesisGUI] C++ SDK major always 2021-12-03 10:28 2021-12-03 11:24
Reporter: pdx_lysannschlegel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Binding issues reported as errors (inconsistency with WPF)
Description: In some cases noesis generates error logs for binding issues which are have only "warning" or "information" level in WPF/Blend.

My general take on this is:
When our UX designers work with Blend most of the time, I think it is important that the warnings and errors logged are similar between Blend and Noesis, otherwise they'll make a nice UI in WPF that can then spew a lot of errors in Noesis. So I think deviating much from what WPF considers a warning/error needs to have very good reasons.

sfernandez agreed and asked me to report this in the bug tracker.
Forum thread for full context and some examples: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2464
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2200 [NoesisGUI] C++ SDK tweak always 2021-11-26 18:11 2021-12-03 11:23
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Avoid binding errors when part of the path is null
Description: From forum post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2464
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007623)
sfernandez   
2021-11-26 18:55   
Now bindings that can't be resolved because part of the path returned a null object are reported as information messages.
The rest of errors now match WPF behavior, and are also converted to warning messages if a fallback value is provided like in WPF.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2093 [NoesisGUI] C++ SDK major always 2021-08-26 17:36 2021-12-02 18:08
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Switch to DXC shader compiler for Xbox One and Xbox Series
Description: Shader compiling at runtime is taking seconds on both Xbox One and Xbox Series, we should switch to the recommended DXC compiler for these platforms.

Right now, this is not as trivial as it sounds because we need to specify the root signature in each shaders and right now that information is available at compile time in the C++ source.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2158 [NoesisGUI] Unreal crash always 2021-10-25 15:41 2021-12-02 18:08
Reporter: staublicht Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Windows
Summary: Crash on XAML import
Description: Unreal version 4.27.1

I set up a XAML test project and have crash every time on XAML import. XAML is valid. I tried rebuilding the project and plugin but it didn't help with the issue.
Tags: UE4, ValueConverter, xaml
Steps To Reproduce: Open the provided project and attempt to reimport XAML changes.
Additional Information:
Attached Files: TestGUI-blend.zip (3,625,499 bytes) 2021-10-25 15:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1527&type=bug
UE4CC-Windows-85E4FAF14DA7A50A2A81029C965FC8F6_0000.zip (147,494 bytes) 2021-10-25 15:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1528&type=bug
XAML-import-crash.JPG (88,639 bytes) 2021-10-25 15:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1529&type=bug
Notes
(0007533)
staublicht   
2021-10-25 15:46   
I am not experienced enough with XAML to know whether my project is for some reason invalid and can not be parsed for Noesis because I am using some special or unsupported technique. In this case I was testing inline buttons and a converter that makes text to Uppercase. It looks valid and correct in Blend.
(0007625)
sfernandez   
2021-11-29 18:21   
The crash is produced by a check in the plugin about font dependencies. It is a bug we have to fix but it is happening because you are referencing system fonts in your xaml and you probably don't want to do that.

As explained in our Text tutorial (https://www.noesisengine.com/docs/Gui.Core.TextTutorial.html#font-family) if the font family does not include a folder and a family name separated by a #, then it means you are using system fonts. We recommend you use fonts included in your Unreal project, so they will work on all platforms.

(0007630)
staublicht   
2021-12-01 11:43   
thank you for the information
(0007631)
sfernandez   
2021-12-02 18:08   
Resolved at revision 10975.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1109 [NoesisGUI] C++ SDK feature always 2017-06-14 04:04 2021-12-01 02:08
Reporter: nikobarli Platform: Windows  
Assigned To: jsantos OS: Windows  
Priority: high OS Version: Win7 ~ Win10  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Custom cursor support
Description: In WPF, we can load and use a custom cursor like this:

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <Cursor x:Key="CursorMagnify">C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\res\magnify.cur</Cursor>
        </ResourceDictionary>
    </Window.Resources>
    <Grid Cursor="{StaticResource CursorMagnify}">
        <TextBlock>test</TextBlock>
    </Grid>
</Window>

Our application uses a lot custom cursors (more than 30). Thus, we need a way to support this in NoesisGUI.

In longer term, you may want to implement the Cursor class with similar capabilities as WPF does. But in shorter term, we only need to designate a custom cursor ID to the FrameworkIElement.

For example, we can write in XAML

<Grid Cursor="Custom_MyCursor"></Grid>

which is the same as below in code behind

Grid::SetCursor(Cursor_Custom /* new enum entry "/, "MyCursor" /* ID string */);

and which causes the cursor callback is called with parameters Cursor_Custom and "MyCursor".

Then inside the client integration code, I can map the tuple {Cursor_Custom, "MyCursor"} to any custom cursor I want.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005501)
nikobarli   
2019-03-06 08:51   
Hi, is there any update on this feature ? Is it gonna make it to 2.2.0 maybe ?
(0005502)
jsantos   
2019-03-06 16:55   
Hi Niko, we discussed long time ago and decided to add a char* to our cursors to solve this. But we are almost ready to close 2.2 (RC is happening this week) so I am not sure if we can implement it for this version.

Could you please raise the priority of this ticket and tell me how critical it is for you right now?

Thanks!
(0005507)
nikobarli   
2019-03-07 01:23   
Hi Jesus,

I raised the priority to High. I think I can temporarily workaround this issue by providing per-view mapping from the current Cursor enum to the custom cursor inside the Integration layer.
Please consider adding the official support in the near future.
(0007445)
nikobarli   
2021-09-16 02:23   
Hi Jesus, is there any update on this issue ?
(0007446)
jsantos   
2021-09-16 14:28   
(Last edited: 2021-09-16 14:29)
Hi Niko,

Really sorry about this delay. I was talking with @sfernandez and we are going to solve this in 3.1.2. Is that ok for you?

The idea is changing the definition of Cursor in
typedef void (*UpdateCursorCallback)(void* user, IView* view, Cursor cursor);

Cursor will be something like:
struct Cursor
{
   CursorType type;
   String uri;
}

CursorType will be the old enum with a new entry Cursor_Custom indicating that the uri must be read. The uri will containt the .cur file, that must be loaded in each Display.

You only need this for Windows right?

(0007447)
nikobarli   
2021-09-16 14:52   
Hi Jesus,

Yes, we only need this for Windows.

So, how can we use it from Xaml? Is it something like:

<Grid Cursor="Custom_MyCursor"></Grid>

in which uri will be set to "MyCursor" ?

As for fix version, 3.1.2 is fine with us.
(0007448)
jsantos   
2021-09-16 14:57   
(Last edited: 2021-09-16 14:57)
To be compatible with Blend it needs to be
<Grid Cursor="Custom_MyCursor.cur"></Grid>

and you need to have MyCursor.cur in the Blend project.

Our Win32Display implementation will load that .cur file.

Will that work for you?

(0007449)
jsantos   
2021-09-16 14:58   
(Last edited: 2021-09-16 14:58)
@sfernandez I am not sure if the .cur extension is mandatory

(0007450)
sfernandez   
2021-09-16 16:05   
Looking at WPF implementation of CursorConverter it seems they only support .cur and .ani files (apart from default known cursors):
https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/Windows/Input/CursorConverter.cs,176
(0007451)
nikobarli   
2021-09-17 01:49   
> To be compatible with Blend it needs to be
> <Grid Cursor="Custom_MyCursor.cur"></Grid>

And I suppose I can pass uri as part of the string right ?
e.g. <Grid Cursor="Custom_Resources/Cursor/MyCursor.cur"></Grid>

> and you need to have MyCursor.cur in the Blend project.
> Our Win32Display implementation will load that .cur file.
> Will that work for you?

Yes, that will work for us.

Thanks!
(0007452)
jsantos   
2021-09-17 11:59   
Great, thank you. More questions, should our implementation of Win32Display load the cursors? Or that's something you plan to do.

If our implementation does it, we need to load the file using our file providers (we will use the XamlProvider I think, because it provides a IStream interface).
(0007455)
nikobarli   
2021-09-17 14:54   
> Great, thank you. More questions, should our implementation of Win32Display load the cursors? Or that's something you plan to do.

We are using our own implementation of Win32Display (because we need to support multiple views inside a process).
But we would appreciate if you can provide the example inside your Win32Display for us to follow.
(0007457)
jsantos   
2021-09-17 22:06   
(Last edited: 2021-09-20 10:21)
r10741 implemented the core changes. We still need to fix Displays and implement loading .cur files in Win32Display

(0007626)
jsantos   
2021-12-01 02:05   
(Last edited: 2021-12-01 02:08)
Hi Niko,

I have been testing the implementation for Win32Display and everything is working fine but we are not going to make changes to Win32Display for loading custom cursors because there are many possible approaches to this: loading the cursor for memory, loading the cursor from file, loading the cursor for the resource table of the executable. I think, you are probably going to have an array with all your custom cursors loaded from file (or from the resource table) and then read that table when the request of changing cursor arrives to the Display.

I took your example:

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <Cursor x:Key="CursorMagnify">C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\res\magnify.cur</Cursor>
        </ResourceDictionary>
    </Window.Resources>
    <Grid Cursor="{StaticResource CursorMagnify}">
        <TextBlock>test</TextBlock>
    </Grid>
</Window>

And added the following change to our Win32Display:

        case WM_SETCURSOR:
        {
            if (LOWORD(lParam) == HTCLIENT)
            {
                if (mCursor.type == Cursor::Custom)
                {
                    HCURSOR cur = LoadCursorFromFileA(mCursor.filename.Str());

                    ::SetCursor(cur);
                }
                else
                {

                    if (mCursors[mCursor.type] != 0)
                    {
                        ::SetCursor(mCursors[mCursor.type]);
                        return true;
                    }
                }
            }

            return false;
        }

And it works, the custom cursor changes. This implementation is not efficient because the cursor is loaded per frame, but I just wanted to use it to check everything is working correctly. As said, we are not going to commit any change to Win32Display but if you need more help or have doubts please write us or reopen the ticket.

Thanks for your patience!

(0007627)
jsantos   
2021-12-01 02:08   
I think we finally can close this : )


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1412 [NoesisGUI] Unity3D major always 2019-02-24 01:01 2021-11-29 14:26
Reporter: nokola Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Noesis fails to render Bengali/Sinhala/other fonts with ligatures and unicode characters
Description: See summary :)
Tags:
Steps To Reproduce: 1. Display any ligature/non-English compound character font.
Example:
<TextBlock Text="প্লাবনের পরে সমস্ত পৃথিবী" FontFamily="Fonts/#Nirmala UI" FontSize="48"/>
(attached Nirmala.zip font used above)
OR
<TextBlock Text="প্লাবনের পরে সমস্ত পৃথিবী" FontSize="48"/> (just use default font)


Expected: displays correctly (same as Word or Google Translate:
https://translate.google.com/#view=home&op=translate&sl=auto&tl=en&text=%E0%A6%AA%E0%A7%8D%E0%A6%B2%E0%A6%BE%E0%A6%AC%E0%A6%A8%E0%A7%87%E0%A6%B0%20%E0%A6%AA%E0%A6%B0%E0%A7%87%20%E0%A6%B8%E0%A6%AE%E0%A6%B8%E0%A7%8D%E0%A6%A4%20%E0%A6%AA%E0%A7%83%E0%A6%A5%E0%A6%BF%E0%A6%AC%E0%A7%80

Actual:
Both default and Nirmala fonts are wrong. Displayed correctly in Word and online for comparison

Note: this has been issue in Noesis 2.1. I opened it now because we got reports from 2 different users last week, and I was waiting to try and test Noesis 2.2 beta.
Additional Information:
Attached Files: Nirmala.zip (2,135,613 bytes) 2019-02-24 01:01
https://www.noesisengine.com/bugs/file_download.php?file_id=968&type=bug
ExampleFontIssue.jpg (91,614 bytes) 2019-02-24 01:01
https://www.noesisengine.com/bugs/file_download.php?file_id=969&type=bug
Notes
(0005454)
jsantos   
2019-02-24 04:16   
Yes, ligatures aren't implemented yet. Thanks for the ticket.
(0005456)
nokola   
2019-02-24 06:37   
Thank for the info! Is it possible for me to implement them somehow? (maybe expose some access to the text renderer/options?)
I'm not sure what's involved in implementing them, however it will significantly hinder a group of customers from using the app our team is making. I'm willing to do some work to get them done faster, if needed.
(0005458)
nokola   
2019-02-24 19:36   
Also confirmed issue with Arabic, Hindi, Tamil, Telugu. Btw, our app's biggest user base currently is India (if it helps with prioritization.)
Not sure how many Noesis users are affected overall across all Noesis apps.
just checking - are you using Skia for font rendering? I'm looking into Skia + HarfBuzz combination to render everything (same libraries used in Chrome)
(0005459)
jsantos   
2019-02-24 21:02   
Ligatures are not implemented. It's been requested many times. Unfortunately this feature won't go in 2.2 (we need to release this version before GDC). We use our own internal renderer (+ a few parts of FreeType), so probably the way we will go is using HarfBuzz.

For now the only workaround is preprocessing the text yourself and change the unicode points accordingly. How urgent is this for you?
(0005461)
nokola   
2019-02-24 21:08   
Thanks for the info! I would like to have it in our app's next release (~1 week.) Deciding whether to release now and do this later. Generally it's the next top 2 issue on our task list (after startup performance, which is ongoing investigation.)
Do you know if HarfBuzz can pre-process text and generate new codepoints? Or is it another solution? If you don't know yet no problem! I am researching on my own too. Haven't worked with HarfBuzz until last week when we got the issue reports.
(0005464)
jsantos   
2019-02-24 21:18   
Yes, HarfBuzz can do that.
(0005465)
nokola   
2019-02-24 21:27   
Just discussed with my coworker.

We have two font rendering tasks:
1. UI, currently Noesis
I'll look into HarfBuzz for that part.
2. Render to texture, currently uses TextMesh with Unity's native OS font rendering. We were hoping to use Noesis since 2.2 mentioned support for OS fonts
For #2 we just decided to try OS font rendering instead of TextMesh (Android only, since 90% of our users are on Android in India), because we haven't tested Noesis 2.2's font support for OS fonts yet. Example: does Noesis load the full OS font? or just characters needed? When is memory freed, etc. I'll ask on the forums.
We'll render to texture from a native plugin, then draw in Unity with mesh.

Thanks again for the info!
(0005466)
nokola   
2019-02-24 21:34   
Just realized HarfBuzz may substitute characters, but will also reposition glyphs -> not sure how this will work with the current Noesis. Thus will wait for Noesis to support ligatures for #1 above (the UI) and will use OS-side font rendering for #2.

Either way I don't want to take too much time from your GDC work, no problem to pick up the discussion later.
(0005471)
jsantos   
2019-02-25 21:44   
Thanks!

Yes, please ask about those font doubts you have on the forums.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1788 [NoesisGUI] C++ SDK minor always 2020-09-09 14:57 2021-11-29 14:26
Reporter: mdube Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Emoji with zero width joiner (zwj) should render with a zero width space on fallback
Description: Emoji can be combined together using the special unicode character 'zero width joiner'. When the combined picture is not available, the fallback is simply to render the emoji chain one by one. Currently Noesis does this, but renders the zero width joiner as a large space.

All details can be found in my forum post there:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2087
Tags: emoji
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
615 [NoesisGUI] C# SDK minor always 2015-03-24 13:24 2021-11-29 14:24
Reporter: easylaser Platform: XAML  
Assigned To: sfernandez OS: Mac OS X  
Priority: normal OS Version: 10.10.2  
Status: resolved Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Unsupported property "FlowDirection"
Description: <Style x:Key="Style.TextBox.Field" TargetType="{x:Type TextBox}">
  <Setter Property="FlowDirection" Value="RightToLeft"/>
</Style>
Tags: Damalini
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002362)
sfernandez   
2015-03-25 22:05   
Not planned yet, maybe something we can investigate after Inline formatting.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1868 [NoesisGUI] C++ SDK feature always 2020-12-28 15:42 2021-11-29 14:24
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Implement Font differentiation when matching famiy names
Description: After extracting family name, face name, style, weight and stretch from an OpenType font file, WPF
runs an algorithm that resolves potential conflicts between these values. This process is called font
differentiation, and consists on the following steps:

1. Build combined family and face name
2. Extract terms for style
3. Extract terms for stretch
4. Extract terms for weight
5. Determine resolved weight
6. Determine resolved stretch
7. Determine resolved style
8. Extract numbers that describe font style, weight and stretch from face names
9. Determine final FontFamily and FaceName.

This is explained in the 'WPF font selection model' document.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WPF Font Selection Model.pdf (863,736 bytes) 2020-12-28 15:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1356&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1829 [NoesisGUI] C++ SDK feature N/A 2020-11-05 18:03 2021-11-29 14:24
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Feature Request: Support FrameworkElement.FlowDirection
Description: Hi guys,

We are planning on localising our game into Arabic. Part of that will require us to change the layout of our UI from "Left to Right" to "Right to Left" layout.

This is a medium priority for us, I imagine we won't require this for quite a while (probably within 6 months or so), but it's nice to plan ahead to get ready for when we hit our localisation requirements.

Cheers!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007226)
steveh   
2021-05-06 22:46   
Hi guys, just chasing this up. Has any progress been made in this area? Just to give you an update on priority, we're hitting feature complete fairly soonish and we're working towards content complete. Ideally we need localisation done by that point so we're looking at October at the Latest. Is this still a reasonable time scale?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1280 [NoesisGUI] Unreal minor always 2018-04-06 11:44 2021-11-29 14:24
Reporter: GeorgeR Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: StackPanel FlowDirection unsupported
Description: LogNoesis: Warning: /Game/Frontier/UI/Themes/Generic.Generic(965): Unknown member StackPanel.FlowDirection
Tags:
Steps To Reproduce: 1. Import the provided file and see output log
Additional Information:
Attached Files: Generic.xaml (75,133 bytes) 2018-04-06 11:44
https://www.noesisengine.com/bugs/file_download.php?file_id=925&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2067 [NoesisGUI] C++ SDK minor have not tried 2021-07-28 11:50 2021-11-29 14:22
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.2.0  
Platform: Any
Summary: Divide by zero in SDFGenerator
Description: However, we then hit a divide by zero in SDFGenerator.cpp, line 348:
// Calculate bounding box
const SPoint _P1mP0 = s.pts[1] - s.pts[0];
SPoint t = _P1mP0 - s.pts[2] + s.pts[1];
t.x = _P1mP0.x / t.x;      <- Divide by zero
t.y = _P1mP0.y / t.y;

In this case, t.x was zero.

It’s not urgent – we’ve just disabled FP exceptions whenever we call into Noesis, so this is not blocking us. We’d just like to be able to remove this at some point in the future

I’ve added a check for zero in this case, and set it to a small value, and it prevents the crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: locals.txt (6,220 bytes) 2021-07-28 11:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1464&type=bug
Callstack.txt (14,226 bytes) 2021-07-28 11:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1465&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2092 [NoesisGUI] C++ SDK minor always 2021-08-25 22:00 2021-11-29 14:21
Reporter: ExtZGholson Platform:  
Assigned To: jsantos OS:  
Priority: high OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.2.0  
    Target Version: 3.2.0  
Platform: Any
Summary: Fonts with overlapping paths
Description: When rendering fonts in Noesis 3.0+ Fonts have overlapping paths. This results in undesirable font artifacts / visual appearances.
Tags: Fonts, Text
Steps To Reproduce: Create a textfield
Use font is Inter - https://fonts.google.com/specimen/Inter
Apply non transparent fill to font
Set font size to 30+
Observe paths overlapping on font
Additional Information:
Attached Files: LargeFontIssue.png (5,124 bytes) 2021-08-25 22:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1472&type=bug
MidsizeFontIssue.png (4,937 bytes) 2021-08-25 22:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1473&type=bug
TextExample.png (39,019 bytes) 2021-08-25 22:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1474&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2190 [NoesisGUI] Unity3D major always 2021-11-16 13:06 2021-11-27 03:34
Reporter: nvonhertzen Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: DropShadowEffects do not work with Unity PS5 builds
Description: At least DropShadowEffect (maybe other offscreen rendered elements as well) fail with Unity PS5 builds. It fails to draw any elements that have a DropShadow attached to them. Removing that DropShadow renders the elements correctly.

Tested with Noesis 3.1.1, Unity 2021.2.0b11, and Prospero SDK 3.000.
Tags:
Steps To Reproduce: 1. Create new Unity project with the Hello World sample
2. Apply a DropShadowEffect on an element such as the logo
3. Build and run on PS5, observe the element with the shadow missing
Additional Information:
Attached Files:
Notes
(0007577)
jsantos   
2021-11-16 17:57   
Thanks for this report, I will check ASAP
(0007624)
jsantos   
2021-11-26 22:26   
(Last edited: 2021-11-27 03:34)
r10954 and 10955 should fix this



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2159 [NoesisGUI] C++ SDK major always 2021-10-25 23:55 2021-11-25 12:23
Reporter: ExtZGholson Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Switch
Summary: Switch - Software Keyboard not opening when tapping on textbox
Description: We are expecting to open the software keyboard when the player taps on the textbox on the Nintendo Switch. As of right now, it just sets focus to the textbox. At first we believed that the keyboard wasn't opening because we had initial focus on the textbox. If we use the d-pad to navigate away from the textbox and then Tap on it with our finger, it fails to open.
Tags: Focus, keyboard, switch, TextBox
Steps To Reproduce: Create a textbox and a button below the textbox. Set the textbox to focus by default when the view opens. Navigate away from the textbox with the d-pad on. Tap on the textbox with your finger. Observe that the textbox is focused but the software keyboard does not open.
Additional Information:
Attached Files:
Notes
(0007609)
jsantos   
2021-11-24 16:51   
(Last edited: 2021-11-24 16:54)
I am trying our 'Login' example with Nintendo Switch and what I am observing is that when the TextBox has focus and you tap on it, the keyboard does not appear. But if the TextBox doesn't have the focus the keyboard is shown correctly.

This is a bit different to the description of this bug, could you please confirm we are observing the same thing?

I am also observing that when the keyboard does not appear, I am not able to move way using the d-pad, I need to press B to cancel the engagement. This is not intuitive at all and must be fixed.

(0007617)
jsantos   
2021-11-25 12:23   
We have fixed all the mentioned issues. Now our Login sample works as expected with Nintendo Switch.

Please reopen if you need something else.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2136 [NoesisGUI] C++ SDK minor always 2021-10-04 14:10 2021-11-25 01:56
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Unable to parse big numbers with <sys:UInt32>
Description: The following xaml shows an error "Unable to convert '3828302698' to a valid value for System.UInt32" in Noesis:

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Grid.Resources>
    <sys:UInt32 x:Key="id">3828302698</sys:UInt32>
  </Grid.Resources>
  <TextBlock Text="{Binding Source={StaticResource id}}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007612)
jsantos   
2021-11-25 01:56   
Fixed in r10938

Thanks for reporting!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2010 [NoesisGUI] C++ SDK feature always 2021-05-10 14:33 2021-11-25 00:13
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Upgrade emscripten to 2.0
Description: Our C++ SDK is still using 1.39.13 and that version is quite old.

Besides, we shouldn't be including emscripten.h from CompilerSettings. Just declaring emscripten_debugger should be enough.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2134 [NoesisGUI] C++ SDK minor sometimes 2021-09-29 02:08 2021-11-25 00:07
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Incorrect asert logic in BaseVector<T>::Append
Description: Hi guys,

I've just been given an assert to look into. It's triggered on the following line:

template<typename T>
inline void BaseVector<T>::Append(const T* first, const T* last)
{
    NS_ASSERT(last < Begin() || first >= End()); // <<<< HERE

The end of the callstack is here:

> Game.exe!Noesis::BaseVector<unsigned char>::Append(const unsigned char * first, const unsigned char * last) Line 434 C++ Symbols loaded.
     Game.exe!Noesis::VGL::AddSVGPath(Noesis::VGLPath * p, const Noesis::SVGPath & path) Line 220 C++ Symbols loaded.
     Game.exe!Noesis::GeometryProxy::GetPath() Line 44 C++ Symbols loaded.


T* first 0x0000000148240080 "\x2" const unsigned char *
T* last 0x0000000148240100 "\x2" const unsigned char *

Vector<T>::mBegin 0x0000000148240100 void *

So the SVG path contains 128 bytes worth of data from address 0x148240080 -> 0x148240100, and the address for the vector's heap allocated data starts at the last address 0x1482040100. This is perfectly valid from what I can see, it's just that both address spaces are contiguous and the SVG path is just before the path's data in memory.

I think the asserts need to be last <= Begin, i.e:

NS_ASSERT(last <= Begin() || first >= End());

Cheers,

-Steven
Tags:
Steps To Reproduce: N/A, randomly happens depending on address allocation.
Additional Information:
Attached Files:
Notes
(0007489)
jsantos   
2021-09-29 16:13   
You are right, the assert is not correct and there are more place in Vector (and String probably) with the same error. I will carefully review all of them.

Thanks steve!
(0007611)
jsantos   
2021-11-25 00:06   
Fixed in r10936

Thanks steve!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2157 [NoesisGUI] C++ SDK major always 2021-10-25 15:32 2021-11-24 16:45
Reporter: Ryan Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1  
Platform: Any
Summary: Socket library is already initialized on NX
Description: Unfortunately there is no way on NX to discover if the socket library is already initialized or not. We are using a define for that (Socket.inl)

  #ifndef NS_DISABLE_SOCKET_INIT
    static nn::socket::ConfigDefaultWithMemory SocketConfigWithMemory;
    nn::Result r = nn::socket::Initialize(SocketConfigWithMemory);
    NS_ASSERT(r.IsSuccess());
    r = nn::nifm::Initialize();
    NS_ASSERT(r.IsSuccess());
  #endif



I suggest to separate profiler function into different library for linking.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007534)
jsantos   
2021-10-25 19:32   
Even if we separate into a new library we would have the same problem if you are using this profiling library with another 3rdparty middleware that also initializes socket library.

I see two solutions:

1. Requesting to Nintendo a change in the API. In the other platforms, double initialization of sockets is fine.
2. Export a callback (in integration API) to initialize sockets. That way, client code is in charge of that.

Does the temporal workaround of using NS_DISABLE_SOCKET_INIT work for you?
(0007535)
Ryan   
2021-10-26 02:53   
I un-link other 3rd party middleware's network function for now.
However, if we start to implement the network function for our project, I will do NS_DISABLE_SOCKET_INIT.
(0007537)
jsantos   
2021-10-26 12:00   
(Last edited: 2021-10-26 12:01)
I am checking the latest documentation available on Nintendo website and it read this regarding nn::nifm::Initialize
The network connection management library must be initialized by this function ahead of time before the library's functions can be used,
unless noted otherwise for individual functions. The function also returns an indication of success if the library has been initialized already. 

So it gives me the impression they changed the API in the latest version. I need to verify this though.

(0007608)
jsantos   
2021-11-24 16:45   
(Last edited: 2021-11-24 16:45)
Hi Ryan,

I have checked with the latest Nintendo SDK (13.3.0 and 14.0.0) and it seems they are still aborting when socket is initialized twice. Nintendo is not going to change this behavior. So I think the best solution is just keep using our define NS_DISABLE_SOCKET_INIT (by the way in r10934 I fixed a minor issue about this).

It is also very important that you don't release your game with NS_PROFILE enabled and this macro is intended only for profiling and connecting the Inspector.

I am going to close this, but if you need anything more, please reopen.

Thank you



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2165 [NoesisGUI] C++ SDK major always 2021-10-27 13:11 2021-11-23 20:49
Reporter: Logris Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: View does not resize when window Restored or Maximized
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2456
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007550)
Logris   
2021-10-28 13:30   
(Last edited: 2021-10-28 14:14)
Window::SetWidth() and Window::SetHeight() doesn't work either, due to validation

void Window::OnDisplaySizeChanged(Display*, uint32_t width, uint32_t height)
{
    if (width != (uint32_t)GetWidth() || height != (uint32_t)GetHeight()) !!!!!!!!!!!!!
 ...
}



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2171 [NoesisGUI] C++ SDK minor always 2021-10-27 17:04 2021-11-23 17:00
Reporter: pdx_lysannschlegel Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: clang warning in NsMath/Vector.h (ignored-qualifiers)
Description: When building anything that includes NsMath/Vector.h with clang version at least 10, and -Wignored-qualifiers enabled, the warning is triggered in several places:

Include/NsMath/Vector.h:36:5: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
    const float operator[](uint32_t i) const;
    ^~~~~~
Include/NsMath/Vector.h:106:5: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
    const float operator[](uint32_t i) const;
    ^~~~~~
Include/NsMath/Vector.h:176:5: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
    const float operator[](uint32_t i) const;
    ^~~~~~

Similar in NsMath/Vector.inl:

Include/NsMath/Vector.inl:33:8: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
inline const float Vector2::operator[](uint32_t i) const
       ^~~~~~
Include/NsMath/Vector.inl:238:8: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
inline const float Vector3::operator[](uint32_t i) const
       ^~~~~~
Include/NsMath/Vector.inl:452:8: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
inline const float Vector4::operator[](uint32_t i) const
       ^~~~~~

The above output is when building with version 3.0, but I did a quick check and looks like 3.1 headers still look the same, so I am setting the version to 3.1.

This issue is espacially annoying when building with -Werror.
Of course, we can work around it by disabling the warning before including these, but this requires also disabling it anywhere where the files are included indirectly via other noesis SDK headers.
Tags:
Steps To Reproduce: I don't have very easy steps to reproduce but the warning should be pretty clear as to what's wrong.
But the general idea should be:

1. Set up a C++ project, set to cpmile with clang 10, and enable -Wignored-qualifiers (and optionally -Werror) compiler flags.
2. Include NsMath/Vector.h or Vector.inl in any file that builds with these warning flags enabled.
3. Compile.

Potentially this can be reproduced with older clang versions as well, but I cannot currently test this.
Additional Information:
Attached Files:
Notes
(0007546)
jsantos   
2021-10-27 18:54   
Thanks for this, it will be fixed
(0007605)
jsantos   
2021-11-23 17:00   
Fixed in r10930

Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2179 [NoesisGUI] C# SDK major always 2021-11-05 20:25 2021-11-23 11:00
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Linux
Summary: WebBrowser interferes with external processes and application termination
Description: When the web browser component is loaded, it makes several other things not work.
- We handle Ctrl-C to do a clean shutdown: Console.CancelKeyPress += Console_CancelKeyPress, and the Console_CancelKeyPress() method triggers a clean shutdown. When the web browser is loaded, Ctrl-C kills the application immediately, bypassing the clean shutdown.
- We also handle kill signals to do a clean shutdown: AppDomain.CurrentDomain.ProcessExit += AppDomain_ProcessExit, and AppDomain_ProcessExit also triggers a clean shutdown. (AppDomain.CurrentDomain.ProcessExit is trigged on Windows by closing the Noesis console window, or on Linux with the `kill` or `killall` command line utilities.) When the web browser is loaded, `killall UIShell` kills the application immediately, bypassing the clean shutdown.
- We spawn various external processes, to do various tasks in the OS. We use the .Net `System.Diagnostics.Process` class to do this. We do process.Start() followed by process.WaitForExit(). The WaitForExit() call is never returning, which interferes with many things in our system.

We have traced these issues to `libcef.so`. If we remove that library, all three of these things start working again. Also, all of those things work initially, but then stop working once the web browser view is loaded.

These issues do not occur on Windows-x64. This appears to be an issue only on Linux. (Possibly only Linux-ARM64. I didn't test Linux-x64, so I don't know one way or the other.) This issue occurs with both WebBrowser 1.0.2 and 1.0.3.

My best guess as to what's going on: For Ctrl-C and `kill`, perhaps libcef.so is installing its own signal handler, and it needs to be changed to not do that? For the external process thing, I have no idea what the cause could be, but it's definitely that library.
Tags:
Steps To Reproduce: Here's my debugging code. Within a Linux-ARM64 application that loads the web browser, do this:

// Early at startup:
Console.CancelKeyPress += Console_CancelKeyPress;
AppDomain.CurrentDomain.ProcessExit += AppDomain_ProcessExit;

// At the end of startup:
RunExternalProcess("/bin/ls", "-l /"); // Get a long-format listing of the root dir.

private static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
    logger.Warn("Ctrl-C received. Ignoring for testing purposes.");
    e.Cancel = true;
}

private static void AppDomain_ProcessExit(object sender, EventArgs e)
{
    // This method is triggered if you `kill` this task on Linux, or if you close the
    // console window on Windows. (And also if the process exits normally, of course.)

    // There's no way to "cancel" this. Our real code triggers an emergency shutdown, and 
    // then blocks here until the emergency shutdown is complete. For testing purposes, 
    // just print that we got this event, wait a bit, and then let the process exit happen.
    logger.Warn("AppDomain exiting.");
    Thread.Sleep(3000);
}

private static void RunExternalProcess(string executable, string arguments)
{
    using Process p = new Process();
    p.StartInfo.FileName = executable;
    p.StartInfo.Arguments = arguments;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.OutputDataReceived += dataReceived;
    p.ErrorDataReceived += dataReceived;

    p.Start();

    // This is necessary to make the event get triggered. No need to read the streams, 
    // the event will do the data recording we need.
    p.BeginOutputReadLine();
    p.BeginErrorReadLine();

    logger.Warn("Before WaitForExit: {0} {1}", executable, arguments);
    p.WaitForExit();
    logger.Warn("After WaitForExit: {0} {1}", executable, arguments);
}

- With libcef.so present, before the web browser view has loaded, Ctrl-C prints the expected log message, and the application doesn't exit. After the web browser view has loaded, Ctrl-C terminates the application without a message, `kill` terminates the application without a message, and all processes spawned don't return, including `ls -l`.
- With the exact same compile output, but libcef.so removed, after the web browser view has loaded, Ctrl-C prints the expected message and doesn't exit, `kill` prints the expected message, waits 3 seconds, then exists, and `ls -l` returns properly.

At the moment, the web browser is a smaller part of our application than spawning external processes is, so I have web browser disabled.
Additional Information:
Attached Files:
Notes
(0007601)
sfernandez   
2021-11-23 11:00   
Fixed in WebBrowser 1.0.4


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2199 [NoesisGUI] C# SDK trivial always 2021-11-23 10:16 2021-11-23 10:20
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Incorrect access modifier for OnApplyTemplate
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2484

In NoesisGUI the access modifier of FrameworkElement.OnApplyTemplate is 'protected', but in System.Windows, it is 'public'.
I need add macros to override this method, this is so urgly.

#if NOESIS 
        protected override void OnApplyTemplate()
#else
        public override void OnApplyTemplate()
#endif
       {
            ... ...
       }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007600)
sfernandez   
2021-11-23 10:19   
Fixed in changeset 10745.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2198 [NoesisGUI] Unity3D minor always 2021-11-21 13:32 2021-11-22 21:04
Reporter: Flem100@live.dk Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.2  
Platform: Windows
Summary: Errors on extracting from zip Windows 11
Description: I get the errors shown in the attached image when I unzip. I have also tried using rar, same problem.

If I skip the first, I get the next one later. My question is whether this is going to be a problem when using the package.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisGUI-Unity-3.1.1-indie.zip error.png (23,631 bytes) 2021-11-21 13:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1540&type=bug
Notes
(0007594)
sfernandez   
2021-11-22 11:28   
Let us analyze what is happening because I was able to reproduce the problem, I just downloaded it and it gives me a CRC error on libNoesis.a too.
(0007599)
jsantos   
2021-11-22 21:03   
We are having issues with our hosting. Please, download again. Zip must always decompress without errors.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2194 [NoesisGUI] Unity3D minor always 2021-11-18 00:01 2021-11-18 17:55
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Black Drop Shadows Rendered Transparent in Unity
Description: This XAML
<DropShadowEffect BlurRadius="50" Direction="0" ShadowDepth="0" Opacity="1" Color="Black"/> // OR
<DropShadowEffect BlurRadius="50" Direction="0" ShadowDepth="0" Opacity="1" Color="#110000/>
renders as result image HEX110000.png.

This XAML
<DropShadowEffect BlurRadius="50" Direction="0" ShadowDepth="0" Opacity="1" Color="#FF0000/>
renders as result image HEXFF0000.png.

Is there something I should be doing to render shadows as black?



Tags:
Steps To Reproduce:
Additional Information:
Attached Files: HEX110000.png (190,273 bytes) 2021-11-18 00:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1537&type=bug
HEXFF0000.png (175,387 bytes) 2021-11-18 00:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1538&type=bug
Notes
(0007588)
sfernandez   
2021-11-18 10:41   
In my tests the drop shadow seems to work the same as in WPF. I even tried with Photoshop and the results are very similar.

What is happening is that BlurRadius is very big and it mixes with the background, but there is a difference if you remove the shadow. If you use a white background you can clearly see that there is a shadow there.
When using red as shadow it stands out more because you don't expect that color around the text and it is very different from the background.

If you need a bit more of contrast with the background in your texts, you can always use the text stroke:
<TextBlock noesis:Stroke="#80000000" noesis:StrokeThickness="2.5" Foreground="White" .../>
(0007590)
stonstad   
2021-11-18 17:55   
OK, thank you Sergio!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2191 [NoesisGUI] Unity3D major always 2021-11-16 21:57 2021-11-17 21:41
Reporter: rachelle Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Scaling broken on 4K monitors post-3.1.0 upgrade
Description: Our top-level UI is controlled by a file called HUD.xaml. In this file, we bind the top-most UI element's width and height to the screen width and height, like so:

<Grid x:Name="LayoutRoot" Width="{Binding Layout.ScreenWidth}" Height="{Binding Layout.ScreenHeight}" RenderTransformOrigin="0.5,0.5">

The default HorizontalAlignment and VerticalAlignment -- Stretch -- is set for this the LayoutRoot element.

In Unity, we bind UnityEngine.Screen width and height to the driving data model as follows:

layout.ScreenWidth = Screen.width;
layout.ScreenHeight = Screen.height;

We are not using Viewboxes. Prior to upgrading to Noesis 3.1.0, the above bindings were sufficient to properly scale our UI and fit it to the screen regardless of monitor size. Post-upgrade, things are not rendering properly on 3840 x 2160 monitors (but are rendering fine on smaller screens). Specifically, the UI doesn't appear to be stretching properly. We only see the top left quarter or so of our main HUD, with the bottom left, bottom right, and top right cut off. This makes the game unplayable and is preventing us from merging our Noesis 3.1.0 upgrade into our build.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007582)
sfernandez   
2021-11-17 18:48   
Hi,

In 3.1 we incorporated support for display DPI scale in the View. This means that if your display has the scale set to 150%, the view will scale the UI by 1.5 (this is set when creating the view in the NoesisView component: _uiView.SetScale(Screen.dpi > 0.0f ? Screen.dpi / 96.0f : 1.0f)).
If you are not using Viewboxes, how is the UI scaled? are you using a LayoutTransform with a ScaleTransform instead?

Anyway, if you don't set the Width/Height of the LayoutRoot, as its alignment is set to Stretch it will automatically fill the entire screen size, why do you need to explicitly set those properties to Screen.width/height?
(0007583)
rachelle   
2021-11-17 20:39   
Thank you, removing bindings to width and height resolved this. And yes, we are using a LayoutTransform with a ScaleTransform instead -- we apply this to each of the 9 segments of a nine slice on our main HUD, as well as any floating/overlay elements throughout the UI.
(0007584)
sfernandez   
2021-11-17 21:41   
Thanks for the update, closing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2188 [NoesisGUI] C# SDK major always 2021-11-15 22:46 2021-11-16 13:08
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.1.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Data Bindings to virtualized list items don't update
Description: I have a list control, and I'm binding to several properties of the items in that list. When the UI elements are removed due to list virtualization, The bound properties don't update, even when they should.

In particular, I'm binding to ListViewItem.IsSelected. When the selected item is scrolled off of the top of the screen, it gets removed because list virtualization is enabled. When a new item is selected, the binding to the newly-selected item updates, but the binding to the newly-deselected item doesn't update. When I then look at the bound properties, it looks like multiple items are selected at the same time.

Comparing against 3.0.12, it looks like the selected ListViewItem isn't removed until after it has been de-selected. Therefore the binding updates, and the bound property has the correct value.
Tags:
Steps To Reproduce: - I have a ListView. Via one of the default styles, VirtualizingPanel.VirtualizationMode=Recycling.
- I am binding ListViewItem.IsSelected to a property on the item's data context.
<Style x:Key="ListMenuListViewItemStyle" TargetType="{x:Type ListViewItem}">
  <Setter Property="IsSelected" Value="{Binding IsSelectedItem}"/>

- For demo purposes, I have debug prints on the Loaded & Unloaded events.
<DataTemplate x:Key="SimpleMenuItemDataTemplateKey">
  <Border x:Name="editBorder" BorderBrush="Transparent" Loaded="Border_OnLoaded" Unloaded="Border_OnUnloaded">

private void Border_OnLoaded(object sender, RoutedEventArgs args)
{
  FrameworkElement fe = sender as FrameworkElement;
  ListViewItem lvi = (ListViewItem)fe.TemplatedParent.TemplatedParent;

  ListMenuItem menuItem = (args.Source as FrameworkElement)?.DataContext as ListMenuItem;
  String name = (menuItem as SimpleListMenuItem).Name;
  string lmiselected = menuItem.IsSelectedItem.ToString();
  String selected = lvi.IsSelected.ToString();
  logger.Error($"OnLoaded(): {name}, ListViewItem.IsSelected = {selected}, DataContextItem.IsSelectedItem = {lmiselected}");
}

// Similar for Unloaded. 

- For demo purposes, I have a debug print on the setter of the IsSelectedItem property.
private bool _isSelectedItem;
public bool IsSelectedItem
{
  get => _isSelectedItem;
  set
  {
    logger.Error($"IsSelectedItem.set: {this.ToString()}, DataContextItem.IsSelectedItem = {value}");

    _isSelectedItem = value;
    RaisePropertyChangedEvent("IsSelectedItem");
  }
}


----------------------------

I am testing this using our language selection screen. the languages are on the list in alphabetical order by language ID.

Using 3.1.1:

On entering the screen, the visible items are loaded, and we explicitly re-select the first item in the list, cs-CZ.

2021-11-15 10:17:51.6579|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = True
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): cs-CZ, ListViewItem.IsSelected = True, DataContextItem.IsSelectedItem = True
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): de-DE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): en-US, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): es-ES, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): fi-FI, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7131|ERROR|OnLoaded(): fr-FR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7729|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = False
2021-11-15 10:17:51.7729|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = True


If I select another language that's currently on the screen, the data bindings for both the old & new selected items update.

2021-11-15 10:17:54.0138|ERROR|IsSelectedItem.set: en-US, DataContextItem.IsSelectedItem = True
2021-11-15 10:17:54.0146|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = False


Then back to the original selection.

2021-11-15 10:17:57.9800|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = True
2021-11-15 10:17:57.9800|ERROR|IsSelectedItem.set: en-US, DataContextItem.IsSelectedItem = False


Then, scroll down to the bottom of the list. Since the list is virtualizing, we get a bunch of unloaded & loaded events, including for the currently selected item.

2021-11-15 10:18:00.1216|ERROR|OnUnloaded(): cs-CZ, ListViewItem.IsSelected = True, DataContextItem.IsSelectedItem = True  <----- Selected item unloaded!
2021-11-15 10:18:00.1240|ERROR|OnLoaded(): hu-HU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1240|ERROR|OnLoaded(): it-IT, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1734|ERROR|OnUnloaded(): es-ES, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1734|ERROR|OnUnloaded(): en-US, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1734|ERROR|OnUnloaded(): de-DE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1765|ERROR|OnLoaded(): ja-JP, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1765|ERROR|OnLoaded(): ko-KR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.1765|ERROR|OnLoaded(): nl-BE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2168|ERROR|OnUnloaded(): hu-HU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2168|ERROR|OnUnloaded(): fr-FR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2168|ERROR|OnUnloaded(): fi-FI, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2192|ERROR|OnLoaded(): pl-PL, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2192|ERROR|OnLoaded(): pt-BR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2192|ERROR|OnLoaded(): ru-RU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2499|ERROR|OnUnloaded(): ja-JP, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2508|ERROR|OnUnloaded(): it-IT, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2508|ERROR|OnLoaded(): sv-SE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2508|ERROR|OnLoaded(): tr-TR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2821|ERROR|OnUnloaded(): nl-BE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2829|ERROR|OnUnloaded(): ko-KR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 10:18:00.2829|ERROR|OnLoaded(): zh-CN, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False


Now that the selected item is unloaded, clicking an item at the bottom of the list updates the new selected item's binding, but not the old selected item's binding.

2021-11-15 10:18:02.0472|ERROR|IsSelectedItem.set: tr-TR, DataContextItem.IsSelectedItem = True
// No IsSelectedItem = False for cs-CZ!


Using 3.0.12:

The load and 'select something on the same screen' steps are the same.

Scrolling down: Unloaded and Loaded events, but the selected item is never unloaded. (cs-CZ isn't in this list.)

2021-11-15 15:37:21.1415|ERROR|OnLoaded(): hu-HU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.1576|ERROR|OnLoaded(): it-IT, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.1908|ERROR|OnUnloaded(): de-DE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.1908|ERROR|OnLoaded(): ja-JP, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2071|ERROR|OnUnloaded(): en-US, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2071|ERROR|OnLoaded(): ko-KR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2411|ERROR|OnUnloaded(): es-ES, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2411|ERROR|OnLoaded(): nl-BE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2764|ERROR|OnUnloaded(): fi-FI, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.2764|ERROR|OnLoaded(): pl-PL, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.6595|ERROR|OnUnloaded(): fr-FR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.6652|ERROR|OnLoaded(): pt-BR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7076|ERROR|OnUnloaded(): hu-HU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7097|ERROR|OnLoaded(): ru-RU, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7269|ERROR|OnUnloaded(): it-IT, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7269|ERROR|OnLoaded(): sv-SE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7407|ERROR|OnUnloaded(): ja-JP, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7407|ERROR|OnLoaded(): tr-TR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7767|ERROR|OnUnloaded(): ko-KR, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7767|ERROR|OnLoaded(): zh-CN, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:21.7987|ERROR|OnUnloaded(): nl-BE, ListViewItem.IsSelected = False, DataContextItem.IsSelectedItem = False


Then, when clicking on an item at the bottom of the list, the data binding updates for the old selected item, then it is removed because of the virtualization.

2021-11-15 15:37:30.9940|ERROR|IsSelectedItem.set: cs-CZ, DataContextItem.IsSelectedItem = False
2021-11-15 15:37:30.9940|ERROR|IsSelectedItem.set: tr-TR, DataContextItem.IsSelectedItem = True
2021-11-15 15:37:30.9940|ERROR|OnUnloaded(): cs-CZ, ListViewItem.IsSelected= False, DataContextItem.IsSelectedItem = False


With 3.0.12, our list of list items only has one where IsSelectedItem is true, while 3.1.1 has multiple where this is true, because the data binding didn't update.
Additional Information:
Attached Files:
Notes
(0007572)
sfernandez   
2021-11-16 13:08   
As I mentioned in #2168 this behavior is consistent with WPF.
The solution is to disable virtualization for that list, or delegate the selection to the SelectedItem property instead of using the container IsSelected property.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2189 [NoesisGUI] Unreal minor always 2021-11-16 12:35 2021-11-16 12:42
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Make UE4 plugin build without PCHs or Unity CPPs
Description: The plugin doesn't build if Unity builds and PCHs are disabled
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1476 [NoesisGUI] C++ SDK major always 2019-05-24 18:52 2021-11-15 10:45
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Freezable objects inside templates are not correctly registered in the NameScope
Description: When a Freezable object inside a template has a name and the template gets applied to a control, the object registered in the NameScope does not correspond to the one that is created for that control visual tree.

For example, in the following template, the DataTrigger is not able to find the correct "DropItem" behavior:

<DataTemplate>
    <Grid>
        <Border x:Name="DragBorder" Background="Transparent" BorderBrush="Transparent" BorderThickness="0">
            <i:Interaction.Behaviors>
                <LL:DropItemBehavior x:Name="DropItem"/>
            </i:Interaction.Behaviors>
        </Border>
    </Border>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding IsDragOver, ElementName=DropItem}" Value="True">
            <Setter Property="Background" Value="DodgerBlue" TargetName="DragBorder"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007256)
sfernandez   
2021-05-24 20:54   
The current workaround is by accesing the freezable object through its owner FrameworkElement. So the previous xaml should work like this:
<DataTemplate>
    <Grid>
        <Border x:Name="DragBorder" Background="Transparent" BorderBrush="Transparent" BorderThickness="0">
            <i:Interaction.Behaviors>
                <LL:DropItemBehavior x:Name="DropItem"/>
            </i:Interaction.Behaviors>
        </Border>
    </Border>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding (i:Interaction.Behaviors)[0].IsDragOver, ElementName=DragBorder}" Value="True">
            <Setter Property="Background" Value="DodgerBlue" TargetName="DragBorder"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2187 [NoesisGUI] C++ SDK minor always 2021-11-12 20:11 2021-11-15 10:45
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Cannot animate RenderTransform: 'root element is frozen'
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=442

Trying to animate a named freezable in a template results in the indicated error.
Tags:
Steps To Reproduce:
<ControlTemplate TargetType="Button">
    <Ellipse Fill="Black">
        <Ellipse.RenderTransform>
            <TranslateTransform X="0" x:Name="trans"/>
        </Ellipse.RenderTransform>
    </Ellipse>
    <ControlTemplate.Triggers>
        <Trigger Property="IsEnabled" Value="True">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="trans" Storyboard.TargetProperty="(TranslateTransform.X)" To="100" Duration="0:0:1"/>
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2183 [NoesisGUI] C++ SDK major always 2021-11-09 16:15 2021-11-12 12:34
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Assert in TimeManager::RemoveClock when removing a pending storyboard
Description: Hi guys,

We're getting a reproducible crash caused by rapidly changing visual states when an element first loads. I've fixed the XAML which caused this (was a data trigger invoking a GoToStateAction fighitng with some code which calls VisualStateManager::GoToState).

The assert was coming from here:

void TimeManager::RemoveClock(Clock* clock, bool clearValue)
{
    NS_ASSERT(mMasterClocks.Find(clock) != mMasterClocks.End() && clock->HasControllableRoot());
    RemoveClocks(clock, clearValue);
}


The issue is that the clock had been registered and was in the mPendingMasterClocks map, and we hadn't had a tick to start the storyboard yet. I've also made a local patch to fix this, though I'm not 100% sure that the fix makes sense. This is my change, take note of my comments:

void TimeManager::RemoveClock(Clock* clock, bool clearValue)
{
    // Begin: SPH [2021-11-09] Ensure we detect pending master clocks before trying to remove a clock that's already started!
    NS_ASSERT(clock->HasControllableRoot());
    if (HasPendingAnimations())
    {
        // Remove the clock from the pending clocks if it hasn't started yet.
        Vector<Clock*>::Iterator iter = mPendingMasterClocks.Find(clock);
        if (iter != mPendingMasterClocks.End())
        {
            mPendingMasterClocks.Erase(iter);
            return;
        }
    }
    // If we get here it must be a master clock
    NS_ASSERT(mMasterClocks.Find(clock) != mMasterClocks.End());
    // End: SPH [2021-11-09]
    RemoveClocks(clock, clearValue);
}


My fix is to simply detect if the clock exists in the pending master clock map. If it does, remove it from there and early out so the RemoveClocks function is not invoked. This seemed to fix out issue without introducing any strange side effects from what I could see.
Tags:
Steps To Reproduce: 1. Create a visual state group
2. Call GoToVisualState twice on the same frame.
3. When it changes state on the second attempt it will try to remove the first clock which is in the pending clock group.
Additional Information:
Attached Files:
Notes
(0007560)
steveh   
2021-11-09 22:50   
I've been running with this change a little while and have noticed some issues. There are times when the clock is in *both* the master list and the pending list. If I don't remove it from the master list the animations never stop being applied so it remains in the original visual state. I've fixed this with the following change:

void TimeManager::RemoveClock(Clock* clock, bool clearValue)
{
    // https://www.noesisengine.com/bugs/view.php?id=2183
    // Begin: SPH [2021-11-09] Ensure we detect pending master clocks before trying to remove a clock that's already started!
    NS_ASSERT(clock->HasControllableRoot());

    if (HasPendingAnimations())
    {
        // Remove the clock from the pending clocks if it hasn't started yet.
        Vector<Clock*>::Iterator iter = mPendingMasterClocks.Find(clock);
        if (iter != mPendingMasterClocks.End())
        {
            mPendingMasterClocks.Erase(iter);

            // This might not exist in the master clocks, so only run this if we had a valid master clock.
            if (mMasterClocks.Find(clock) != mMasterClocks.End())
            {
                RemoveClocks(clock, clearValue);
            }
            return;
        }
    }
    // If we get here it must be a master clock
    NS_ASSERT(mMasterClocks.Find(clock) != mMasterClocks.End());
    // End: SPH [2021-11-09]
    RemoveClocks(clock, clearValue);
}

Again, not sure if this is the correct thing to do, but seems to work a little better.
(0007561)
sfernandez   
2021-11-10 12:47   
Hi, I wasn't able to reproduce the assert by calling GoToVisualState twice in a frame.
But looking at the code, everytime a master clock is registered, it gets added to both mMasterClocks and mPendingMasterClocks. I don't see how it can be in mPendingMasterClocks and not in mMasterClocks when trying to remove it, so I think it would be enough to just check if it exists in mMasterClocks before removing it (which will remove it from both lists), something like this:
void TimeManager::RemoveClock(Clock* clock, bool clearValue)
{
    NS_ASSERT(clock->HasControllableRoot());
    if (mMasterClocks.Find(clock) != mMasterClocks.End())
    {
        RemoveClocks(clock, clearValue);
    }
}
(0007568)
sfernandez   
2021-11-12 10:48   
Could you please confirm that my code is also working in your game?
(0007569)
steveh   
2021-11-12 11:12   
Hey Sergio, I've just tested your change and it works great. Much appreciated.
(0007570)
sfernandez   
2021-11-12 12:34   
Thanks for the confirmation, I've included the fix for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2086 [NoesisGUI] C++ SDK minor sometimes 2021-08-17 13:33 2021-11-11 20:43
Reporter: Susanna.Rowland Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: ContentTemplate binding with a converter is not displaying the content
Description: From forums post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2389

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2186 [NoesisGUI] C++ SDK minor always 2021-11-11 19:10 2021-11-11 19:46
Reporter: nvonhertzen Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: DynamicTextureSourceProxy extends incorrect class in reflection
Description: The DynamicTextureSourceProxy extends ImageSourceProxy but has NS_DECLARE_REFLECTION(DynamicTextureSourceProxy, BaseRenderProxy), which results in a assert for debug builds in RenderTree::GetRenderProxy with NS_ASSERT(proxy == 0 || DynamicCast<T*>(proxy) != 0) as the DynamicCast fails.

Updating the NS_DECLARE_REFLECTION(DynamicTextureSourceProxy, BaseRenderProxy) to NS_DECLARE_REFLECTION(DynamicTextureSourceProxy, ImageSourceProxy) appears to fix this.

Tags:
Steps To Reproduce: Use a DynamicTextureSource in an ImageBrush
Additional Information:
Attached Files:
Notes
(0007567)
sfernandez   
2021-11-11 19:46   
Thanks a lot for the report.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2180 [NoesisGUI] C# SDK major always 2021-11-06 03:17 2021-11-11 10:00
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser: Links that want to be in a new window show outside the main UI
Description: Found with WebBrowser 1.0.3.

When clicking a link, where the link wants to be in a new window/new tab, it shows/tries to show the page outside the main UI.

Expected: Since this is a UI Element within a larger application, I expect the new window/new tab concept to be overridden, and it to open the link in the same area as the previous page.

Actual, Both platforms: The UI Element in the main application stops responding. The rest of the UI in the main application is fine.
Actual, Windows x64: It somehow opens a second window. Clicking more links open more windows.
Actual, Linux ARM64: I'm not running X, so there's no place for a second window to appear. Clicking the link doesn't show the linked page.
Tags:
Steps To Reproduce: Click any link that opens in a new window.

(Your bug tracker is parsing HTML inside a 'pre' tag. That's weird! Using square brackets instead.)
[a href="https://www.google.com/" target="_blank"]Google in a new window[/a]
Additional Information:
Attached Files:
Notes
(0007565)
sfernandez   
2021-11-11 10:00   
Fixed for WebBrowser 1.0.4


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2181 [NoesisGUI] C# SDK crash sometimes 2021-11-06 05:53 2021-11-10 20:04
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser: Invalid characters in the header crash the entire application
Description: Seen with WebBrowser 1.0.3.

If browsing to a web page that returns a bad character in a header, the entire application crashes. Yes, such a header is violating the HTTP spec, but it shouldn't take down the app.

Seen in an unhandled exception handler:
2021-11-05 23:37:24.8841|FATAL|Unhandled exception, IsTerminating = True
System.ArgumentException: Specified value has invalid Control characters. (Parameter 'value')
   at System.Net.HttpValidationHelpers.CheckBadHeaderValueChars(String value)
   at System.Net.WebHeaderCollection.Add(String name, String value)
   at System.Net.WebHeaderCollection.Add(HttpResponseHeader header, String value)
   at NoesisApp.NoesisResourceRequestHandler.GetHeaders(NameValueCollection responseHeaders)
   at NoesisApp.NoesisResourceRequestHandler.GetWebResponse(CefRequest request, CefResponse response)
   at NoesisApp.NoesisResourceRequestHandler.GetNavigationArgs(CefRequest request, CefResponse response)
   at NoesisApp.NoesisResourceRequestHandler.OnResourceResponse(CefBrowser browser, CefFrame frame, CefRequest request, CefResponse response)
   at Xilium.CefGlue.CefResourceRequestHandler.on_resource_response(cef_resource_request_handler_t* self, cef_browser_t* browser, cef_frame_t* frame, cef_request_t* request, cef_response_t* response)
Tags:
Steps To Reproduce: AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException, and log the exception.

Visit a web page that returns an invalid character in a header. I noticed this with http://www.bakerhughes.com, which returns a header with a 0x01 character in it, which isn't valid. According to https://source.dot.net/#System.Net.Requests/HttpValidationHelpers.cs,78, the invalid characters are 0x7F and 0x00 through 0x1F, with the exception of 0x09 Tab. (The exact code is "if (c == 127 || (c < ' ' && c != '\t'))".)

When I visit that URL, in method NoesisResourceRequestHandler.GetHeaders(), the header map contains the "Set-Cookie" header, which has 5 values, one of which is "___utmvavFuIMDBZ=RNYVuUr; path=/; Max-Age=900", or "___utmvavFuIMDBZ=RNY\x01VuUr; path=/; Max-Age=900". It's hard to tell because much of the code is optimized, but it looks like that's the character that's tripping it up. (The exact cookie returned by that page changes, but it seems to always return one with a "\x01" in it.

Unfortunately, it doesn't look like there's a nice way to check that the string is valid. HttpValidationHelpers is an internal class to the System.Net.WebHeaderCollection assembly, so we can't call that. So it looks like attempting to do WebHeaderCollection.Add() and catching the exception is the only solution.

if there are multiple headers with the same name (multiple cookies, in this case), it would be nice to preserve the valid ones, and only skip the invalid ones. It looks like WebHeaderCollection.Add can be called multiple times, and responseHeaders.GetValues(headername) can return a string array. I haven't checked if iterating over that array and calling Add on each one is equivalent to calling Add on responseHeaders.Get(headername).
Additional Information:
Attached Files:
Notes
(0007563)
sfernandez   
2021-11-10 20:04   
Resolved by cleaning the invalid characters of the value before adding it to the headers.
Fixed for WebBrowser 1.0.4


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2172 [NoesisGUI] C# SDK feature always 2021-10-27 17:54 2021-11-05 19:30
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser should fire an event when a text box is focused
Description: WebBrowser should fire an event when a text box is focused

We need to open our virtual keyboard when a text box gets focus and so need to know when that happens.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007559)
hcpizzi   
2021-11-04 13:17   
You can't know when a text box is focused, but you can know when a virtual keyboard is requested. I've added the event for that.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2166 [NoesisGUI] C# SDK feature always 2021-10-27 13:24 2021-11-05 19:30
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser missing the Navigated event
Description: WPF WebBrowser control's "Navigated" event:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.webbrowser.navigated?view=windowsdesktop-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2167 [NoesisGUI] C# SDK feature always 2021-10-27 13:27 2021-11-05 19:30
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser missing the LoadCompleted event
Description: WPF WebBrowser control implements the LoadCompleted event:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.webbrowser.loadcompleted?view=windowsdesktop-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2170 [NoesisGUI] C# SDK major always 2021-10-27 14:55 2021-11-05 19:30
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WebBrowser Source property not updated upon completed navigation
Description: WebBrowser Source property not updated upon completed navigation
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2177 [NoesisGUI] C++ SDK major always 2021-11-04 16:49 2021-11-05 19:29
Reporter: ExtZGholson Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Combo box KeyboardNavigation.DirectionalNavigation="Cycle" not functioning
Description: When trying to use KeyboardNavigation.DirectionalNavigation="Cycle" in a combo box, the focus does not wrap on the item list.
Tags: Combo box, Focus
Steps To Reproduce: Create a combo box and populate it with list items. Scroll using a dpad to the bottom and attempt to scroll past the bottom item. With cycle, the player would expect the focus to return to the top of the list. In this case, it sticks at the bottom.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2162 [NoesisGUI] C# SDK major always 2021-10-26 22:34 2021-11-03 17:46
Reporter: darthmaule2 Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Linux
Summary: WebBrowser not responding to touch events, including pinch-to-zoom
Description: WebBrowser not responding to touch events, including pinch-to-zoom
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2161 [NoesisGUI] C++ SDK minor always 2021-10-26 16:52 2021-11-03 13:37
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: {x:Null} is not a valid type for TextDecorations dependency property
Description: Hi guys,

Our artists had an issue where simply checking and unchecking the Underline button in Blend caused an error to be output from Noesis.

If you have a <TextBlock />, e.g:

<TextBlock Text="Hello World" Foreground="Black" />

And then you click the "Underline" button in Blend, it adds the TextDecoration property:

<TextBlock Text="Hello World" Foreground="Black" TextDecorations="Underline" />

If you uncheck the button, rather than removing the attribute Blend sets it to {x:Null}:

<TextBlock Text="Hello World" Foreground="Black" TextDecorations="{x:Null}" />

This then causes the following error to be output from Noesis:

"Null is not a valid value for property 'TextBlock.TextDecorations'."

This fails our internal smoke tests as we have automated tests to ensure that there are no erors output from Noesis. The fix is to "Reset" the property in Blend to remove the attribute. Just thought I'd raise it here since Blend supports {x:Null} on TextDecorations so I thought Noesis should probably support it as well.
Tags:
Steps To Reproduce: 1. Create a text block in Blend.
2. Click the "Underline" button in the Text properties in the properties panel in Blend
3. Uncheck the "Underline" button in the Text properties in the properties panel in Blend.
4. Load the file. Noesis will output an error.
Additional Information:
Attached Files:
Notes
(0007540)
jsantos   
2021-10-26 17:15   
Thanks for this report steve


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2106 [NoesisGUI] Unity3D minor always 2021-09-08 18:46 2021-11-03 12:45
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: TabControl: [noesis] Visual is null
Description: I upgraded to Noeiss 3.0.12 form 3.0.4. When I click on a tab control header I receive the error, "[Noesis] Visual is null".

[noesis] Visual is null
UnityEngine.Debug:LogError (object)
NoesisUnity:UnityLog (int,string) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:148)
Noesis.View:MouseButtonDown (int,int,Noesis.MouseButton) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:186)
NoesisView:ProcessEvent (UnityEngine.Event,bool,bool) (at Assets/NoesisGUI/Plugins/NoesisView.cs:1103)
NoesisView:OnGUI () (at Assets/NoesisGUI/Plugins/NoesisView.cs:1225)

I'm not hooking tab control buttons or events. If the error message reported the parent, or more descriptive detail I could likely dig deeper.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 01.PNG (57,462 bytes) 2021-09-08 18:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1483&type=bug
02.PNG (1,985,732 bytes) 2021-09-08 18:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1484&type=bug
SettingsControl.xaml (45,806 bytes) 2021-09-08 18:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1485&type=bug
ResourcesTheme.xaml (50,885 bytes) 2021-09-08 20:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1486&type=bug
Notes
(0007425)
sfernandez   
2021-09-08 20:28   
Are you using our Theme styles for the TabControl/TabItem or do you have your own? Could you share the styles if they are diffferent?
(0007426)
stonstad   
2021-09-08 20:53   
Here is the XAML I use for defining custom themes. I'm not seeing anything to override TabControl, but I acknowledge I am not super savvy at XAML.
(0007468)
stonstad   
2021-09-21 15:52   
I'm looking to upgrade to 3.1.x soon. I can advise if I see the same behavior in 3.1.x.
(0007470)
sfernandez   
2021-09-22 10:00   
Yes please let us know if this is still happening for you with latest 3.1 version, thanks.
(0007555)
sfernandez   
2021-11-03 11:42   
I was able to reproduce this issue with the xaml attached in the forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2463

<UserControl
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
    <TabControl Height="181.084" Width="493.681">
        <TabItem Header="TabItem1">
            <Grid Background="#FFE5E5E5"/>
        </TabItem>
        <TabItem Header="TabItem2">
            <Grid>
                <ListView HorizontalAlignment="Left" Height="100.494" Margin="10,10,0,0" VerticalAlignment="Top" Width="449.681">
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="name" Width="160"/>
                        </GridView>
                    </ListView.View>
                </ListView>
            </Grid>
        </TabItem>
    </TabControl>
</UserControl>


I'll try to fix it for next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2114 [NoesisGUI] C# SDK crash random 2021-09-16 16:14 2021-10-28 19:00
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: MultiBindingExpression_UpdateSource Access Violation Crash
Description: Random runtime crash. Was playing game, approximately ten minutes in, and this crash occured.

Noesis.dll caused an Access Violation (0xc0000005)
  in module Noesis.dll at 5273e43b.


========== OUTPUTTING STACK TRACE ==================

0x00007FFA5273E43B (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA52745B49 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA5273F5C4 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA5273D789 (Noesis) MultiBindingExpression_UpdateSource
0x00007FFA5286DF96 (Noesis) Noesis_RegisterLogCallback
0x00007FF74CF41B14 (Unity) GfxDeviceWorker::RunCommand
0x00007FF74CF47FBD (Unity) GfxDeviceWorker::RunExt
0x00007FF74CF480D8 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF74B66666E (Unity) Thread::RunThreadWrapper
0x00007FFADA547034 (KERNEL32) BaseThreadInitThunk
0x00007FFADC002651 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
Tags:
Steps To Reproduce: Using the patched version of 3.0.12.x that Sergio provided for https://www.noesisengine.com/bugs/view.php?id=2109
Additional Information:
Attached Files: Crash_2021-09-16_140425551.zip (1,056,289 bytes) 2021-09-16 16:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1490&type=bug
Crash_2021-10-28_005102883.zip (1,410,748 bytes) 2021-10-28 02:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1531&type=bug
Crash_2021-10-28_010128243.zip (1,199,701 bytes) 2021-10-28 03:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1532&type=bug
Crash_2021-10-28_2_165334345.zip (1,599,602 bytes) 2021-10-28 19:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1533&type=bug
Crash_2021-10-28_2_165334345-2.zip (1,599,602 bytes) 2021-10-28 19:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1534&type=bug
Notes
(0007472)
sfernandez   
2021-09-22 10:40   
I generated a new library that should fix the crash and shows an error message to help me identify the situation causing the crash:
https://drive.google.com/file/d/1QlVb-4q8HVo6dLszDadg7ykmxZdbOCor/view?usp=sharing

Please let me know if you get an error message like "Adding '<classname>' node to '<classname>' and parent is not connected to the View".
(0007473)
stonstad   
2021-09-22 12:22   
Thanks -- I'm trying it out today. I'll report back.
(0007483)
stonstad   
2021-09-27 22:01   
OK, I finally encountered it.

[noesis] Adding 'Grid' node to 'Grid' and parent is not connected to the View
UnityEngine.Debug:LogError (object)
NoesisUnity:UnityLog (int,string) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:148)
Noesis.View:Update (double) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:333)
NoesisView:ExternalUpdateInternal () (at Assets/NoesisGUI/Plugins/NoesisView.cs:910)
NoesisView:LateUpdate () (at Assets/NoesisGUI/Plugins/NoesisView.cs:880)

No crashes.
(0007485)
sfernandez   
2021-09-28 10:02   
Have you identified how to reproduce it?
I was expecting different types involved and I'm still not sure what is the source of this situation.
(0007487)
stonstad   
2021-09-28 16:50   
(Last edited: 2021-09-28 16:50)
It may be related to a race condition in my code. I know what I was doing when I first saw it (thanks for the output) but I'm not sure if it is consistently reproducible, or where in the visual tree / code-behind it occurs. I'll keep looking today and reply back with more detail as I learn more.

(0007502)
stonstad   
2021-10-06 19:15   
I came across a scenario the other day that consistently crashed Noesis. I believe I had mistakenly added a rectangle to a grid twice in a row -- a cut and paste error. I intended to return back to it and file a report but I was under a deadline to get things working. I am going to upgrade to 3.1.x today -- how do we want to proceed with this bug/behavior?
(0007504)
sfernandez   
2021-10-06 20:02   
Were you using the patched library I sent you? All those crashes are probably different from the one that started this ticket, can you attach the new crash dumps?
(0007547)
stonstad   
2021-10-28 02:55   
Different crash on 3.0.12.
(0007548)
stonstad   
2021-10-28 02:58   
Both crashes, first and second, happened using the patched library.
(0007549)
stonstad   
2021-10-28 03:10   
Here is another one -- likely the same crash behavior as the second and most recent reported crash. These crashes are repeatable and they happen at runtime (not during app domain load/unload).

I am testing space battles with large numbers of ships which have corresponding targeting UI framework elements. Noesis is stable with 100+ targets with position and blend updating once per frame. However, once I enable the ability for ships to be destroyed -- which also destroys targeting reticles, I find that I get crashes in a few seconds of each battle starting.

The UI which displays these targets is long-lived and is never destroyed. The UI elements are added and removed from a Canvas. The control which contains the canvas implements OnRendering via the following syntax:

  private void InitializeComponent()
        {
            Loaded += (sender, e) =>
            {
                _View = View;
                _View.Rendering += OnRendering;
            };
            Unloaded += (sender, e) =>
            {
                _View.Rendering -= OnRendering;
                _View = null;
            };

            GUI.LoadComponent(this, "Assets/User Interface/Screens/Game/Overlay/Targeting/TargetingControl.xaml");
            _Root = this.Content as FrameworkElement;
            _Canvas = _Root.FindName("_Canvas") as Canvas;
        }

I hope this information is helpful. Thank you!
(0007551)
stonstad   
2021-10-28 19:00   
(Last edited: 2021-10-28 19:00)
Below: Possibly the same crash as reported on 10/27 but the stack trace is different and the error is associated with d3d11.dll.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2132 [NoesisGUI] C# SDK feature always 2021-09-28 06:39 2021-10-27 10:56
Reporter: satorp Platform:  
Assigned To: aschmitt OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Windows
Summary: VS2019 support for Managed SDK
Description: Hi, I tried to build the latest Noesis.GUI.Extensions source (3.1.1) using VS2019 (16.9.8) and received the following error:
-------------------------------------------------------------------------------------------------------------------------------------------------------------
C:\Program Files\dotnet\sdk\5.0.204\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.NET.Sdk.WindowsDesktop.targets(118,5): error NETSDK1022: Duplicate 'Page' items were included. The .NET SDK includes 'Page' items from your project directory by default. You can either remove these items from your project file, or set the 'EnableDefaultPageItems' property to 'false' if you want to explicitly include them in your project file. For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'Theme\NoesisTheme.Brushes.DarkAqua.xaml'; 'Theme\NoesisTheme.Brushes.DarkBlue.xaml'; 'Theme\NoesisTheme.Brushes.DarkCrimson.xaml'; 'Theme\NoesisTheme.Brushes.DarkEmerald.xaml'; 'Theme\NoesisTheme.Brushes.DarkGreen.xaml'; 'Theme\NoesisTheme.Brushes.DarkLime.xaml'; 'Theme\NoesisTheme.Brushes.DarkOrange.xaml'; 'Theme\NoesisTheme.Brushes.DarkPurple.xaml'; 'Theme\NoesisTheme.Brushes.DarkRed.xaml'; 'Theme\NoesisTheme.Brushes.LightAqua.xaml'; 'Theme\NoesisTheme.Brushes.LightBlue.xaml'; 'Theme\NoesisTheme.Brushes.LightCrimson.xaml'; 'Theme\NoesisTheme.Brushes.LightEmerald.xaml'; 'Theme\NoesisTheme.Brushes.LightGreen.xaml'; 'Theme\NoesisTheme.Brushes.LightLime.xaml'; 'Theme\NoesisTheme.Brushes.LightOrange.xaml'; 'Theme\NoesisTheme.Brushes.LightPurple.xaml'; 'Theme\NoesisTheme.Brushes.LightRed.xaml'; 'Theme\NoesisTheme.Colors.Dark.xaml'; 'Theme\NoesisTheme.Colors.Light.xaml'; 'Theme\NoesisTheme.DarkAqua.xaml'; 'Theme\NoesisTheme.DarkBlue.xaml'; 'Theme\NoesisTheme.DarkCrimson.xaml'; 'Theme\NoesisTheme.DarkEmerald.xaml'; 'Theme\NoesisTheme.DarkGreen.xaml'; 'Theme\NoesisTheme.DarkLime.xaml'; 'Theme\NoesisTheme.DarkOrange.xaml'; 'Theme\NoesisTheme.DarkPurple.xaml'; 'Theme\NoesisTheme.DarkRed.xaml'; 'Theme\NoesisTheme.Fonts.xaml'; 'Theme\NoesisTheme.LightAqua.xaml'; 'Theme\NoesisTheme.LightBlue.xaml'; 'Theme\NoesisTheme.LightCrimson.xaml'; 'Theme\NoesisTheme.LightEmerald.xaml'; 'Theme\NoesisTheme.LightGreen.xaml'; 'Theme\NoesisTheme.LightLime.xaml'; 'Theme\NoesisTheme.LightOrange.xaml'; 'Theme\NoesisTheme.LightPurple.xaml'; 'Theme\NoesisTheme.LightRed.xaml'; 'Theme\NoesisTheme.Styles.xaml'
-------------------------------------------------------------------------------------------------------------------------------------------------------------

I think the cause is the UseWPF flag in the project, which triggers implicit XAML include behavior in .NET 5 SDK (included in VS2019). I understand that currently the Managed SDK only supports VS2017, but since the Native SDK has now supported VS2019, it will be nice if we could upgrade the Managed SDK as well.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007541)
aschmitt   
2021-10-26 20:20   
Project files have been updated


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1990 [NoesisGUI] Unity3D minor always 2021-04-30 08:16 2021-10-22 00:51
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: GridSplitter is missing
Description: The GridSplitter control is missing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2153 [NoesisGUI] C# SDK minor always 2021-10-20 02:20 2021-10-20 13:01
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: PNG Alpha Transparency not applied properly depending on PNG format
Description: We've got a PNG image which is not 32-bit RGBA. When displayed in some contexts, the alpha is not blended with the background properly.

I have seen this issue on both Windows x64 and Linux ARM64.

Workaround: Convert the image to full RGBA.

Attached:
- Both the PNG that causes the issue, and the result of converting it to RGBA, which fixes the issue.
- Screenshot of the issue occurring on Windows x64. It ends up drawing black.
- Picture of the issue occurring on Linux ARM64, on our real device. It ends up drawing transparent, so the video overlay shows through.
Tags:
Steps To Reproduce: I can reproduce the issue very reliably in our real application, but in the real application, the Image object is 20 levels deep in the Visual Tree. But in a standalone application, with just the Image over top of a colored background, it works fine. Unfortunately, I'm not sure exactly what UI Controls need to be set up in order to trigger this bad alpha blending.

However, I do know what is needed in a PNG image.

Examining the images under Linux:
$ file *.png
icon_batt_plug_in_broken.png: PNG image data, 128 x 128, 8-bit gray+alpha, non-interlaced
icon_batt_plug_in_works.png:  PNG image data, 128 x 128, 8-bit/color RGBA, non-interlaced


Using https://www.nayuki.io/page/png-file-chunk-inspector:
- Broken
  - Bit depth: 8 bits per channel
  - Color type: Grayscale+Alpha (4)
- Works
  - Bit depth: 8 bits per channel
  - Color type: RGBA (6)
Additional Information:
Attached Files: icon_batt_plug_in_broken.png (1,459 bytes) 2021-10-20 02:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1520&type=bug
icon_batt_plug_in_works.png (8,989 bytes) 2021-10-20 02:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1521&type=bug
Windows-ScreenshotTestApp.png (4,503 bytes) 2021-10-20 02:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1522&type=bug
Linux-PictureOfRealApp.jpg (37,030 bytes) 2021-10-20 02:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1523&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2152 [NoesisGUI] C++ SDK minor always 2021-10-19 20:11 2021-10-19 20:11
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: VisualBrush cannot render a Visual that is not part of the visual tree
Description: If the Visual property of the brush is set to an element which is not part of the tree anymore, the brush renders nothing.

An example usecase is a drag&drop preview of the dragged element, if that element gets removed from its source during the drag operation.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1320 [NoesisGUI] C# SDK major always 2018-07-19 16:20 2021-10-19 19:07
Reporter: Faerdan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Code-behind classes in unloaded assemblies
Description: Code-behind classes in referenced assemblies are not found if the assembly is not already loaded.

In this same situation WPF will load the referenced assembly, making the class available.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1283 [NoesisGUI] C# SDK major always 2018-04-08 12:34 2021-10-19 19:07
Reporter: samos Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Unknown type exception referencing custom control from seperate dll
Description: When trying to load a custom control that has been created in a seperate project Noesis GUI 2.1 throws an unknown type error.
XAML shown as being valid in WPF Designer.
Tags:
Steps To Reproduce: Open attached project and run.

The TimeConverter Class has been moved from the main project to a seperate project, this causes the unknown type error.
including the TimeConverter Class back into the main project causes it to work again, even though the reference object in the XAML is from the external DLL.
Additional Information: This same error causes other issues also.
If creating a style in a resource dictionary that references a type that is in an external DLL, then a type not found exception is raised.
Attached Files: CustomControl.zip (4,648,053 bytes) 2018-04-08 12:34
https://www.noesisengine.com/bugs/file_download.php?file_id=927&type=bug
Notes
(0005182)
sfernandez   
2018-04-10 23:00   
Noesis doesn't automatically load assemblies.
You should load them into the domain before starting loading any xaml.

Are you already doing that?
(0005186)
samos   
2018-04-11 11:18   
Suspected that may be the response. I am investigating whether I can port an existing WPF LOB application to Noesis at the moment. The application is structured into multiple projects for ease of maintenance and extendability. WPF is obviously taking care of loading assemblies into the app domain when they are needed, so we don't see this issue.

For now I will pre-load assemblies at startup.

Thanks for the response, and Noesis 2.1 is looking nice.

Kind Regards

Steve


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2003 [NoesisGUI] C# SDK feature always 2021-05-07 00:20 2021-10-18 14:24
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: XmlnsDefinition and XmlnsPrefix missing
Description: Not 100% sure how to even reference Noesis in an assembly that specifies controls, converters and such, but I'm assuming as soon as
Noesis moves to the new package approach and includes an AssemblyDefinition for itself, then this will become important.
I'd like to declare a default namespace for Caliburn.Noesis which I will also turn into a package once Noesis is one, with Noesis as a dependency.
For that I'll need those two attributes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2148 [NoesisGUI] Unreal major always 2021-10-13 16:07 2021-10-18 12:47
Reporter: maxnt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: MediaElement unable to Pause or Seek
Description: Unable to pause or seek when setting source on NoesisApp::MediaElement

Quick work around for Pause issue is to manually set SetSpeedRatio(0.0f) before Pause()
Pause is due to MediaPlayer->SetRate(Rate) when Player Suspended event is invoked (NoesisMediaPlayer.cpp line 353)

Seek issue is due to MediaOpened flag being false until OnRendering is called in SetPosition NoesisMediaPlayer::SetPosition
Quick fix it to add MediaPlayer->Seek(FTimespan::FromSeconds(Position)); to NoesisMediaPlayer::OnRendering line 267
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007524)
sfernandez   
2021-10-18 12:47   
Solved in changeset r10782


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2123 [NoesisGUI] C# SDK crash always 2021-09-17 18:00 2021-10-08 13:08
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Assigning ColumnProperty throws exceptions
Description: myControl.SetValue(Grid.ColumnProperty, 0);

will throw an InvalidCastException
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007510)
sfernandez   
2021-10-08 13:08   
Column/Row properties in Noesis are defined as uint while WPF uses int. We should probably change that, but in the meantime there is an easy workaround:
Grid.SetColumn(myControl, 0);


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2139 [NoesisGUI] C++ SDK major always 2021-10-06 18:46 2021-10-06 18:46
Reporter: aschmitt Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RoutedCommands are not working with x:Static
Description: RoutedCommands are not registered to reflection so they cannot be used for a command binding with the x:Static markup extension.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2138 [NoesisGUI] C# SDK trivial always 2021-10-06 16:52 2021-10-06 16:52
Reporter: aschmitt Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: CommandBinding is missing parameterized constructors
Description: See title. A command binding cannot be created with command and handlers directly via constructor parameters.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2137 [NoesisGUI] C# SDK feature have not tried 2021-10-05 19:30 2021-10-06 11:52
Reporter: AndreN Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Better FontProvider API to allow easier reloading
Description: Hello

This feature request is an outcome of a forum discussion.

When implementing a font provider for hot reloading, it is very hard to trigger the hot reloading with the method RaiseFontChanged(...), since it takes a lot of arguments (font name, weight, stretch and style), which are usually unknown to the font provider. The font provider previously just opened the file as stream and hand it over to the Noesis API, thus it does not even know the name of the font, just the folder and filename.

It would be great to enhance the API in a way, that it is easier to implement font providers for hot reloading. I could imagine two ways of doing it:
1.) either the Noesis API returns this information to the font provider, so it can cache it and later reuse to trigger reloading
2.) or the Noesis API allows reloading by folder and filename

Maybe you have even better ideas.

Thanks in advance.
Tags: C#, Fonts
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2135 [NoesisGUI] Unity3D minor always 2021-09-29 19:14 2021-09-30 19:41
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Resource providers are case sensitive
Description: As explained in the following forum post:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2437

If a texture is stored in disk as "image.JPG" and used in xaml as "image.jpg", Noesis will complain it can't find the image.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2117 [NoesisGUI] C# SDK minor always 2021-09-17 16:25 2021-09-30 18:54
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Reloading the texture (via RaiseTextureChanged) which is used in tiled ImageBrush doesn't recalculate the brush tiling
Description: Hi guys,
there is a new bug (since v3.0 or maybe even v3.1.0 as I didn't try it) with texture reloading for ImageBrush.

Example XAML:
    <ImageBrush x:Key="WidgetBackgroundImageTexture"
                ImageSource="WidgetBackground.png"
                TileMode="Tile"
                Stretch="Uniform"
                Viewport="0,0,5.5,5.5"
                ViewportUnits="Absolute" />


See the attached WidgetBackground.png file and screenshots A and B.

Screenshot A: the texture is loaded immediately and RaiseTextureChanged is never called. Proper appearance.

Screenshot B: the texture is not loaded immediately. How it's loaded by our custom TextureProvider (worked fine in v3.0):
- TextureProvider via GetTextureInfo method provides actual texture dimensions
- TextureProvider via LoadTexture method provides null result (as the texture is not yet loaded) and starts loading the texture asynchronously
- once the texture is loaded, RaiseTextureChanged is invoked

After the fix in https://www.noesisengine.com/bugs/view.php?id=2115 RaiseTextureChanged does work but there is this bug with the ImageBrush not being updated.


Besides, I've noticed a difference in how the tiling works in 3.1 compared to 3.0 (for now I'm using instant loading as it doesn't causes any loading bugs). I have to modify all the cases where we're using tiling brushes (at least by modifying Viewport) but the tiling behavior is still visually slightly different compared to what it was before. I see there are no changes in v3.1 release notes regarding this. Is this an expected change? What exactly was changed? I'm really confused regarding this.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WidgetBackground.png (1,127 bytes) 2021-09-17 16:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1491&type=bug
A_Proper.png (1,089,238 bytes) 2021-09-17 16:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1492&type=bug
B_Issue.png (1,093,056 bytes) 2021-09-17 16:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1493&type=bug
Notes
(0007456)
ai_enabled   
2021-09-17 18:39   
Regarding the ImageBrush tiling. I've noticed that there is no differences when using Viewport+ViewportUnits in 3.0.11 vs 3.1.1 however something has definitely changed regarding the Viewbox and ViewboxUnits properties and how they applied.
(0007458)
sfernandez   
2021-09-20 11:03   
(Last edited: 2021-09-20 11:03)
Hi, I'm going to investigate this reloading issue and let you know.
Regarding the tiling, in 3.1 we implemented all Tile modes to properly work in atlas textures. So if you were using a subrect of the source image, it will behave now different from 3.0 version. In 3.1 all tiling modes should look like in WPF.

(0007462)
sfernandez   
2021-09-20 16:33   
I found that hot-reloding is not affecting frozen images, we need to think how to solve that properly.

Apart from that, I noticed that you defined the background image as follows:
<ImageBrush x:Key="WidgetBackgroundImageTexture"
                ImageSource="/UI/Images/Backgrounds/WidgetBackground.png"
                TileMode="Tile"
                Stretch="Uniform"
                Viewport="0,0,8,8"
                Viewbox="0,0,12,12"
                ViewboxUnits="Absolute"
                ViewportUnits="Absolute" />

The Viewbox is bigger than Image size, which is 8x8, so this will leave en empty space between tiles now (according to WPF behavior). This is probably what you are seeing different from 3.0, where viewbox bigger than image was ignored.
(0007463)
ai_enabled   
2021-09-20 16:46   
Hi Sergio,
thank you for your explanation. Regarding the Viewbox—yes, I was using it this way with the previous NoesisGUI version to get the desired look (for some reason it was the only approach that worked fine). I've removed Viewbox property altogether and fine-tuned Viewport instead—seems good now.

Regarding the frozen images—I hope you can find a useful approach soon. Good luck!
(0007464)
sfernandez   
2021-09-20 18:24   
I fixed the reloading issue, please download a patched library here:
https://drive.google.com/file/d/1-JUB0k1nLyJIa4c9hZdrpMkl6VDXsDXA/view?usp=sharing
(0007493)
sfernandez   
2021-09-30 18:47   
Did you have a chance to try the patched library?
(0007494)
ai_enabled   
2021-09-30 18:51   
(Last edited: 2021-09-30 18:51)
Hi Sergio,
I'm not sure but the comment was not posted here, perhaps a cookie was outdated (that happens often!) and I didn't check after posting whether it was actually posted.
I've replied on the same date—I've tried the patched library and the issue is resolved. Please close this ticket!
The only blocking issue preventing us from using 3.1 now is https://www.noesisengine.com/bugs/view.php?id=2121

Regards!

(0007495)
sfernandez   
2021-09-30 18:54   
Thanks, that ticket was the next thing we wanted to resolve.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2109 [NoesisGUI] C# SDK crash random 2021-09-10 17:28 2021-09-30 18:41
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1.2  
Platform: Any
Summary: Noesis_View_Update Crash
Description: I'm getting random crashes in 3.0.12. They did not occur in 3.0.4.

Stack trace, editor.log, error.log, and crash.dmp included. If this is resolved in 3.1.x, and 3.1.x is stable, I'll perform the upgrade.

0x00007FFA38B6C624 (Noesis) Noesis_View_Update
0x00007FFA38B6C644 (Noesis) Noesis_View_Update
0x00007FFA38B6CB84 (Noesis) Noesis_View_Update
0x00007FFA38B78616 (Noesis) Noesis_ClearExtendTypes
0x000001D1BB0FC85E (Mono JIT Code) (wrapper managed-to-native) Noesis.Extend:Noesis_ClearExtendTypes ()
0x000001D1BB0EE5C3 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\Extend.cs:98] Noesis.Extend:Shutdown ()
0x000001D1BB0ED283 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\Extend.cs:37] Noesis.Extend:OnDomainUnload (object,System.EventArgs)
0x000001D1BB0E4D85 (Mono JIT Code) (wrapper delegate-invoke) <Module>:invoke_void_object_EventArgs (object,System.EventArgs)
0x000001D1BB0E4A5A (Mono JIT Code) System.AppDomain:DoDomainUnload ()
0x000001D1AE2209E8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFA38EFE670 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\mini\mini-runtime.c:2816] mono_jit_runtime_invoke
0x00007FFA38E82AF2 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\object.c:2921] do_runtime_invoke
0x00007FFA38DF84D4 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\appdomain.c:2735] mono_domain_try_unload
0x00007FFA38EF050A (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\unity-utils.c:748] mono_unity_domain_unload
0x00007FF75CD3A2BA (Unity) UnloadDomain
0x00007FF75CD2DE8B (Unity) MonoManager::CreateAndSetChildDomain
0x00007FF75CD2CAD9 (Unity) MonoManager::BeginReloadAssembly
0x00007FF75CD359B3 (Unity) MonoManager::ReloadAssembly
0x00007FF75D4D7BEE (Unity) ReloadAllUsedAssemblies
0x00007FF75D6FAC69 (Unity) ImportAndPostprocessOutOfDateAssets
0x00007FF75D7067AB (Unity) RefreshInternalV2
0x00007FF75D70E7D6 (Unity) StopAssetImportingV2
0x00007FF75D707959 (Unity) RefreshV2
0x00007FF75D69F7F0 (Unity) AssetDatabase::Refresh
0x00007FF75D2053EE (Unity) Application::AutoRefresh
0x00007FF75D638F30 (Unity) ContainerWindow::ContainerWndProc
0x00007FFADBD2E858 (USER32) CallWindowProcW
0x00007FFADBD2E3DC (USER32) DispatchMessageW
0x00007FFADBD40BC3 (USER32) SendMessageTimeoutW
0x00007FFADC050C54 (ntdll) KiUserCallbackDispatcher
0x00007FFAD99D1064 (win32u) NtUserPeekMessage
0x00007FFADBD2A5C3 (USER32) PeekMessageW
0x00007FFADBD29AD0 (USER32) PeekMessageA
0x00007FFA34D37A94 (gameoverlayrenderer64) OverlayHookD3D3
0x00007FF75D61B27B (Unity) MainMessageLoop
0x00007FF75D61F2C6 (Unity) WinMain
0x00007FF75F186332 (Unity) __scrt_common_main_seh
0x00007FFADA547034 (KERNEL32) BaseThreadInitThunk
0x00007FFADC002651 (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce: 1. Modify script.
2. Alt + Tab back to Unity.
3. Domain reload occurs.
4. Editor crashes with Noesis_View_Update in call stack.
Additional Information:
Attached Files: Crash_2021-09-10_152323189.zip (911,419 bytes) 2021-09-10 17:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1487&type=bug
Notes
(0007431)
stonstad   
2021-09-10 17:40   
I worked all day yesterday without a crash and today I am getting back-to-back crashes. I can't go more than 5 minutes without a crash.
(0007436)
sfernandez   
2021-09-13 10:40   
It looks like a bug we already fixed for 3.1, but just to make sure I applied the patch to the 3.0.12 and created a library for you to test:
https://drive.google.com/file/d/1SMiLG9GgGK5nyZeCFrT1CblcOsPzXa1t/view?usp=sharing

Please let me know if that solves your crashes. If not, please send another crash dump to verify it is the same thing.
(0007441)
stonstad   
2021-09-13 22:53   
Thank you. Trying it out now.
(0007444)
stonstad   
2021-09-15 14:08   
So far it is stable. I worked with it approximately 8 hours yesterday and had no crashes. I'll continue using it today. Thank you!
(0007484)
stonstad   
2021-09-27 22:01   
Still stable.
(0007486)
sfernandez   
2021-09-28 10:03   
Thanks for the update, I think we can close this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2127 [NoesisGUI] C++ SDK major always 2021-09-21 17:53 2021-09-30 15:18
Reporter: krupitskas Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Font beign loaded, but when requested, it's unavailable
Description: Hey, I attach two fonts.
Forum support cyrrillics and works.
AlexBrush doesnt support cyrrillics and beign loaded, but can not been found.
I feel like this cyrrilics stuff can be an issue but Im not sure
Tags: C++, Fonts
Steps To Reproduce: 1) Inherit FontProvider fron CachedFontProvider
2) Load font via CachedFontProvider::RegisterFont
3) Try to use font somewhere: Forum works, AlexBrush - not
Additional Information:
Attached Files: AlexBrush-Regular.ttf (62,268 bytes) 2021-09-21 17:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1496&type=bug
Forum-Regular.ttf (241,604 bytes) 2021-09-21 17:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1497&type=bug
CyrilicText.xaml (2,612 bytes) 2021-09-21 18:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1498&type=bug
Снимок экрана 2021-09-24 в 00.50.41.png (715,691 bytes) 2021-09-23 23:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1500&type=bug
Снимок экрана 2021-09-24 в 00.49.59.png (584,424 bytes) 2021-09-23 23:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1501&type=bug
Снимок экрана 2021-09-24 в 00.49.28.png (592,190 bytes) 2021-09-23 23:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1502&type=bug
Notes
(0007469)
sfernandez   
2021-09-21 18:25   
(Last edited: 2021-09-22 09:57)
I tried the following xaml in our XamlPlayer (3.0 and 3.1) and it is able to load all the fonts (Montserrat, Forum and Alex Brush) and render them correctly.
As you would see Alex Brush is not able to render cyrillic glyphs (as expected) so it uses a fallback font from the list our application framework sets (NoesisApp::SetThemeProviders()) when starting.

(0007477)
krupitskas   
2021-09-23 23:52   
Hello! Thanks for quick response.
I've also tried XAMLPlayer but no luck for AlexBrush. Also I've tried default fonts and LetMeRide doesnt work. Exo2 works. LCDMono2 works.
(0007478)
sfernandez   
2021-09-24 10:30   
I think I know what is going on... you are using the name of the file instead of the "Family name" (you can see the name if you double click the ttf file to open the windows font viewer, or if you use any font editor like FontForge).

AlexBrush-Regular.ttf family name is "Alex Brush", so you have to use it like this: "Path/To/Font/#Alex Brush"
LetMeRide.ttf family name is "Let Me Ride", so it should be used as "Path/To/Font/#Let Me Ride"
etc.
(0007479)
krupitskas   
2021-09-24 13:10   
Oh yes, this works now, really thanks!
However question is how to get a family name, can I somehow receive family name from noesis? And available weight?
(0007490)
krupitskas   
2021-09-30 14:52   
Anyway, this is solved, thanks, can be closed. I will ask this question on the forum.
(0007491)
jsantos   
2021-09-30 15:17   
This is related to 0001868, sometimes the family name we chose it is not WPF compliant. I will close this, because we have another ticket for that.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2120 [NoesisGUI] C# SDK feature always 2021-09-17 16:40 2021-09-30 12:56
Reporter: aschmitt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: WPF Inconsistency: Adorner types are missing
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.documents.adorner?view=net-5.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1474 [NoesisGUI] C# SDK minor have not tried 2019-05-21 12:15 2021-09-23 13:59
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Missing Window events
Description: Window exposes several events that are missing in C# SDK:
- Activated
- Deactivated
- LocationChanged
- StateChanged
- ContentRendered
- Closing
- Closed
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1349 [NoesisGUI] C++ SDK feature have not tried 2018-11-21 13:40 2021-09-23 13:59
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Improve Manipulations
Description: Right now we are following the WPF API for Manipulations. This API is a bit restrictive about multi touch. We should move to the Windows8 approach:

1. Manipulation and Touch events should be handled independently. Right now, the manipulation starts only if the TouchDown event is not handled down the tree. So, if you are a control inside a ScrollViewer and you handle the TouchDown you are disabling the scroll behavior.

2. On TouchDown, ManipulationStarting must be started but not ManipulationStarted. This should only happen after the finger is really moved. At this point, ManipulationStarted is raised and the Touch is captured. This behavior is compatible with controls handing Touches and being under a ScrollViewer.

3. Eliminate the touch to mouse promotion. As an alternative we should provide a way to emulate (probably a flag in the Renderer) touches from mouse. That way, Manipulations do work with mouse.

4. Implement useful high level events: Tapped, RightTapped, Holding and DoubleTapped

5. Implement BoundaryFeedback event https://msdn.microsoft.com/en-us/library/system.windows.input.manipulationdeltaeventargs.reportboundaryfeedback%28v=vs.110%29.aspx
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006623)
jsantos   
2020-09-14 01:38   
(Last edited: 2020-09-14 01:38)
Point 4 was implemented in 3.0.5. When implementing that I also noticed that in UWP, Slider swallows (setting handled to true) manipulations events to disable inertia when they are inside a scrollviewer.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1401 [NoesisGUI] C# SDK feature N/A 2019-01-25 22:44 2021-09-23 12:32
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: Support for XAML Markup extensions (C#)
Description: There are seems to be no ticket for it, so here it is!
It would be great if we can write our custom markup extensions https://docs.microsoft.com/en-us/dotnet/framework/xaml-services/markup-extensions-for-xaml-overview
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1263 [NoesisGUI] Unity3D feature always 2018-03-22 23:30 2021-09-23 12:30
Reporter: CMarinacci Platform: Unity  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: ContentControl.ContentStringFormat is not implemented.
Description: The ContentControl.ContentStringFormat property is not implemented.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005697)
nikobarli   
2019-06-05 10:03   
Had this issue as well when porting a 3rd-party XAML
(0006124)
sfernandez   
2020-03-06 17:54   
Added support for ContentControl.ContentStringFormat and HeaderedContentControl.HeaderStringFormat too.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1305 [NoesisGUI] Unity3D feature always 2018-05-27 00:22 2021-09-23 12:30
Reporter: horeaper Platform: Windows  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Static members not properly supported
Description: Trying to bind a static property with:
<Button Content="{x:Static loginScreen:Guest.Text}" Click="ButtonGuest_OnClick" />
Result in exception:
NoesisException: Assets/Xaml/LoginWindow.xaml(63): Static members not supported. Can't use 'TextResources.LoginScreen.Guest.Text'.

---

Another place where this occurs when trying to use a static value as a resource key: <ImageBrush x:Key="{x:Static local:SomeStaticClass.SomeKeyName}" ... /> In this case there is no indication of a failure until one notices that it was added to the resource dictionary under the key: "local:SomeStaticClass.SomeKeyName".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006539)
sfernandez   
2020-07-16 12:39   
Current version only supports the following scenarios: https://www.noesisengine.com/docs/Gui.Core.MarkupExtensions.html#staticextension


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1364 [NoesisGUI] C++ SDK feature N/A 2018-11-29 16:33 2021-09-23 12:30
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Support for MultiBinding and IMultiValueConverter
Description: MultiBindings and IMultiValueConverter implementations are often used in views to combine data from models or react to multiple changes in the models to update the view accordingly. This keeps the original data models clean, i.e. no extra properties are needed in the model for this specific view. Having support for this in Noesis would help tremendously.
Tags: multibinding, multivalueconverter
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005418)
ai_enabled   
2019-01-25 14:21   
(Last edited: 2019-01-25 14:24)
Would love to see MultiBindings support as NoesisGUI is now much smarter regarding the text formatting - support for Binding StringFormat was added recently and we're trying to use it actively but the problem is - we often have more than a single binding and so we must use multibinding:

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="Quest: {0} ({1})">
            <Binding Path="Title" />
            <Binding Path="Category" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>


It will also allow scenarios when visibility is defined by multiple parameters (when all visible - the element should be visible) - currently, as a workaround, we have to use nesting of content controls with each control binding its visibility to a single property.

(0005424)
Djekke   
2019-01-28 22:49   
Only after I had created a nice solution for my problem with MultiBinding and IMultiValueConverter, I remembered that this way is not supported yet. It's sad.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2004 [NoesisGUI] Unity3D feature always 2021-05-07 01:31 2021-09-21 19:54
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Container defining methods missing in ItemsControl
Description: I'm trying to get a WindowHost control implemented.
Unfortunately I'll need to override two methods which seem to be missing:

GetContainerForItemOverride()

and

IsItemItsOwnContainerOverride(object item)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2116 [NoesisGUI] C# SDK major always 2021-09-17 16:07 2021-09-20 23:47
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Storyboard from Template is shared between UserControl instances causing an issue with Completed event
Description: Hi guys,
compared to v3.0 there is a new bug with Storyboards.
For example we have a GameWindow (UserControl) that has custom template. In its Initialized event handler we're using:
his.storyboardOpen = (Storyboard)this.Template.Resources["StoryboardOpen"];

Then in its Loaded event handler we're subscribing to this event:
this.storyboardOpen.Completed += this.StoryboardOpenCompletedHandler;

So far so good, except that `storyboardOpen` is the same instance for all GameWindow instances. So when Completed event is invoked for any animated GameWindow, all GameWindow instances are notified via their StoryboardOpenCompletedHandler about the storyboard completion.

There was no such bug in NoesisGUI v3.0.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007459)
sfernandez   
2021-09-20 12:04   
I tried to replicate this in WPF and it turns out that Storyboards defined in a Template.Resources are frozen, so you cannot add a handler to the Completed event (we should fix this, as Noesis is not complaining).
InvalidOperationException: Specified value of type 'System.Windows.Media.Animation.Storyboard' must have IsFrozen set to false to modify.

It fails even if you try to use a StoryboardCompletedTrigger with that storyboard.

To avoid this, and as you are manually starting and stopping the animation, you can create a Clone() from the Template Storyboard for each window to control it:
this.storyboardOpen = ((Storyboard)this.Template.Resources["StoryboardOpen"]).Clone();


(0007460)
ai_enabled   
2021-09-20 12:10   
Hi Sergio,
thank you! Are you certain that the Clone method is available and implemented properly for this scenario? It was the first thing I thought of before reporting the issue but it didn't work. Please verify.

The InvalidOperationException certainly would be very useful!

Once you finish with the other remaining issues I will pull the changes and test everything including this solution.

Regards!
(0007461)
sfernandez   
2021-09-20 16:27   
Yes, the Clone of Storyboard works as expected in Noesis, I just verified it.
(0007465)
ai_enabled   
2021-09-20 23:46   
(Last edited: 2021-09-20 23:47)
Thank you! I can confirm that Clone is indeed implemented and works as expected.
You need to add this method to Storyboard class in order to match WPF API:
public new Storyboard Clone() => (Storyboard)base.Clone();

The current Clone method is implemented only in the base Freezable class so calling it will return an instance of Freezable class while in WPF a separate method is invoked returning a Storyboard.
I guess you may need to do the same for other resource types as well to match WPF API.

Regards!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2115 [NoesisGUI] C# SDK crash always 2021-09-17 13:42 2021-09-20 18:30
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: TextureProvider.RaiseTextureChanged has no effect or throws AccessViolationException
Description: Hi guys,
as I've reported in the email, calling TextureProvider.RaiseTextureChanged method either has no effect or results in AccessViolationException.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007453)
sfernandez   
2021-09-17 14:06   
Hi, I was able to identify the source of the problems, please find a patched library in the following link:
https://drive.google.com/file/d/1u6YpUmGyrbB7co85g2I-W6etUGCvVDwW/view?usp=sharing
(0007454)
ai_enabled   
2021-09-17 14:19   
Thank you, Sergio! It works now.
There is another issue related to tiled brushes (that is reproducible even without using RaiseTextureChanged as I've tested).
I will report it soon in a new ticket.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2098 [NoesisGUI] C++ SDK crash always 2021-08-30 22:42 2021-09-20 10:54
Reporter: satorp Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Windows
Summary: Sample applications crash when resized
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2407
Tags: C++
Steps To Reproduce: 1. Start any sample application whose window can be resized (e.g. Samples.HelloWorld)
2. Grab its window edge and perform resizing continuously (enlarge and shrink repeatedly)
3. The application crashes
Additional Information:
Attached Files: DxDiag-RDP.txt (9,157 bytes) 2021-09-08 06:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1480&type=bug
DxDiag-IntelHD4400.txt (19,529 bytes) 2021-09-08 06:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1481&type=bug
DxDiag-NVIDIA.txt (20,285 bytes) 2021-09-08 06:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1482&type=bug
Notes
(0007395)
jsantos   
2021-08-31 15:59   
I am not able to reproduce the crash, but if I continuously resize the window I see the memory growing till I release the mouse button. I think this is what is causing your crash.
Thanks for the feedback.
(0007407)
satorp   
2021-09-04 02:27   
I've found that the crash location is different between Debug and Release build. The one I reported previously was a Debug build, it seem easier to reproduce. In the Release build the crash occurs in D3D12RenderDevice::AllocatePage. Not sure if they were related.
--------------------------------------------------------------------------
NoesisApp.dll!NoesisApp::D3D12RenderDevice::AllocatePage(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer) Line 1131
NoesisApp.dll!NoesisApp::D3D12RenderDevice::MapBuffer(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer, unsigned int size) Line 1254
NoesisApp.dll!NoesisApp::D3D12RenderDevice::UpdateTexture(Noesis::Texture * texture_, unsigned int level, unsigned int x, unsigned int y, unsigned int width, unsigned int height, const void * data) Line 845
--------------------------------------------------------------------------

I could provide you with the crash dumps, but it seems there's a limitation on file upload size here.
(0007413)
jsantos   
2021-09-06 18:26   
Are the steps for reproducing this new crash the same as the first one?

If not, could you please describe them. It seems to m, this is something different because it is happening when updating a texture.

Thank you!
(0007418)
satorp   
2021-09-08 06:30   
The steps are the same, i. e. resizing window, but the crash locations are different between Release and Debug builds (maybe Debug build has additional codes?). I've tried on other machines (different display adapters) as well, and there's a case where the crash happens on application startup. Here are the summaries:

1) NVIDIA GeForce GTX 1050 Ti
Windows 10 Pro 64-bit (10.0, Build 18363) (18362.19h1_release.190318-1202)
Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1
Crash on resizing:
- Release: D3D12RenderDevice::AllocatePage (see Call Stack below)
- Debug: SetDebugObjectName

2) NVIDIA GeForce GTX 580
Windows 10 Pro 64-bit (10.0, Build 18363) (18362.19h1_release.190318-1202)
Feature Levels: 11_0,10_1,10_0,9_3,9_2,9_1
No crash

3) Microsoft Remote Display Adapter (connected to machine 1 using Remote Desktop)
Windows 10 Pro 64-bit (10.0, Build 18363) (18362.19h1_release.190318-1202)
Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1
Crash on resizing:
- Release: D3D12RenderDevice::AllocatePage
- Debug: SetDebugObjectName

4) Intel HD Graphics 4400
Windows 10 Pro 64-bit (10.0, Build 19042) (19041.vb_release.191206-1406)
Feature Levels: 11_1,11_0,10_1,10_0,9_3,9_2,9_1
Crash on startup
- Release: AllocatePage
- Debug: D3D12RenderContext::BeginRender

Call stack:
RELEASE:
NoesisApp.dll!NoesisApp::D3D12RenderDevice::AllocatePage(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer) Line 1131
NoesisApp.dll!NoesisApp::D3D12RenderDevice::MapBuffer(NoesisApp::D3D12RenderDevice::DynamicBuffer & buffer, unsigned int size) Line 1254
NoesisApp.dll!NoesisApp::D3D12RenderDevice::UpdateTexture(Noesis::Texture * texture_, unsigned int level, unsigned int x, unsigned int y, unsigned int width, unsigned int height, const void * data) Line 845

DEBUG:
NoesisApp.dll!SetDebugObjectName(ID3D12Object * obj, const char * str, ...) Line 69
NoesisApp.dll!NoesisApp::D3D12RenderContext::CreateBuffers() Line 862
NoesisApp.dll!NoesisApp::D3D12RenderContext::Resize() Line 290
NoesisApp.dll!NoesisApp::Window::OnDisplaySizeChanged(NoesisApp::Display * __formal, unsigned int width, unsigned int height) Line 1411

DEBUG2:
NoesisApp.dll!NoesisApp::D3D12RenderContext::BeginRender() Line 250
NoesisApp.dll!NoesisApp::Window::Render(double time) Line 213
NoesisApp.dll!NoesisApp::Application::Tick(double time) Line 217
NoesisApp.dll!NoesisApp::ApplicationLauncher::OnTick(double time) Line 116

I've also uploaded the DxDiag results for the display adapters.
(0007421)
jsantos   
2021-09-08 13:44   
Thanks for the detailed information!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1601 [NoesisGUI] C++ SDK feature N/A 2019-12-16 01:48 2021-09-17 20:21
Reporter: RT2 Platform:  
Assigned To: dfranjic OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.2  
    Target Version: 3.1.2  
Platform: Any
Summary: Feature request : GridSplitter control
Description: Hello,

I'd like to implement resizable panels in my game engine UI, and it would be trivial to do with the GridSplitter control, which unfortunately isn't supported yet in NoesisGUI. It would be awesome if you could add it, because it appears that there's no easy workaround to replace this very useful control.

Thanks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2122 [NoesisGUI] C# SDK major always 2021-09-17 17:26 2021-09-17 17:26
Reporter: aschmitt Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Setting Style property default value in code does not work
Description:         static MyControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(
                typeof(MyControl),
                new FrameworkPropertyMetadata(typeof(MyControl)));
            StyleProperty.OverrideMetadata(
                typeof(MyControl),
                new FrameworkPropertyMetadata(GetDefaultStyle()));
        }

This is currently not working. The style and the contained ControlTemplate are not applied.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2112 [NoesisGUI] Unreal minor always 2021-09-14 00:57 2021-09-14 10:05
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Crash in NoesisEditorModule when importing an unrelated type fails
Description: We are running into another crash this time in the NoesisEditor module. We traced this down to the failure of an import of unrelated type.

In our case it was failing to import an FBX where the skeleton didn’t match the animation that was being imported.

This then resulted in the crash in Noesis NoesisEditorModule.cpp : void OnObjectImported(UFactory* ImportFactory, UObject* InObject)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007442)
jsantos   
2021-09-14 01:01   
Callstack
[Inline Frame] UE4Editor-NoesisEditor.dll!UObjectBaseUtility::IsChildOfWorkaround(const UClass *) Line 517              C++
[Inline Frame] UE4Editor-NoesisEditor.dll!UObjectBaseUtility::IsA(UClass *) Line 539          C++
[Inline Frame] UE4Editor-NoesisEditor.dll!UObjectBaseUtility::IsA() Line 546              C++
UE4Editor-NoesisEditor.dll!OnObjectImported(UFactory * ImportFactory, UObject * InObject) Line 104      C++
[Inline Frame] UE4Editor-NoesisEditor.dll!Invoke(void(*)(UFactory *, UObject *) &) Line 51 C++
[Inline Frame] UE4Editor-NoesisEditor.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(*)(UFactory *, UObject *) &) Line 299       C++
UE4Editor-NoesisEditor.dll!TBaseStaticDelegateInstance<void __cdecl(UFactory *,UObject *),FDefaultDelegateUserPolicy>::ExecuteIfSafe(UFactory * <Params_0>, UObject * <Params_1>) Line 731              C++
UE4Editor-UnrealEd.dll!TMulticastDelegate<void __cdecl(UFactory *,UObject *),FDefaultDelegateUserPolicy>::Broadcast(UFactory * <Params_0>, UObject * <Params_1>) Line 955    C++
UE4Editor-UnrealEd.dll!UImportSubsystem::BroadcastAssetPostImport(UFactory * InFactory, UObject * InCreatedObject) Line 162  C++
UE4Editor-UnrealEd.dll!UFbxFactory::FactoryCreateFile(UClass * Class, UObject * InParent, FName Name, EObjectFlags Flags, const FString & InFilename, const wchar_t * Parms, FFeedbackContext * Warn, bool & bOutOperationCanceled) Line 862          C++
UE4Editor-UnrealEd.dll!UFactory::ImportObject(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, const FString & Filename, const wchar_t * Parms, bool & OutCanceled) Line 201 C++
UE4Editor-AssetTools.dll!UAssetToolsImpl::ImportAssetsInternal(const TArray<FString,TSizedDefaultAllocator<32>> & Files, const FString & RootDestinationPath, TArray<TTuple<FString,FString>,TSizedDefaultAllocator<32>> * FilesAndDestinationsPtr, const FAssetImportParams & Params) Line 2070              C++
UE4Editor-AssetTools.dll!UAssetToolsImpl::ImportAssets(const TArray<FString,TSizedDefaultAllocator<32>> & Files, const FString & DestinationPath, UFactory * ChosenFactory, bool bSyncToBrowser, TArray<TTuple<FString,FString>,TSizedDefaultAllocator<32>> * FilesAndDestinations) Line 1289 C++
UE4Editor-AssetTools.dll!UAssetToolsImpl::ImportAssetsWithDialog(const FString & DestinationPath) Line 1122         C++
UE4Editor-ContentBrowserAssetDataSource.dll!UContentBrowserAssetDataSource::OnImportAsset(const FName InPath) Line 1690             C++
[Inline Frame] UE4Editor-ContentBrowserAssetDataSource.dll!Invoke(void(UContentBrowserAssetDataSource::*)(FName)) Line 65  C++
[Inline Frame] UE4Editor-ContentBrowserAssetDataSource.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UContentBrowserAssetDataSource::*)(FName) &) Line 299              C++
UE4Editor-ContentBrowserAssetDataSource.dll!TBaseUObjectMethodDelegateInstance<0,UContentBrowserAssetDataSource,void __cdecl(FName),FDefaultDelegateUserPolicy>::ExecuteIfSafe(FName <Params_0>) Line 611    C++
[Inline Frame] UE4Editor-ContentBrowserAssetDataSource.dll!TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy>::ExecuteIfBound(FName) Line 599              C++
UE4Editor-ContentBrowserAssetDataSource.dll!FNewAssetContextMenu::ExecuteImportAsset(TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy> InOnInportAssetRequested, FName InPath) Line 398 C++
[Inline Frame] UE4Editor-ContentBrowserAssetDataSource.dll!Invoke(void(*)(TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy>, FName) &) Line 51              C++
[Inline Frame] UE4Editor-ContentBrowserAssetDataSource.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int,0,1>,TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy>,FName>::ApplyAfter(void(*)(TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy>, FName) &) Line 299              C++
UE4Editor-ContentBrowserAssetDataSource.dll!TBaseStaticDelegateInstance<void __cdecl(void),FDefaultDelegateUserPolicy,TDelegate<void __cdecl(FName),FDefaultDelegateUserPolicy>,FName>::ExecuteIfSafe() Line 731              C++
UE4Editor-Slate.dll!SMenuEntryBlock::OnClicked(bool bCheckBoxClicked) Line 1067      C++
UE4Editor-Slate.dll!SMenuEntryBlock::OnMenuItemButtonClicked() Line 1018            C++
[Inline Frame] UE4Editor-Slate.dll!Invoke(FReply(SMenuEntryBlock::*)()) Line 65   C++
[Inline Frame] UE4Editor-Slate.dll!UE4Tuple_Private::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(FReply(SMenuEntryBlock::*)() &) Line 299        C++
UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 290   C++
[Inline Frame] UE4Editor-Slate.dll!TDelegate<FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 580   C++
UE4Editor-Slate.dll!SButton::ExecuteOnClick() Line 385   C++
UE4Editor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 304     C++
UE4Editor-Slate.dll!SMenuEntryButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 386              C++
[Inline Frame] UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda_cc5aea9e7377b04ce85c30c65ec3889b>::operator()(const FArrangedWidget &) Line 4829  C++
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_cc5aea9e7377b04ce85c30c65ec3889b>>(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_cc5aea9e7377b04ce85c30c65ec3889b> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 378              C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 4815            C++
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 5356              C++
UE4Editor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5321              C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2178        C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2642      C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1046      C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 878              C++
[External Code]
[Inline Frame] UE4Editor-ApplicationCore.dll!WinPumpMessages() Line 108              C++
UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 130           C++
UE4Editor-Win64-DebugGame.exe!FEngineLoop::Tick() Line 4748              C++
[Inline Frame] UE4Editor-Win64-DebugGame.exe!EngineTick() Line 62          C++
UE4Editor-Win64-DebugGame.exe!GuardedMain(const wchar_t * CmdLine) Line 169          C++
UE4Editor-Win64-DebugGame.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 257      C++
[External Code] 


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2079 [NoesisGUI] Unreal crash sometimes 2021-08-10 11:21 2021-09-13 14:15
Reporter: daniel.janak Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1.1  
Platform: Any
Summary: Crashes with TextInputMethodSystem
Description: We’ve had some crashes when we were typing into a TextBox and then closed UI with a button that’s not focusable. It crashed on Context ensure.
We’ve had to Deactivate context right before Unregistering context:

void UNoesisInstance::TermInstance()
{
    if (XamlView)
    {
        Noesis::Ptr<Noesis::IRenderer> Renderer(XamlView->GetRenderer());
        Xaml.Reset();
        XamlView.Reset();

        // Pass the slate element to the render thread so that it's deleted after it's shown for the last time
        ENQUEUE_RENDER_COMMAND(SafeDeleteNoesisSlateElement)
        (
            [Renderer, NoesisSlateElement = NoesisSlateElement](FRHICommandListImmediate& RHICmdList) mutable
            {
                Renderer->Shutdown();
                NoesisSlateElement.Reset();
            }
        );
    }

    ITextInputMethodSystem* const TextInputMethodSystem = FSlateApplication::IsInitialized() ? FSlateApplication::Get().GetTextInputMethodSystem() : nullptr;
    if (TextInputMethodSystem)
    {
        for (auto TextInputMethodContextPair : TextInputMethodContexts)
        {
            TextInputMethodSystem->DeactivateContext(TextInputMethodContextPair.Value.ToSharedRef());
            TextInputMethodSystem->UnregisterContext(TextInputMethodContextPair.Value.ToSharedRef());
        }
    }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007391)
hcpizzi   
2021-08-30 12:31   
Hi Daniel,

I tried this, and couldn't reproduce the issue. I used RemoveFromParent on the Unreal Widget, and then, when the garbage collector run, UNoesisInstance::TermInstance was called, and the destruction of the IView caused UNoesisInstance::OnPreviewLostKeyboardFocus to be called, and the context was correctly deactivated before it was unregistered at the end of UNoesisInstance::TermInstance.

I have a couple of questions: How are you removing the UI? Are you calling RemoveFromParent too? And, in UNoesisInstance::TermInstance, is the IView released (i.e. is there a single reference before calling XamlView.Reset()?

Thanks
(0007440)
hcpizzi   
2021-09-13 14:15   
I haven't been able to reproduce the issue, but I've gone on and added the call to DeactivateContext. I've wrapped it in an if IsActiveContext in case other platforms complain about deactivating twice.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2094 [NoesisGUI] Unity3D crash always 2021-08-26 19:54 2021-09-10 14:07
Reporter: nvonhertzen Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Switch
Summary: Switch GPU crash with Unity when offscreen rendering
Description:  Adding anything to the UI that requires an offscreen render results in a GPU crash.

GPU exception
Failed to query GPU error information.
Return code: 0x0003000f
Detected GPU error:NVN_QUEUE_GET_ERROR_RESULT_GPU_ERROR_UNKNOWN
Tags:
Steps To Reproduce: 1. Download Noesis Unity 3.1.0 package
2. Create a new unity project, import package
3. Import the Hello world sample
4. Add something to the UI that requires an offscreen render, such as a DropShadowEffect, for example <Grid.Effect><DropShadowEffect Opacity="0.4" /></Grid.Effect>

Additional Information:
Attached Files:
Notes
(0007386)
jsantos   
2021-08-26 20:28   
Could you please indicate versions for Unity and Nintendo SDK ? Thanks
(0007387)
rg_moliver   
2021-08-27 00:13   
(Last edited: 2021-08-27 19:41)
Unity 2020.3.16f1 and Nintendo SDK 11.4.3

thanks!

(0007389)
nvonhertzen   
2021-08-27 05:30   
* Nintendo SDK 11.4.3
I've tested with both 2020.3.1f1 and 2020.3.13f1
(0007427)
jsantos   
2021-09-10 14:07   
Fixed in r10710

I was not able to reproduce the crash, but the offscreen rendering was broken and I fixed it.

This was tested with:
- SDK 12.3.7
- Unity2021.1.19


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2107 [NoesisGUI] C++ SDK minor always 2021-09-09 12:54 2021-09-09 17:41
Reporter: sumel007 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Loaded event not recognized in DataTemplate.Triggers
Description: As described in the forums: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2415&sid=6f955b57abbbaa3d22395c09359d5bb0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2100 [NoesisGUI] Unity3D feature always 2021-08-31 21:57 2021-09-09 11:51
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Add menu entry to generate a Blend project from an existing Unity project
Description: From forums post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2392
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2070 [NoesisGUI] C# SDK trivial always 2021-08-04 23:59 2021-09-08 15:24
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: "StringFormat=0.##" produces 0.5 for 0.05
Description: Hi guys,
I've noticed a weird bug when using
<TextBox Text="{Binding Value, StringFormat=0.##}" />

displays 0.5 for double value 0.05 but not any other number (e.g. it's ok for 0.01 and 0.1, 0.2, etc).

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2008 [NoesisGUI] C# SDK feature always 2021-05-08 10:14 2021-09-07 16:07
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: FrameworkElement.OnApplyTemplate method missing or not virtual
Description: This is important to create custom controls. I'm trying to create a navigation control derived from Selector and I need this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007235)
KeldorKatarn   
2021-05-08 10:18   
(Last edited: 2021-05-08 12:49)
I put the four features in relation to eachother because they're all related to CustomControl development.

(0007236)
KeldorKatarn   
2021-05-08 12:49   
(Last edited: 2021-05-08 12:50)




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1532 [NoesisGUI] C++ SDK feature N/A 2019-08-08 18:13 2021-09-06 17:53
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Feature request: DependencyProperty value support on DependencyObject instances in the debugger
Description: Hi guys, this is following on from this feature request: https://www.noesisengine.com/bugs/view.php?id=1440#c5920

What I'd like is the ability to query the DependencyProperty values directly from the debugger. Ideally, if I'd hover over an instance derived from DependencyObject I'd be able to see all the current values of all the DependencyProperty properties. C# manages this through reflection and the getters. If possible, could we achieve something similar in native C++ by modifying the *.natvis to query the DependencyValue maps to retrieve the value for a particular DependencyObject instance? I've attached 2 images, one from managed C# and the other from native C++ of the output from instanced derived from DepnedencyObejct. Ideally, the native would be able to retrieve the same information that the C# version could return.

Currently, the workaround is to stop the debugger, write a log to retrieve the value, and then rerun the game. This would prevent tonnes of debugging code that I end up writing like the following snippet:

NS_LOG_DEBUG("%s::Visibility = %d", GetName(), GetVisibility());

Cheers,

-Steven
Tags:
Steps To Reproduce: 1. Breakpoint any instance derived from DependencyObject in C++
2. View the this pointer in the watch window.
3. Notice that no DependencyProperty values are displayed.
Additional Information:
Attached Files: native_dependencyproperty_output.png (38,232 bytes) 2019-08-08 18:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1096&type=bug
managed_dependencyproperty_output.png (60,203 bytes) 2019-08-08 18:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1097&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1440 [NoesisGUI] C++ SDK feature N/A 2019-04-02 15:21 2021-09-06 17:53
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version:  
Platform: Any
Summary: EASTL Version
Description: Hi guys, is there any plans to update the EASTL version to the official Github repository. It looks like version 2.0 is being used from the old unofficial source code which came from the original ZIP released in 2010, the newer 3.0 version is now completely open source officially maintained by EA now: https://github.com/electronicarts/EASTL

Only reason I'm asking is I tried to use the Visual Studio debug visualisers (https://github.com/electronicarts/EASTL/blob/master/doc/EASTL.natvis), but they're written to work with 3.0 and don't work correctly with the types so it's making debugging the internal types a bit more tricky than it should be.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005601)
jsantos   
2019-04-05 21:21   
Yes, we have plans for this. We are going to deprecate EASTL in favor of our custom containers. EASTL is huge for us, we want something smaller to improve compiling times and performance. And yes, we will provide a natvis configuration for this new implementation.

This is something we are already working on. Thanks for the feedback!
(0005918)
jsantos   
2019-08-08 17:23   
Just an update about this. The branch without EASTL, with new containers, with proper .natvis and huge memory improvements is almost ready to be integrated into trunk.
(0005919)
steveh   
2019-08-08 17:41   
That sounds awesome, good work.

One additional thing that might be worthwhile going in the .natvis is the ability to see the DependencyProperty values for a DependencyObject. Quite often in the debugger I want to output the values of the dependencyproperties. I have to keep writing getters and logging out the values. In managed C# I can just hover over the objects and the getters work great in the debugger. I don't know the best way to simulate it but it would be a massive help whilst debugging in C++.

Is it worth me opening a new ticket for this feature request?

Cheers
(0005920)
jsantos   
2019-08-08 17:56   
(Last edited: 2019-08-08 17:56)
Awesome suggestion!

Yes, please open a new ticket for that. We were thinking about that, we need custom native visualizers because we need to execute code to evaluate DependencyProperties.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2101 [NoesisGUI] C++ SDK block always 2021-09-01 15:29 2021-09-06 13:06
Reporter: fnlombard Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Windows
Summary: Merged Dictionaries not loading when calling LoadXaml
Description: In our application, we have several DataTemplates that we load directly from XAML files during runtime. The typical structure of a file is shown below:

<DataTemplate
    xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
    xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
    xmlns:sys="clr-namespace:System">

    <DataTemplate.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="MyStyleFile.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </DataTemplate.Resources>

    <StackPanel>
       <Control Style={StaticResource MyStyle}/>
    </StackPanel>
</DataTemplate>

This worked correctly in Noesis 2.2.6. In Noesis 3.1.0, it seems that the merged resource dictionary is not loaded. Consequently, the style of the control cannot be found. We use the Noesis::GUI::LoadXaml() function to load these DataTemplates. For this we do not want to use ‘SetApplicationResources’ because the style and the data template should not be globally available.
Tags: ResourceDictionary
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007403)
fnlombard   
2021-09-03 09:33   
Side question:
When using 'SetApplicationResources': Merged resource dictionaries are only loaded if a XAML file's root element is a ResourceDictionary. The merged resource dictionaries of child elements, for example a ControlTemplate, are not loaded. Will the fix that you are working on also fix this?
Thanks
(0007404)
sfernandez   
2021-09-03 10:34   
Yes, the bug appears in any MergedDictionary contained in templates. We will fix it for both ControlTemplates and DataTemplates.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2103 [NoesisGUI] Unity3D minor always 2021-09-02 19:23 2021-09-06 11:05
Reporter: rachelle Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Custom fonts defined in a theme failing to load after upgrading to 3.1.0
Description: We have just upgraded our Unity integration to NoesisGUI 3.1.0. We have a folder structure like this:

-- Assets
    -- Scripts
         -- Runtime
            -- Client
               -- UI
                  -- Themes
                      GameTheme.xaml
                      GameTheme.Fonts.xaml
                      -- Fonts
                         CustomFontA.otf
                         CustomFontB.otf
                         CustomFontC.otf

GameTheme.xaml looks something like this:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="GameTheme.Fonts.xaml" />
    </ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

GameTheme.Fonts.xaml looks something like this:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">

    <FontFamily x:Key="Font.Family.CustomFontA">/Blend;component/Assets/Scripts/Runtime/Client/UI/Themes/Fonts/#Custom Font A</FontFamily>
    <FontFamily x:Key="Font.Family.CustomFontB">/Blend;component/Assets/Scripts/Runtime/Client/UI/Themes/Fonts/#Custom Font B</FontFamily>
    <FontFamily x:Key="Font.Family.CustomFontC">/Blend;component/Assets/Scripts/Runtime/Client/UI/Themes/Fonts/#Custom Font C</FontFamily>
</ResourceDictionary>

We specify the paths this way so that the fonts show up correctly in our Unity game as well as in Blend where our designers are directly editing the UI layouts.

All of our TextBlocks in the xaml files driving the UI we're using in-game make reference to these custom fonts by specifying the FontFamily property, like this:

FontFamily="{StaticResource Font.Family.CustomFontA}"

For each of our custom fonts, though, we are seeing this error:

[noesis] Assets/Scripts/Runtime/Client/UI/Themes/GameTheme.Fonts.xaml(8): Font not found '/Blend;component/Assets/Scripts/Runtime/Client/UI/Themes/Fonts/#Custom Font A'

The custom fonts are still showing up in Blend, but the "not found" errors in Unity are preventing the custom fonts from showing up in-game. This worked before the upgrade, when we were on NoesisGUI 3.0.12. A re-import of the themes folder, fonts folder, and all xaml in the UI folder does not resolve the issue. According to sfernandez in our forum discussion (https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2411) this is due to the Uri containing the assembly part.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2077 [NoesisGUI] Unity3D major always 2021-08-09 09:59 2021-09-03 19:40
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Woes updating to 3.1
Description: After this point, almost *any* action I do in Unity will make Noesis reimport all xaml assets. Clearing or scrolling the unity console, playing the game, or restarting Unity will reimport all my xaml assets. Just about everything I do will cause all of these assets to reimport. Is there something I'm missing?

Also, can I please be told a way to disable Unity asking to update to the new input system? Updating to this would break many plugins I'm using. If I understand correctly, this new system only impacts Noesis' support for gamepads, which I will not support. I really can't have this message appear every time I open Unity.
Tags:
Steps To Reproduce: 1): Close Unity, delete NoesisGUI and all Noesis .asset files.
2): Add Noesis 3.1 package.
3): Unity crashes (attached crash). Open up Unity.
3): Click no to use the new input system.
3): Go to Noesis settings, add key/pass, reference my Resources xaml dictionary.
Additional Information:
Attached Files: Crash_2021-08-09_075051504.rar (250,400 bytes) 2021-08-09 09:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1468&type=bug
Notes
(0007356)
jsantos   
2021-08-09 15:38   
Regarding the new input system, setting in to "Both" should stop Unity asking about it.
(0007359)
asusralis   
2021-08-11 08:12   
I see, thanks for the info! I will try that. For the other issue I'm having, would it be easier if you try to recreate it in my project as well?
(0007360)
jsantos   
2021-08-11 12:13   
Yes, we will reproduce this using your project. Thank you
(0007363)
Tiddan   
2021-08-12 18:33   
I have the same problem. I'm on Unity 2020.3.2 and 2020.3.15.

It's basically impossible to work like asusralis is explaining. It happens for basically every interaction you do inside Unity.
(0007406)
sfernandez   
2021-09-03 19:40   
The problem appeared when the Application Resources contained references to user controls.
That scenario was invalidating the application resources all the time and triggering a reimport of all xamls again.
We fixed this situation for the next release coming next week.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2097 [NoesisGUI] Unreal minor always 2021-08-30 17:34 2021-09-03 12:38
Reporter: hcpizzi Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Warnings compiling plugin
Description: We noticed some warnings that we would like to bring to your attention:
 
Plugins/NoesisGUI/Source/NoesisRuntime/Private/NoesisMediaPlayer.cpp(240): warning C4996: 'UTexture::Resource': Use GetResource() / SetResource() accessors instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
Plugins/NoesisGUI/Source/NoesisRuntime/Private/Render/NoesisRenderDevice.cpp(874): warning C4996: 'UTexture::Resource': Use GetResource() / SetResource() accessors instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
Plugins/NoesisGUI/Source/NoesisRuntime/Private/Render/NoesisRenderDevice.cpp(882): warning C4996: 'UTexture::Resource': Use GetResource() / SetResource() accessors instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
Plugins/NoesisGUI/Source/NoesisRuntime/Private/Render/NoesisRenderDevice.cpp(904): warning C4996: 'UTexture::Resource': Use GetResource() / SetResource() accessors instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
Plugins/NoesisGUI/Source/NoesisRuntime/Private/Render/NoesisRenderDevice.cpp(919): warning C4996: 'UTexture::Resource': Use GetResource() / SetResource() accessors instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007405)
hcpizzi   
2021-09-03 12:38   
Fixed this and other build problems.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1941 [NoesisGUI] Unity3D minor always 2021-03-15 18:37 2021-09-02 19:53
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Interactivity DataTrigger not behaving exactly as WPF
Description: WPF's DataTrigger does not evaluate bindings when it gets attached to the associated object, so if DataContext is set before attaching, it won't invoke its actions even if condition is fulfilled.
On the other hand Noesis DataTrigger, when trigger is attached, it evaluates the bindings again so it is able to invoke actions if condition is fulfilled, but this is incorrect compared to WPF.

Consider creating a new trigger that evaluates when attached, something like an ImmediateDataTrigger in case anyone needs that behavior.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007394)
Faerdan   
2021-08-31 11:05   
I was the original reporter of this issue, however it isn't really an issue.

The reason WPF's DataTrigger seemed to be different was that Noesis.GUI.Extensions was referencing an unofficial Interactivity/Behaviours Nuget package, which was built against code from 2012.

The DataTrigger in Microsoft's official Microsoft.Xaml.Behaviors.Wpf Nuget package (https://github.com/microsoft/XamlBehaviorsWpf/blob/302a27da21749b330a8b5807bc69f62f4372ff94/src/Microsoft.Xaml.Behaviors/Core/DataTrigger.cs) does invoke the evaluation the bindings in the OnAttached method:

        protected override void OnAttached()
        {
            base.OnAttached();

            //fixes issue #11. We want to evaluate the binding's initial value when the element is first loaded
            if (AssociatedObject is FrameworkElement element)
            {
                element.Loaded += OnElementLoaded;
            }
        }
(0007402)
sfernandez   
2021-09-02 19:53   
(Last edited: 2021-09-02 19:53)
With the latest version of our extensions (3.0.8) we moved to the official Microsoft.Behaviors.Wpf so both implementations should match.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2089 [NoesisGUI] C++ SDK block always 2021-08-24 09:32 2021-09-02 18:02
Reporter: krupitskas Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: view->SetProjectionMatrix() not affect hit test functionality
Description: We use 3.0, but still 3.1 also has this bug.
We are using textblocks as 3d elements in our world and we need to be able to select them, but it's not possible right now.
I've created reproducible scenario.
Open IntegrationGLUT example, go to

static void DisplayFunc(void)

add this code in the beginning

    const auto perspective = Noesis::Matrix4::PerspectiveFov(90.0f, float(glutGet(GLUT_WINDOW_WIDTH)) / float(glutGet(GLUT_WINDOW_HEIGHT)), 0.01f);
    const auto viewport = Noesis::Matrix4::Viewport(float(glutGet(GLUT_WINDOW_WIDTH)), float(glutGet(GLUT_WINDOW_HEIGHT)));
    const auto offset = Noesis::Transform3::Trans(0.0f, 0.0f, 500.0f).ToMatrix4();

    const auto prod = offset * perspective * viewport;

    _view->SetProjectionMatrix(prod);

You will see that layout moved, but when you will try to click on button, it will be unsuccessful, because hit test still works in old projection matrix in 2D. Just try to click on this imaginable 2D position without transformations.
Tags: C++, Hittest, matrix
Steps To Reproduce: 1. Open IntegrationGLUT
2. Add my code
3. See incorrect behaviour

Correct behaviour is:
Possibility to pass correct hit test at the any position in the world, based on provided matrix
Additional Information:
Attached Files:
Notes
(0007401)
hcpizzi   
2021-09-02 18:02   
Hit testing with arbitrary projection matrices has been fixed.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2076 [NoesisGUI] C++ SDK crash random 2021-08-07 05:39 2021-08-30 20:12
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Crash!
Description: I can't tell why this happens, it seems random. It continues to happen.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2021-08-07_003033748.rar (392,985 bytes) 2021-08-07 05:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1467&type=bug
Notes
(0007346)
asusralis   
2021-08-09 11:27   
Would it be easier if you hop into my repo or me sending a dev build? It happens quite a lot, but I can't tell where it's coming from.
(0007347)
sfernandez   
2021-08-09 11:50   
The best way to find the source of the problem will be to reproduce it in your project. What steps should I follow?
I have access to your repo, which branch should I use?
(0007348)
asusralis   
2021-08-09 11:53   
Use tactic-dev. New Game -> Skrimish (Humans). Settle a city. It has happened from clicking end turn, placing buildings, moving units... But I really can't tell what exactly does it. :(
(0007349)
asusralis   
2021-08-09 11:55   
Here is a video that shows the bug happen. I've repeated what I've done in this video but I can't always make it crash. https://files.catbox.moe/thel0c.mp4
(0007350)
sfernandez   
2021-08-09 12:56   
I'm getting

NotImplementedException: The method or operation is not implemented.
Zenject.MonoInstallerBase.InstallBindings () (at Assets/Plugins/Zenject/Source/Install/MonoInstallerBase.cs:32)

when clicking Play, probably need to install or configure something to make it work.
(0007351)
asusralis   
2021-08-09 12:59   
You're on tactic-dev with commit c66aa5f5c16c74b7e4e3faa9ed9c90c27fced11a? How odd. Did you try restarting the editor? And can you send me the callstack for that?
(0007352)
sfernandez   
2021-08-09 13:07   
Yes I'm on that branch and commit.

I noticed there are some scripts that can't load due to compiler errors (like AppInstaller), and reimporting Project/Source/Core I get this

Assembly 'Library/ScriptAssemblies/Assembly-CSharp.dll' will not be loaded due to errors:
Reference has errors 'Empis.Master'.

Assembly 'Library/ScriptAssemblies/Assembly-CSharp-Editor.dll' will not be loaded due to errors:
Reference has errors 'Assembly-CSharp'.

Assembly 'Assets/Plugins/Empis.Master/netstandard2.0/Empis.Master.dll' will not be loaded due to errors:
Empis.Master references strong named Microsoft.AspNetCore.Http.Features Assembly references: 2.2.0.0 Found in project: 3.1.10.0.
Assembly Version Validation can be disabled in Player Settings "Assembly Version Validation"




(0007353)
asusralis   
2021-08-09 13:19   
I have no idea why this would happen. Could I send you a development build of the game?
(0007354)
sfernandez   
2021-08-09 13:25   
(Last edited: 2021-08-09 13:26)
If I can reproduce the crash in the player then yes.

UPD: Nevermind, I closed Unity, reverted a few files that were modified by Unity and after restarting it works fine.

(0007355)
asusralis   
2021-08-09 13:46   
Oh, that's great to hear!
(0007357)
sfernandez   
2021-08-09 22:32   
The problem I'm seeing is that you are raising property change notifications from different threads and our objects can only be invalidated from Unity main thread.

Notify Empis.Unity.ViewModels.ProductVM.CanBuild
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Noesis.Extend:NotifyPropertyChanged (object,System.ComponentModel.PropertyChangedEventArgs) (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:5219)
Empis.BindableObject:NotifyPropertyChanged (string) (at Assets/Project/Source/Game/BindableObject.cs:15)
Empis.BindableObject:Set<bool> (bool&,bool,string) (at Assets/Project/Source/Game/BindableObject.cs:22)
Empis.Unity.ViewModels.ProductVM:set_CanBuild (bool) (at Assets/Project/Source/ViewModels/ProductVM.cs:104)
Empis.Unity.ProducerViewer/<>c__DisplayClass46_0:<UpdateProductBindings>b__1 (Empis.Unity.ViewModels.ProductVM) (at Assets/Project/Source/Viewers/Components/ProducerViewer.cs:111)
System.Threading.Tasks.Parallel/<>c__DisplayClass31_0`2<Empis.Unity.ViewModels.ProductVM, object>:<ForEachWorker>b__0 (int)
System.Threading.Tasks.Parallel/<>c__DisplayClass17_0`1<object>:<ForWorker>b__1 ()
System.Threading.Tasks.Task:InnerInvoke ()
System.Threading.Tasks.Task:InnerInvokeWithArg (System.Threading.Tasks.Task)
System.Threading.Tasks.Task/<>c__DisplayClass178_0:<ExecuteSelfReplicating>b__0 (object)
System.Threading.Tasks.Task:InnerInvoke ()
System.Threading.Tasks.Task:Execute ()
System.Threading.Tasks.Task:ExecutionContextCallback (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.Tasks.Task:ExecuteWithThreadLocal (System.Threading.Tasks.Task&)
System.Threading.Tasks.Task:ExecuteEntry (bool)
System.Threading.Tasks.Task:System.Threading.IThreadPoolWorkItem.ExecuteWorkItem ()
System.Threading.ThreadPoolWorkQueue:Dispatch ()
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback ()
(0007358)
asusralis   
2021-08-10 06:56   
I see, thanks for the info.
(0007393)
sfernandez   
2021-08-30 20:12   
We added support in Unity for logging from different threads, so errors produced by using the UI elements from different threads are now properly shown.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2090 [NoesisGUI] C++ SDK crash always 2021-08-24 11:32 2021-08-30 20:10
Reporter: hcpizzi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: ComboBox::SelectNext not keeping reference to item
Description: Line 860 reads:

BaseComponent* item = items->GetItemAt(index);

But in UE4, collection items are temporaries. The Ptr returned by GetItemAt gets destroyed. It can be fixed by:

Ptr<BaseComponent> item = items->GetItemAt(index);
Tags:
Steps To Reproduce: In the UE4 ShooterGame sample:

- Press Backspace to bring up the in game menu and choose Main Menu
- Pres right and then down on the keyboard arrows. ComboBox::SelectNext should be executed.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2096 [NoesisGUI] C++ SDK minor always 2021-08-27 14:21 2021-08-30 14:35
Reporter: hcpizzi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: More than one caret visible and assert during shutdown
Description: More than one text input carets are visible at times, as if more than one text input element had focus.
Tags:
Steps To Reproduce: Open the Login sample. Quickly hover over the TextBox and the PasswordBox. At some point both have a visible caret. Then close the application to trigger the assert.
Additional Information:
Attached Files: TwoCarets.png (156,627 bytes) 2021-08-27 14:21
https://www.noesisengine.com/bugs/file_download.php?file_id=1476&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2068 [NoesisGUI] Unreal minor always 2021-08-02 17:04 2021-08-25 16:39
Reporter: sergiu.zixelise Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1  
Platform: iOS
Summary: InputScope property on TextBox not working
Description: While using Noesis 3.0 with UE4, to build an iOS application for Ipad, when adding an InputScope property on a TextBox, and setting it to any value does not affect the input type on iOS devices.
Tags: iOS, mobile, TextBox, UE4
Steps To Reproduce: Add a TextBox, add an InputScope="Number" property, after building and running on iPad, when trying to input text, the standard keyboard does not change to a numeric keyboard.
Additional Information:
Attached Files:
Notes
(0007383)
hcpizzi   
2021-08-25 16:39   
InputScope is now taken into account.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2081 [NoesisGUI] Documentation minor N/A 2021-08-10 18:48 2021-08-24 11:59
Reporter: FredrikAleksander Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: The Unreal Engine ShooterGame needs to be updated to UE4.26 and NoesisSDK 3.1
Description: The Unreal Engine ShooterGame example does not build on the latest UE4 and NoesisSDK versions
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007378)
hcpizzi   
2021-08-24 11:59   
The sample has been updated.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2087 [NoesisGUI] C++ SDK feature N/A 2021-08-23 11:17 2021-08-23 18:18
Reporter: Ringo Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: macOS
Summary: Feature Request: Mac Catalyst support
Description: Hello,

I am building a macOS app using UIKit (aka maccatalyst platform).
But Noesis.dylib is built for classic AppKit, it is not possible to link as is.
I was able to successfully link it after some Mach-O header patching, but such process is not sustainable.

Can you please provide additional binaries for maccatalyst target?
It shouldn't be hard, just a few clicks in Xcode.

https://developer.apple.com/documentation/uikit/mac_catalyst
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2013 [NoesisGUI] C# SDK feature always 2021-05-10 19:20 2021-08-23 12:44
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1  
Platform: Any
Summary: WPF Inconsistency: DependencyProperty.AddOwner is missing
Description: Both overloads of DependencyProperty.AddOwner are missing:

DependencyProperty.AddOwner(Type)
DependencyProperty.AddOwner(Type, PropertyMetadata)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1992 [NoesisGUI] Unity3D crash always 2021-04-30 09:58 2021-08-20 13:03
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unity 2019.4.9f1 (64-bit) crashes when using asynchronous event handler for Noesis RoutedEvent
Description: Doing this reliably crashes the editor

    public partial class FileDialogView : UserControl
    {
        public FileDialogView()
        {
            InitializeComponent();
            Initialized += OnInitialized;
        }

        private void OnInitialized(object sender, EventArgs args)
        {
            var treeView = (TreeView)FindName("TreeView");
            treeView.AddHandler(TreeViewItem.SelectedEvent, new RoutedEventHandler((s, e) => OnTreeViewItemSelected(s, e)));
        }


        private async void OnTreeViewItemSelected(object sender, RoutedEventArgs e)
        {
            await Task.Delay(500);
            (e.Source as TreeViewItem)?.BringIntoView();
        }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: crash.dmp (1,589,471 bytes) 2021-04-30 09:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1424&type=bug
Editor.log (194,068 bytes) 2021-04-30 09:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1425&type=bug
error.log (134,758 bytes) 2021-04-30 09:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1426&type=bug
Notes
(0007205)
sfernandez   
2021-05-03 11:15   
I found that args object (the native part) is already destroyed after the delay, we need to think about how to deal with this issue.
In the meantime a workaround is to extract the information from the args before doing the wait:
private async void OnTreeViewItemSelected(object sender, RoutedEventArgs e)
{
  TreeViewItem tvi = e.Source as TreeViewItem;
  await Task.Delay(500);
  tvi?.BringIntoView();
}
(0007209)
KeldorKatarn   
2021-05-03 14:03   
Ah, that makes sense. It shouldn't crash the editor though.
(0007370)
Flem100@live.dk   
2021-08-17 20:27   
I have similar problems when I use async event handlers, but it really depends on the scenario. Aren't we supposed to use async-await with NoesisGUI or are there some specific limitations we should know about? The system we are porting to Unity from WPF, primarily uses async methods, so that's a big thing for us.
(0007374)
sfernandez   
2021-08-20 13:03   
As I mentioned before the use of the args object after any wait will cause crashes because it relies on a native memory that is already destroyed.
We have to fix that somehow and in the meantime the workaround is to keep the required information as local variables in the event handler method.
I guess all you need is to keep some data and you don't require any modification of the args object after the wait because it won't affect the result of the event, for example, setting the e.Handled=true after the wait does nothing.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1765 [NoesisGUI] C++ SDK feature always 2020-07-30 10:44 2021-08-18 19:59
Reporter: vhugo Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: <FlowDocument> and <Floater> features not supported
Description: <FlowDocument> and <Floater> features from WPF are not implemented
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2084 [NoesisGUI] Unity3D crash always 2021-08-16 18:40 2021-08-16 19:31
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Crash when defining GridLength dependency property
Description: When creating a custom control with a GridLength dependency property, Unity crashes.

    public class MyControl : Control
    {
        public GridLength ContentArea
        {
            get { return (GridLength)GetValue(ContentAreaProperty); }
            set { SetValue(ContentAreaProperty, value); }
        }

        public static readonly DependencyProperty ContentAreaProperty = DependencyProperty.Register(
            "ContentArea", typeof(GridLength), typeof(MyControl),
            new PropertyMetadata(new GridLength(0.0f)));
    }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2078 [NoesisGUI] C++ SDK minor always 2021-08-10 03:17 2021-08-16 10:06
Reporter: tkawa Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Grid doesn't layout according to the ColumnDefinition
Description: Follow up from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2381
Star column width is different from the specified value.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2083 [NoesisGUI] Unreal crash always 2021-08-12 19:54 2021-08-13 11:15
Reporter: sergiu.zixelise Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Windows
Summary: Crash in editor when adding a variable in a Sequence Director, inside an Event Track in a level sequence.
Description: Found a really weird crash when using Level Sequences when the Noesis Engine plugin is enabled.

I attached the log files.

This is the error from the crash reporter.

Assertion failed: AssetOwner->IsAsset() [File:D:/Build/++UE4/Sync/Engine/Source/Editor/BlueprintGraph/Private/BlueprintActionDatabaseRegistrar.cpp] [Line: 153]

UE4Editor_Core
UE4Editor_Core
UE4Editor_BlueprintGraph
UE4Editor_NoesisBlueprint!UK2Node_NoesisAssignAndNotify::GetMenuActions() [D:\git\UI\Plugins\NoesisGUI\Source\NoesisBlueprint\Private\K2Node_NoesisAssignAndNotify.cpp:246]
UE4Editor_BlueprintGraph
UE4Editor_BlueprintGraph
UE4Editor_BlueprintGraph
UE4Editor_Engine
UE4Editor_UnrealEd
UE4Editor_UnrealEd
UE4Editor_Kismet
UE4Editor_Kismet
UE4Editor_Slate
UE4Editor_Kismet
UE4Editor_Kismet
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll



Tags: UE4
Steps To Reproduce: In a new empty project, enable Noesis plugin.

Create a Level Sequence Asset.

Inside the Level Sequence add an Event Track, and add a keyframe anywhere in the timeline.

Double-click the keyframe to open the Sequence Director.

Inside the Sequence Director add a new variable, and wait for it to crash.

 
Additional Information:
Attached Files: UE4CC-Windows-9373F5534CC43C73174E4E9449941CF5_0000.zip (132,442 bytes) 2021-08-12 19:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1469&type=bug
Notes
(0007365)
hcpizzi   
2021-08-13 11:15   
Used Blueprint->SkeletonGeneratedClass instead of Blueprint to key the Blueprint actions.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2009 [NoesisGUI] C# SDK feature always 2021-05-08 12:48 2021-08-05 17:57
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: StyleTypedPropertyAttribute missing
Description: This one is also pretty important to create classes which have a ItemContainerStyle like property and a container class.
I have two such controls in the works already. A Window host and a FlipView. At least one of them is going to need this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007237)
KeldorKatarn   
2021-05-08 12:50   
I put the four features in relation to eachother because they're all related to CustomControl development.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2007 [NoesisGUI] C# SDK feature always 2021-05-08 10:12 2021-08-05 17:57
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: TemplatePartAttribute missing
Description: Title says it all
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007234)
KeldorKatarn   
2021-05-08 10:18   
(Last edited: 2021-05-08 12:50)
I put the four features in relation to eachother because they're all related to CustomControl development.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1823 [NoesisGUI] C# SDK feature always 2020-10-27 12:32 2021-08-05 11:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Support for DependencyPropertyKey and read-only dependency properties
Description: Add support for registering read-only dependency properties:
 - DependencyProperty.RegisterReadOnly()
 - DependencyProperty.RegisterAttachedReadOnly()

And for modifying read-only properties using the provided key:
 - DependencyObject.SetValue(DependencyPropertyKey key, object value)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2006 [NoesisGUI] C# SDK feature always 2021-05-07 07:17 2021-08-04 18:23
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Controls are missing virtual OnEvent methods
Description: Controls are missing the typical OnEvent methods like OnMouseLeftButtonDown.

Overriding these is the standard way of implementing functionality. Subscribing to their own events is not good style.
It is less efficient and the deriving class cannot react to values set in eventArgs by any handler.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007233)
KeldorKatarn   
2021-05-08 10:18   
(Last edited: 2021-05-08 12:50)
I put the four features in relation to eachother because they're all related to CustomControl development.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2063 [NoesisGUI] C++ SDK major random 2021-07-23 13:46 2021-08-04 16:31
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: Assert when stopping storyboard
Description: Hi guys, we're hitting an assert in TimeManager::OnClockFinished in rare cases when stopping a storyboard.

The assert is in the following line:

                if (clocks.Empty())
                {
                    // Clear any pending animation related with this target and dp
                    RemovePendingAnimation(target, dp);

                    // Clear animated property
                    animatedProperties.Erase(propIt); <<<<<<<<<<<<<<< HERE
                }


(Line 813 in version 3.0.9). The issue is that propIt is no longer valid. The animatedProperties map is empty so something must have removed the properties in between line 784 when it finds the dependency property and line 813 when it tries to erase it.

I can change the line to this instead so it doesn't rely on the iterator remaining valid:

animatedProperties.Erase(dp);

Cheers,

-Steven
Tags:
Steps To Reproduce: - Stop a storyboard
- In rare cases it can assert.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2064 [NoesisGUI] C++ SDK minor always 2021-07-23 21:06 2021-08-04 16:31
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.1  
    Target Version: 3.1.1  
Platform: Any
Summary: UIElement::IsVisibleProperty default value is set to true
Description: Hi guys, following up from the forum post:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2367&sid=fd32d1c57eae2e3a259603c6b3df456e

It sounds like the default value just needs to be set to false so things are not treated as visible until they are connected to the visual tree.

Cheers

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007345)
sfernandez   
2021-08-04 12:45   
Fixed in revision 10646.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2065 [NoesisGUI] C++ SDK minor sometimes 2021-07-27 11:52 2021-07-28 11:38
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.9  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: CollectionSortBehaviour::RemSortedItem uses incorrect logic
Description: Hi guys,

Just wanted to let you know that CollectionSortBehaviour::RemSortedItem breaks if there are multiple elements with the same priority. The current implementation tries to find the index of the element to remove by binary searching. This works fine if everything has a unique priority, but if there are multiple elements with the same priority then this might attempt to remove any elements matching the input priority.

For now we've just changed the implementation to a linear search:

void CollectionSortBehaviour::RemSortedItem(SortComparer* comparer, SortedCollection* list, Noesis:::BaseComponent* item)
{
    list->Remove(item);
}


Obviously this changes the O(log n) -> O(n), but that's fine for us as n is trivially small.
Tags:
Steps To Reproduce: 1. Create an observable collection, fill with some elements
2. Create a sort behaviour
3. Create a custom SortComparer, make the compare function return 0 for more than 1 element in your collection (i.e. multiple elements have the same priority)
4. Attempt to remove that element from your list
5. Notice that it can remove an incorrect item.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1926 [NoesisGUI] C++ SDK minor have not tried 2021-02-18 10:46 2021-07-27 20:08
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Switch
Summary: NVNRenderContext requiring 1GB of stack memory
Description: While bundling Noesis into our Switch target, we observed a crash due to NVNRenderContext requiring 1GB of stack memory for donation to the graphics firmware. This is easy enough for us to work around, as we are able to exclude the package with no issues, but I wanted to bring it to your attention as it seems like 1GB might be a bit much, and also to ask if it would be possible for NVNRenderContext to allocate the memory on the heap, at runtime, instead? That would also spare the cost for anyone who links but does not use the package
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1330 [NoesisGUI] Unity3D minor have not tried 2018-10-30 12:52 2021-07-27 20:08
Reporter: digimbyte Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Moving NoesisGUI inside a subfolder causes it to reinstall every time on run.
Description: Every time the Xaml is recompiled after edits, and during editor play, the
Welcome to NoesisGUI dialog always appears
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1343 [NoesisGUI] C++ SDK feature have not tried 2018-11-20 19:54 2021-07-27 20:07
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Evaluate using Boxing in PropertyChangedEventArgs to avoid void*
Description: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=929
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005303)
jsantos   
2018-11-20 20:49   
(Last edited: 2018-11-20 21:12)
After evaluating many alternatives we think the best option is providing type safe getters instead of boxing, something like

bool isOpen_ = args.GetOldValue<bool>();
bool isOpen = args.GetNewValue<bool>();




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1849 [NoesisGUI] C++ SDK feature always 2020-11-26 17:48 2021-07-27 20:06
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for Apple TV
Description: Implement support for Apple TV
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2058 [NoesisGUI] C++ SDK minor always 2021-07-13 17:12 2021-07-27 20:06
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: display->Close() not working on Nintendo Switch
Description: We're using `display->Close()` when we would like to close the app. It works fine on Desktop, but doesn't seem to work on Nintendo Switch (app doesn't quit). Do you have any recommendations?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007324)
jsantos   
2021-07-13 17:50   
We fixed this in r10562 for 3.1


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2048 [NoesisGUI] Unity3D feature N/A 2021-06-16 02:14 2021-07-27 20:06
Reporter: tsteinke Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Switch/NVN renderer support in Unity plugin
Description: We need the ability to render to the Switch through the Unity plugin, similar to UnityDeviceD3D11/UnityDeviceGL
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2056 [NoesisGUI] Unreal minor always 2021-07-01 16:10 2021-07-27 20:06
Reporter: maxnt Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Windows
Summary: Current UI does not react to changes in MergedDictionaries of the Application Resources
Description: I’m trying to implement dynamic Application Resource switching in UE4. In C# / WPF removing and inserting a new ResourceDictionary in Application.Current.MergedDirectories to change a theme/style works and takes effect immediately.
 
The effect is visible dynamically while the application is running.
 
However, in UE4 when I use the Noesis::GUI framework the effect is only visible once a view is changed/reloaded. Either by switching to a new view or re playing in editor.
 

Tags:
Steps To Reproduce: Insert an Resource dictionary into the Noesis::ResourceDictionaryCollectionreturned by GetMergedDictionaries with different styles
Notice UI does not update.

Example code:

       Noesis::ResourceDictionary* AppRes = Noesis::GUI::GetApplicationResources();
 
       if (AppRes)
       {
              Noesis::ResourceDictionary* Res = **some resource**
              if (Res)
              {
                     Noesis::ResourceDictionaryCollection* MergedDirectories = AppRes->GetMergedDictionaries();
                     MergedDirectories->Insert(Index, Res);
              }
       }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2019 [NoesisGUI] Unreal minor always 2021-05-13 10:33 2021-07-27 20:05
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: MediaElement texture gets black when trying to loop the video
Description: As described here: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2306
When video reaches the end, and through the media actions it is restarted, the texture gets black but audio plays fine.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2025 [NoesisGUI] Unreal feature always 2021-05-19 17:28 2021-07-27 20:05
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Expose properties defined by UFUNCTION Getter and/or Setter
Description: The following functions:

UFUNCTION(BlueprintCallable)
void SetNumItems(int32 value);

UFUNCTION(BlueprintCallable)
int32 GetNumItems() const;

Should be exposed in the type as a "NumItems" property that can be bindeable.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1531 [NoesisGUI] Unity3D minor always 2019-08-08 16:37 2021-07-27 20:05
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Noesis Premultiply Alpha Texture Import Setting Ignored by Noesis
Description: When the \library folder is deleted ... or new files are checked out from SCM ... Noesis does not apply the premultiply alpha texture transformation specified in import settings until the import UI for that specific image is flagged dirty and changes are applied. See enclosed screenshots

1) image is configured with sRGB and Noesis Premultiplied Alpha is requested.
2) See runtime use of image. Image does not have alpha premultiplied.

This is an issue for projects with several hundred images. Every time I checkout from SCM I have to change a setting on an image to make the UI dirty, and then apply changes so that Noesis premultiplied alpha is applied. I have 690 images spread across multiple directories. This is not fun! :( I can confirm .meta metadata is stored in SCM, and that Noesis is not detecting or applying the change on initial project load. Maybe I'm doing something wrong...?


Tags:
Steps To Reproduce: 1) Import Image
2) Request Noesis Premultiplied Alpha
3) Use Image in Scene with Noesis Image UserControl. Confirm Premultiplied Alpha is applied.
3) Close Unity
4) Delete \Library
5) Reopen Unity.
6) Restart Scene. Premultiplied Alpha is lost but setting is still assigned.
Additional Information:
Attached Files:
Notes
(0005916)
jsantos   
2019-08-08 17:18   
(Last edited: 2019-08-08 17:18)
I think we are hitting another Unity bug. If you go to NoesisPostprocessor.cs you can find

if (AssetDatabase.GetLabels(assetImporter).Contains("Noesis") || assetPath.StartsWith("Assets/NoesisGUI/Samples"))

So, probably, the GetLabel is not working at that point. If you read the comment above that line you will see that we already experimented weird behaviors.

Not sure, how to overcome this, but we will. Could you please confirm that's the problem you have?

(0005925)
stonstad   
2019-08-16 00:46   
Okay. Next time I need to dump /library and have Unity rebuild assets ... or I pull from SCM ... I'll test the above code to see how and why it might be failing.
(0005984)
stonstad   
2019-10-08 17:13   
OK, I setup a new laptop and did a fresh pull from SCM.

1) After initial project asset import, I confirmed that premultiply alpha was not applied to Noesis textures.
2) I confirmed that these texture assets have the Noesis tag applied and IsAlpha is checked.
3) I modified the line of code you shared to include my "User Interface" directory and I then instructed Unity to reimport assets via the project folder hierarchy.
4) Success! Textures show premultiplied on playback.

It would appear that GetLabels is not working as expected.
(0005985)
jsantos   
2019-10-09 04:45   
Yes, it seems to be a bug in Unity we need to workaround, I have a few ideas about it. Thanks for your feedback!
(0007314)
jsantos   
2021-06-24 18:46   
In 3.1 we added support for having a .noesis file to mark Noesis content, this is the most robust solution we found


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2042 [NoesisGUI] Unity3D minor always 2021-06-06 16:37 2021-07-27 20:05
Reporter: Flem100@live.dk Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Windows
Summary: missing virtual keys
Description: In this forum post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2329
I asked about missing virtual keys. Your guy answered it was a mistake and that I should create ticket. I hope this is the right place :)
Tags: Unity
Steps To Reproduce: Use the VS 2019 NoesisGUI Template and tutorial
Additional Information:
Attached Files:
Notes
(0007277)
jsantos   
2021-06-07 11:44   
Thanks! The current input system is going to be deprecated in favor of the new system provided by Unity. But I assume we will have both systems during a while.
(0007313)
jsantos   
2021-06-23 17:30   
In 3.1 we are using the new Input System, this issue no longer makes sense.

Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1828 [NoesisGUI] Unity3D feature always 2020-11-03 12:51 2021-07-27 20:05
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for the new Unity Input System
Description: The old input system is deprecated. Noesis should be compatible with the new package:

https://docs.unity3d.com/Packages/com.unity.inputsystem@latest/index.html
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1682 [NoesisGUI] Unity3D minor always 2020-05-08 16:21 2021-07-27 20:05
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: OnGUI GC Allocations
Description: Using OnGUI in NoesisView.cs causes per-frame GC allocations. Noesis should not be using OnGUI external to the Unity Editor because it is not designed for production use.

See https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1867&p=10600&hilit=ongui#p10600

According to Unity:

"The Immediate Mode GUI system is commonly used for:

Creating in-game debugging displays and tools.
Creating custom inspectors
for script components.
Creating new editor windows and tools to extend Unity itself.

The IMGUI system is not generally intended to be used for normal in-game user interfaces that players might use and interact with."
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006641)
stonstad   
2020-09-22 19:36   
Hey Jesús. Just checking in on the status of this issue. I know it seems low priority, but it would be really awesome to have no per-frame allocations in Noesis. That's such a big deal for console devs. Thanks!
(0006650)
jsantos   
2020-09-24 16:23   
We have plans to be compatible with the new Unity Input System in 3.0.X but for now I cannot give a better estimation
(0007144)
stonstad   
2021-04-12 22:18   
Any updates around this capability to eliminate OnGUI allocations?

Thanks,
Shaun
(0007145)
jsantos   
2021-04-13 11:06   
(Last edited: 2021-04-13 11:06)
Hi Shaun,

This is coming with the new Unity Package (we are deprecating .unitypackage in favor of the new system). Last time I checked the new Input System there were issues and we couldn't have all current features. That's the reason we are going with this as "optional".

Planned for 3.1, before GDC 21.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1596 [NoesisGUI] C# SDK minor always 2019-12-06 17:18 2021-07-27 20:05
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Unity 2019.2.x OnGUI GC Allocation in NoesisView.OnGUI
Description: The Unity MonoBehavior function OnGUI has a 0.7 kb per-frame gc allocation. Unity does not intend to fix this, as OnGUI is deprecated, per this thread: https://forum.unity.com/threads/gc-coll ... ui.642229/

NoesisView.cs uses OnGUI as follows:
 void OnGUI()
    {
        if (_uiView != null)
        {
            UnityEngine.GUI.depth = -(int)_myCamera.depth;
            ProcessEvent(UnityEngine.Event.current, _enableKeyboard, _enableMouse, _emulateTouch);
        }
    }

I can confirm the following:
1. OnGUI leaks memory without the internal Noesis logic.
2. Commenting out OnGUI completely removes a 0.7 kb per frame allocation.

To eliminate this allocation, is there a different location Noesis logic may be moved to?

Allocation screenshot: https://i.imgur.com/AAfTwRS.png


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007312)
jsantos   
2021-06-23 02:23   
(Last edited: 2021-06-23 02:24)
It seems I found a way to disable GC Allocs in our View. Just by adding the following function, all spikes disappear.

    void Start()
    {
        // https://forum.unity.com/threads/gc-collect-in-guiutility-begingui.642229/
        // Avoid OnGUI GC Allocations
        useGUILayout = false;
    }

I feel silly because this function was removed in 0001433. This time I added a better comment to avoid this mistake again.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1827 [NoesisGUI] Unity3D feature always 2020-11-03 12:48 2021-07-27 20:05
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Noesis should be compatible with the Unity Package Manager
Description: The Package Manager is the new way to extend Unity. We are going to deprecate our .unitypackage and support this new approach.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1819 [NoesisGUI] C++ SDK feature N/A 2020-10-26 20:09 2021-07-27 20:04
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Implement D3D12 renderer
Description: Although studios are already using D3D12 by using a custom RenderDevice, at 3.1 we plan to release an official reference D3D12 renderer.
This will be also the renderer used by our Unity Plugin. Note that, D3D12 is already supported in Unreal.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
342 [NoesisGUI] Unity3D feature always 2014-02-04 12:29 2021-07-27 20:04
Reporter: sloopidoopi Platform:  
Assigned To: jsantos OS:  
Priority: urgent OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: no practical multitouch interaction possible with most of the widgets
Description: On devices that uses touch input (IOS, Windows 8 tablets) it is not possible to interact with multiple widgets at the same time.
Tags:
Steps To Reproduce: Touch and interact with multiple fingers simultaneously on the screen with GUI-widgets.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1530 [NoesisGUI] C++ SDK feature always 2019-08-08 09:21 2021-07-27 20:04
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: VS2019 support
Description: Hi, we are starting to use VS2019. Could you consider adding official support for it ?

Currently I found the following line generate warning -> converted to error.

KeyboardNavigation.cpp line 828:
float distanceX = fabs(mLeftBottom.x - leftBottom.x);

-> conversion from double to float, possible loss of data

I am using VS2019 16.2.0
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: string.h.patch (812 bytes) 2019-08-08 10:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1095&type=bug
Notes
(0005914)
nikobarli   
2019-08-08 10:57   
I also needed to apply the following patch. Seems to be the same issue as here: https://github.com/electronicarts/EASTL/issues/274
(0005915)
jsantos   
2019-08-08 12:56   
Hi Niko, are those errors the only problems you have?

We already have a branch (almost ready to be integrated into trunk) with no EASTL at all :)
(0005921)
nikobarli   
2019-08-09 07:18   
Yes, those are all problems that I found. I also need to change the Platform Toolset on all vcxproj files to use VC++ 2019.
We are now using VS2019 with slightly patched Noesis.
(0005965)
nikobarli   
2019-09-25 06:43   
This is also a problem in VS2019 16.3.0

https://developercommunity.visualstudio.com/content/problem/734566/msvc-142328019-is-missing-include-typeinfoh.html

Need to change typeinfo.h -> typeinfo
(0005966)
jsantos   
2019-09-26 15:17   
We are no longer using STL or C++ includes (like typeinfo.h) in trunk but I recommend waiting a bit before using that version because the version is still unstable


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1457 [NoesisGUI] C# SDK feature always 2019-04-27 22:52 2021-07-27 20:04
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Shift + mouse wheel = horizontal scroll
Description: Any way to disable this behavior?
Players are holding Shift very often in our game and it's really confusing to them. And we don't have any horizontally scroll viewers anyway so this feature is useless for us.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005656)
sfernandez   
2019-04-30 10:12   
Sorry, there is no way to disable that behavior right now.

Something like a "ShiftWheelScrollsHorizontally" attached property that you could set in a ListBox for example could work for you?
Or maybe, when the shift key is pressed, scroll vertically with the mouse wheel if there is no horizontal scrollbar enabled?
(0005657)
ai_enabled   
2019-04-30 13:21   
Hi Sergio,
thanks for the quick reply!

Yes, I understand it would be easier to hack temporary (remember Shift press state, release it, apply scroll delta, set Shift down again if it was pressed before).

1. Something like a "ShiftWheelScrollsHorizontally" attached property that you could set in a ListBox for example could work for you?
This is not a reasonable approach as not many NoesisGUI users will be aware of such extension property.

2. when the shift key is pressed, scroll vertically with the mouse wheel if there is no horizontal scrollbar enabled?
This is a very reasonable approach and it doesn't require any extra work! I like it.

Also, it might be a good idea to simply expose this in NoesisGUI API so we could simply set a global option to toggle the horizontal scroll feature completely. It's not used for 99.9% of games, I'm sure about this! :-)
So probably it's better to keep it off by default unless you want to follow WPF behavior here completely (which I'm not sure about).

Regards!
(0005661)
ai_enabled   
2019-05-02 14:38   
No rush, this workaround seems to work fine in our case:
this.view.KeyUp(Key.LeftShift);
this.view.KeyUp(Key.RightShift);
this.view.MouseWheel(x, y, scrollDeltaValue);
(0005953)
ai_enabled   
2019-08-29 21:54   
I'm quite certain that the workaround is causing some unexpected issues with input though...I hope this feature will be implemented soon.
I would even prefer a NoesisGUI global option to disable horizontal scroll with Shift key altogether. I bet almost all video games are never using horizontal scrollbars and even if they do, it's unlikely that users would grief the absence of Shift+Scroll feature.
(0006332)
jsantos   
2020-05-08 12:27   
Probably related to 0001517
(0006340)
ai_enabled   
2020-05-09 01:36   
Hi,
indeed, the workaround might be related but it's definitely Ctrl key getting stuck, not Shift. Hmm.
I still wish you just provide an option in SDK to disable the horizontal scrolling altogether—seriously, no game dev wants this feature enabled by default!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1846 [NoesisGUI] C++ SDK feature always 2020-11-26 17:43 2021-07-27 20:04
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for PlayStation 5
Description: Add PlayStation 5 to the C++ SDK
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1847 [NoesisGUI] C++ SDK feature always 2020-11-26 17:45 2021-07-27 20:04
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for Xbox Series X|S
Description: Add Xbox Series X|S to the C++ SDK
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1863 [NoesisGUI] C++ SDK feature always 2020-12-21 20:20 2021-07-27 20:04
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: New Tessellator
Description: Tessellator is used internally for generating distance fields, sending triangles to the GPU and performing boolean primitive operations.

In Noesis 3.1 we are going to implement the second generation of the tessellator, bringing performance improvements between 10x and 15x depending on the geometry.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1880 [NoesisGUI] C# SDK feature always 2021-01-13 15:55 2021-07-27 20:04
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Support for implementing custom RenderDevice in C#
Description: Right now it is only possible to use native render devices from C# SDK.
We need to add support for C# users to implement their own Render Devices.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1224 [NoesisGUI] Unity3D feature always 2018-01-20 21:20 2021-07-27 20:04
Reporter: mingingmingler Platform: PC  
Assigned To: jsantos OS: Windows 10  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0b15  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Custom shader effects not supported
Description: I have a requirement to be able to render modern UI effects, such as frosted glass.

In evaluating which UI solution to use for a project, it's been discovered that Noesis apparently does not support the custom shader effects of WPF.

The forum has a couple several year old threads related to this where it was cited that custom effects would be coming to Noesis, but there seems to have been no word since, and the roadmap does not detail plans for it to be implemented.

I'm curious if there is any official word on this feature, and if there is a rough timescale for when it may be implemented. Thank you!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005039)
jsantos   
2018-01-23 01:19   
Hi!

Yes, we are working on this. It's been delayed several times but right now this is on the list of next features we are working on for the next major version. We already have custom clients patching our code and using effects (just for the C++ API). We don't plan to implement HLSL reconversion to the target platform (GL, Metal, Vulkan) on the fly, the idea is having each renderer implementing each effect. This is going to make the API a bit restrictive for Unity for example, because the number of effects is going to be fixed (we can increase the list of official effects with each release). What kind of effects do you need?

Anyway, this could change because for now we are experimenting. Can't give you an estimation about release date though.
(0005041)
mingingmingler   
2018-01-23 04:55   
(Last edited: 2018-01-23 07:09)
Thanks for the info!

The only effect we're *really* in need of is frosted glass, My UI artist seems to have a bit of a fetish for it, though his reasoning isn't unfounded as it's a gorgeous effect.

I've worked with an in house implementation of XAML in the past and we made extensive use of custom shaders in it, so the flexibility to do this with Noesis would be killer. If there's tradeoffs involved, like needing to bypass the Unity asset pipeline, that'd be absolutely fine.

Nevertheless, I'm liking Noesis so far, keep up the good work!

(0005044)
jsantos   
2018-01-24 01:58   
Thanks for the kind words, I will keep you posted about the effect implementation. They are coming to Noesis for sure.
(0005911)
stonstad   
2019-07-29 20:49   
It looks like I created a duplicate ticket requesting the same (https://www.noesisengine.com/bugs/view.php?id=1526).
(0005912)
jsantos   
2019-07-29 21:00   
not your fault, this ticket was private before... :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1845 [NoesisGUI] C++ SDK feature always 2020-11-26 17:37 2021-07-27 20:03
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Add support for Apple silicon architecture
Description: Same way we were distributing an universal binary for both x86 and x86_64, now we need to add support for arm64 in macOS.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1966 [NoesisGUI] Unreal feature always 2021-04-12 19:30 2021-07-27 20:03
Reporter: jsantos Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Support for Unreal 5
Description: Implement compatibility with UE5
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1989 [NoesisGUI] Unreal major always 2021-04-28 18:28 2021-07-27 20:03
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: TMap is not yet exposed in Unreal plugin as a dictionary and can't be used in bindings
Description: At the moment it is not possible to use TMap in UE4 for MVVM binding similar way how Dictionary is used in C#.

Sergio mentioned that the feature is not implemented yet and can be added to the next release.
Tags:
Steps To Reproduce: - Bind XAML property to a Dictionary in your ViewModel, e.g. {Binding DictionaryName[SomeKeyName]}
- Define that dictionary in UE4 as a TMap
- As a result, that XAML property will not be bound
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1865 [NoesisGUI] C++ SDK feature have not tried 2020-12-24 11:54 2021-07-27 20:03
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Extend blending modes
Description: Right now Noesis (as WPF) only supports one blending mode (SrcOver).

We should create an extension to support more blend modes like additive and probably all modes supported by Adobe.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1569 [NoesisGUI] C++ SDK major always 2019-10-15 03:33 2021-07-27 20:03
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.1.0  
    Target Version: 3.1  
Platform: Any
Summary: Customizing UriConverter / XamlProvider
Description: Follow ups from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1830

We would like more freedom on managing our xaml placements using Packed URI.

Please consider adding this feature to UriConverter and/or XamlProvider.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005993)
nikobarli   
2019-10-15 04:44   
And I think we have the issue with the Font and Texture provider as well.
(0005999)
sfernandez   
2019-10-18 14:28   
Yes, the same UriConverter code is used for all the resources: xamls, fonts, images...
(0006656)
nikobarli   
2020-10-01 02:02   
Hi Sergio,

Do you have update on this issue ?
The number of Noesis vcxprojs are growing, and it's becoming more difficult for us to work around this.
We need to make sure to not using XAMLs with identical filenames (although they are belong to different projects), because our XAML provider is searching for the filename on all possible subdirectories.
(0006657)
sfernandez   
2020-10-01 14:05   
(Last edited: 2020-10-01 14:10)
Hi,

We are thinking on extending providers api with a new function that will receive both path and assembly as an Uri object. For example for the XamlProvider:
virtual Ptr<Stream> LoadXaml(const Uri& uri) = 0;

For branch 3.0 we will first call current load function with path only, and if it returns null, then we will call the new function passing the Uri that provides also the assembly name.
In next 3.1 version only the new function will be available.

Do you think this would work in your case?

(0006658)
nikobarli   
2020-10-02 07:02   
Hi Sergio, thanks for the consideration.

Yes, I think it's sufficient for us if we can tell the assembly name from the Packed URI.
We are also OK with the scheme you proposed for version 3.0 and 3.1.
(0007110)
satorp   
2021-03-25 08:13   
Hi Sergio. Could we have an update for this issue? Do you have plan to implement the fix in 3.0, or should we wait for 3.1?
(0007113)
sfernandez   
2021-03-29 10:46   
We tried to incorporate this but found some complications and had to delay it until next major version.
Sorry for the inconveniencies.
(0007117)
satorp   
2021-03-30 06:02   
(Last edited: 2021-03-30 06:53)
I see. Thank you for the update. By next major version you mean 4.0? Not 3.1?

(0007120)
jsantos   
2021-03-30 12:40   
3.1, the next major release. Soon we are going to have a meeting to discuss about this and see if we find an easy solution.
(0007182)
Susanna.Rowland   
2021-04-28 13:25   
Are there any updates on this issue? Is it still on schedule for the 3.1 release?
(0007188)
sfernandez   
2021-04-29 10:46   
Hi Susanna,

We still plan to solve this for the 3.1 release. The idea is to incorporate the assembly information in the Uri object that will be received by the providers to load resources, for example:
virtual Ptr<Stream> LoadXaml(const Uri& uri) = 0;


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1650 [NoesisGUI] C# SDK minor always 2020-04-08 20:21 2021-07-23 03:21
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis Premultiplied Alpha Conversion label Missing
Description: The label for instructing Noesis to perform premultiplied alpha conversion for an image is not appearing. See Error.png.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Error.PNG (37,756 bytes) 2020-04-08 20:21
https://www.noesisengine.com/bugs/file_download.php?file_id=1182&type=bug
Notes
(0006178)
sfernandez   
2020-04-09 11:06   
When installing the Noesis unity package did you import the samples?
We only define that label for the textures used in the samples, so if they are not imported the Noesis label won't be created in the project.
Maybe we can add that label to any of the plugin editor images so it is always present.
(0006180)
stonstad   
2020-04-09 17:22   
Thank you, Sergio. Importing assets was the needed fix. For future reference, is there a specific file in samples that I may import to get the label?
(0006185)
sfernandez   
2020-04-09 20:27   
You can manually create the label.
Just select any of your images you want to set for premultiplied alpha, click the label button in the inspector and write "Noesis" and hit ENTER.
It will add the label to the list and make it available for the project.

Does that work for you?
(0006192)
stonstad   
2020-04-10 21:46   
yes, thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2061 [NoesisGUI] Unity3D crash sometimes 2021-07-15 18:21 2021-07-21 20:10
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.12  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.1  
    Target Version: 3.1  
Platform: Any
Summary: Editor Crash, Noesis_View_Update
Description: Stack trace:
0x00007ffdb890c644 (Noesis) Noesis_View_Update
0x00007ffdb890cb84 (Noesis) Noesis_View_Update
0x00007ffdb8918616 (Noesis) Noesis_ClearExtendTypes
0x0000025e0428abee (Mono JIT Code) (wrapper managed-to-native) Noesis.Extend:Noesis_ClearExtendTypes ()
0x0000025e0427d6d3 (Mono JIT Code) [Extend.cs:98] Noesis.Extend:Shutdown ()
0x0000025e0427c333 (Mono JIT Code) [Extend.cs:37] Noesis.Extend:OnDomainUnload (object,System.EventArgs)

Unity 2021.1.13f1.
Noesis GUI 3.0.12.
Tags:
Steps To Reproduce: I received this fatal exception in the Unity editor after playback was stopped. This is the first time I have seen this since upgrading to 3.0.12. I'll update this ticket if it continues or if I I develop reproduction steps.
Additional Information:
Attached Files: Editor.log (334,169 bytes) 2021-07-15 18:21
https://www.noesisengine.com/bugs/file_download.php?file_id=1457&type=bug
crash.dmp (1,648,747 bytes) 2021-07-15 18:21
https://www.noesisengine.com/bugs/file_download.php?file_id=1458&type=bug
Notes
(0007325)
stonstad   
2021-07-15 19:52   
(Last edited: 2021-07-15 21:26)
Confirmed it is happening randomly, sometimes every play/stop cycle. At other times, it is stable for 30+ minutes. *updated

(0007326)
sfernandez   
2021-07-16 10:11   
Can you share the project to debug it? It will be faster to track down the source of the problem.
(0007329)
sfernandez   
2021-07-19 20:14   
I found the bug and fix it, could you please try the following library:
https://drive.google.com/file/d/1yAlu9TS0NGHMtpN6R6ExeW_vTdqJfb1A/view?usp=sharing
(0007337)
stonstad   
2021-07-21 19:24   
Thank you. I'm trying it out. Is the fix specific to editor mode only? Thanks.
(0007338)
sfernandez   
2021-07-21 20:10   
Yes, this code is only executed in editor mode when domain gets reloaded for Play.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2059 [NoesisGUI] C++ SDK minor always 2021-07-14 09:19 2021-07-14 09:20
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: ComboBox Text should be updated when selecting an item
Description: Text property on ComboBox should be updated when an item gets selected, even if the ComboBox is not editable.
Right now Noesis only updates it when IsEditable is set to true.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2055 [NoesisGUI] Unity3D major always 2021-06-29 13:38 2021-07-01 10:35
Reporter: saarix Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Parent command binding not working properly
Description: I tried parent binding command from UserControl to another, which works well in WPF. But once I played the project in Unity it stopped working.
As a base I am using this for of binding:
Command="{Binding Parent.DataContext.OpenHomeCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"

I will attach screenshots of all my XAML and ViewModels involved so you can get better understanding of my usecase.
(It is from a quick demo that I created just to demonstrate this usecase)
Tags: C#, Unity
Steps To Reproduce: After click on the button, it does not invoke command on MainViewModel.
Additional Information:
Attached Files: MainViewModel.png (13,749 bytes) 2021-06-29 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1454&type=bug
MainWindow.png (32,085 bytes) 2021-06-29 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1455&type=bug
Navbar.png (21,964 bytes) 2021-06-29 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1456&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2054 [NoesisGUI] Unity3D major always 2021-06-29 13:12 2021-07-01 10:19
Reporter: saarix Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Binding to ActualWidth property returns 0 at runtime
Description: I was trying to bind a grids width property to its child elements ActualWidth to control size. But it is always set to 0, even tho the actual width of the child is correct in the inspector.
This solution works fine in WPF, but breaks in Unity.

As described in my forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2346&p=12942#p12942
Tags: C#, Unity
Steps To Reproduce: The issue should always happen with this code:

<DockPanel>
    <Control Template="{StaticResource IconPlus}" Width="120" Height="120" DockPanel.Dock="Left" Panel.ZIndex="1" />
    <Control Template="{StaticResource IconCoin}" Width="120" Height="120" DockPanel.Dock="Right" Panel.ZIndex="1" />
    <Grid Width="{Binding Path=ActualWidth, ElementName=CoinsAmount, UpdateSourceTrigger=PropertyChanged}">
        <Control Template="{StaticResource DarkPanelBackground}" Margin="-45, 40, -60, 40" />
        <TextBlock x:Name="CoinsAmount" Text="8 547" FontSize="36" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="White" />
    </Grid>
</DockPanel>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2051 [NoesisGUI] Unity3D tweak always 2021-06-21 09:37 2021-06-21 09:37
Reporter: sfernandez Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unity types nuget
Description: As suggested in https://www.noesisengine.com/forums/posting.php?mode=reply&f=3&t=2337
it could be useful to have a nuget with many of the default Unity types so viewmodels can be created in Blend using them, reducing the need of #if blocks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2047 [NoesisGUI] Unreal crash always 2021-06-15 15:56 2021-06-18 19:59
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Crash when using DataTrigger bound to DataContext
Description: There is a crash in Noesis in some specific cases when xaml uses DataTrigger bound to a DataContext property. It is not crashing if it is bound to some other property of the element.

Here is an example:
<Grid x:Name="HintPCParent">
    <Grid x:Name="ButtonHint_Pc" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,5,0" Visibility="{TemplateBinding PCHintVisibility}">
        <TextBlock x:Name="ButtonHint_Pc_Key" Style="{StaticResource Bold_XXS}" Text="{TemplateBinding PCHint}" Foreground="{DynamicResource Col_4}" VerticalAlignment="Center" HorizontalAlignment="Center" Padding="0" Margin="0,0,0,-3"/>
    </Grid>
    <Grid.Style>
        <Style TargetType="Grid">
            <Setter Property="Visibility" Value="Collapsed"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Settings.ControllerType }" Value="MouseAndKeyboard">
                    <Setter Property="Visibility" Value="Visible"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
</Grid>

I have also tried using DataTrigger in ControlTemplate.Triggers instead with the same result.

I other places DataTriggers work absolutely fine, but when used in that specific file it causes crash.
Crash dump is attached.
Tags: C++, UE4, xaml
Steps To Reproduce: Not every DataTrigger causes that crash so there are not real steps to reproduce. It is just in that specific case it will always crash.
Additional Information:
Attached Files: UE4CC-Windows-0AAC39604FF526D6D02B4B96473383D9_0000.zip (388,957 bytes) 2021-06-15 15:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1447&type=bug
UE4CC-Windows-72213015497A202C274847AFC5DE8CE7_0000.zip (343,625 bytes) 2021-06-16 09:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1449&type=bug
UE4CC-Windows-EA9C8C9E49C72BB548B0CFA9584A2F64_0000.zip (346,348 bytes) 2021-06-17 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1450&type=bug
UE4CC-Windows-83B4716D4014A57545BC7AA489B6EAB9_0000.zip (341,600 bytes) 2021-06-17 16:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1451&type=bug
UE4CC-Windows-BBD83AB0438347D7BEF1D998F74646DE_0000.zip (271,834 bytes) 2021-06-17 16:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1452&type=bug
UE4CC-Windows-342A90954289735B6C8DDC809D91EEAD_0000.zip (333,351 bytes) 2021-06-17 20:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1453&type=bug
Notes
(0007296)
sergey_sitnikov_ninjatheory   
2021-06-16 09:47   
Added a new crash dump file.
(0007298)
sergey_sitnikov_ninjatheory   
2021-06-16 14:26   
I have investigate it a bit further and it seems that the crash is likely related to the fact that Binding to the DataContext is used INSIDE the ControlTemplate.
So as a simple example, I have created a style that sets a Template and inside it uses a Binding to the ViewModel property.
I found out that if that Binding is never used anywhere else but only inside the ControlTemplate, then Noesis will crash on the first usage of that control template/style.
But if that Binding to the property is used directly in some control then there is no crash!

<Style TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Grid>
                    <TextBlock x:Name="ButtonText" Text="{Binding TestObject.TestProperty}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

It will crash if used in the ContentControl like that:

<ContentControl
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      Width="Auto" Height="Auto">
<StackPanel>
    <Button/>
</StackPanel>
</ContentControl>

But it will not crash anymore if used this way:

<ContentControl
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      Width="Auto" Height="Auto">
<StackPanel>
    <Button Content="{Binding TestObject.TestProperty}"/>
    <Button/>
</StackPanel>
</ContentControl>

I hope it makes sense. Please let me know if you need any additional information.
(0007299)
sfernandez   
2021-06-16 16:05   
Thanks for the detailed info, the crash dumps point me to a problem initializing an element when applying the template on the control.
It seems that the binding is modifying a value that invalidates some data that is being iterated, I'll try to reproduce and fix it as soon as possible.
(0007302)
sfernandez   
2021-06-17 12:37   
I've been trying to reproduce the crash using both examples without success, it worked for me in Unreal and using our XamlPlayer.

Would it be possible for you to generate new crash dumps with the following debug library of Noesis?
https://drive.google.com/file/d/1QUtlPTYGkpeX77EoW83VBhivPU6v4Q-9/view?usp=sharing

Or if you can attach a small Unreal project that reproduces the crash that will be even better.

I need some more information to confirm what I think is the source of the problem.
Thanks for your feedback.
(0007303)
sergey_sitnikov_ninjatheory   
2021-06-17 13:50   
Hey Sergio,

Should I just take Noesis.dll from that library?

Cheers,
Sergey
(0007304)
sfernandez   
2021-06-17 14:57   
Yes, place that Noesis.dll inside the Binaries folder of your project.
(0007305)
sergey_sitnikov_ninjatheory   
2021-06-17 15:20   
Hi Sergio,

Unfortunately, that zip is recognised by googledrive as infected for some reason and it doesn't let me to download it. Can you please just zip the dll file and send it to me by the email instead?

Cheers,
Sergey
(0007306)
sfernandez   
2021-06-17 15:28   
Sure, mail sent.
(0007307)
sergey_sitnikov_ninjatheory   
2021-06-17 15:43   
Hi Sergio,

The crash now looks different. I haven't been able to reproduce it yet with the simple example but I will spend some time tying to simplify it as much as possible,

Cheers,
Sergey
(0007308)
sergey_sitnikov_ninjatheory   
2021-06-17 16:01   
(Last edited: 2021-06-17 16:01)
I have skipped two exceptions and got the same crash as before. However this one has crashed in the situation when the original library would not.

(0007309)
sergey_sitnikov_ninjatheory   
2021-06-17 16:13   
This crash is on file import when I try to import the Window xaml with that problematic control as a child.
(0007310)
sergey_sitnikov_ninjatheory   
2021-06-17 17:58   
Hello Sergio,

It looks like the problem is likely deeper than it seemed at the beginning and in my case is related to the fact that I stream level instance right after the initialisation of the Noesis view and its viewmodel. I will keep investigating further and also will try the new dll you sent earlier.

Cheers,
Sergey
(0007311)
sergey_sitnikov_ninjatheory   
2021-06-17 20:27   
Hey Sergio,

I managed to reproduce the issue and sent you more details by the email. Here is the latest crash dump using debug Noesis.dll.

Cheers,
Sergey


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2050 [NoesisGUI] C++ SDK feature always 2021-06-18 12:11 2021-06-18 12:12
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Add support to visualize/edit DataContext state in inspector
Description: Right now only dependency properties are visible and editable. It would be nice to expand DataContext properties to visualize and edit them too.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2049 [NoesisGUI] Unity3D major always 2021-06-17 12:58 2021-06-17 14:57
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Grid will grow when contents grow, but not shrink when content shrinks.
Description: I have a ScrollViewer ControlTemplate that looks like this (simplified for readability):
Code: Select all

<ControlTemplate TargetType="{x:Type ScrollViewer}">
  <Grid>
    <DockPanel>
      <ScrollViewer>
        <GridViewHeaderRowPresenter />
      </ScrollViewer>
      <ScrollContentPresenter
        Name="PART_ScrollContentPresenter"
        />
    </DockPanel>
    <ScrollBar
      Name="PART_VerticalScrollBar"
      HorizontalAlignment="Right"
      />
  </Grid>
</ControlTemplate>

The ScrollViewer is used inside a ListView/GridView, and PART_ScrollContentPresenter displays the columns. If PART_ScrollContentPresenter grows (e.g. show hidden column), the Grid grows with it, so everything is displayed correctly. However if PART_ScrollContentPresenter shrinks, the Grid stays the same size, leaving a gap between PART_ScrollContentPresenter and PART_VerticalScrollbar.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2041 [NoesisGUI] Unity3D feature have not tried 2021-06-04 16:48 2021-06-09 19:17
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Create Blend project from existing Unity project
Description: Add a menu entry in our Noesis menu to generate a Blend project from an existing Unity project.

Similar to Visual Studio project template this option should:
- add the Noesis.GUI.Extension nuget reference
- set up the folder structure
- include all the xaml+cs and dependencies available inside Assets in the project
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007287)
KeldorKatarn   
2021-06-09 01:13   
(Last edited: 2021-06-09 01:20)
This should be a new .NET Standard SDK project, not one of the old ones. Those are awkward.

It might also be beneficial to create a Directory.Build.props file at the project root so the bin and obj folders can be moved properly into the Blend directory.

A .NET Standard project can then be as simple as:

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <LangVersion>8</LangVersion>
    <TargetFramework>net472</TargetFramework>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
    <EnableDefaultPageItems>false</EnableDefaultPageItems>
    <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
    <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
    <OutputType>WinExe</OutputType>
    <UseWPF>true</UseWPF>
    <RootNamespace>UnityProjectNamespace</RootNamespace> <!-- Should be the same as Unity project so the namespaces for replacement ViewModels still match and Resharper doesn't complain about wrong namespaces -->
    <AssemblyName>UnityProjectName.Blend</AssemblyName>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="JetBrains.Annotations" Version="2021.1.0" />
    <PackageReference Include="Noesis.GUI.Extensions" Version="3.0.6" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="Assets\Scripts\**\*.xaml.cs" />
    <Page Include="Assets\Scripts\**\*.xaml" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="Blend\**\*.cs" />
    <Page Include="Blend\**\*.xaml" />
  </ItemGroup>

  <ItemGroup>
    <ApplicationDefinition Include="Blend\App.xaml" />
  </ItemGroup>

  <ItemGroup>
    <Compile Remove="Blend\**\obj\**\*.*" />
    <Page Remove="Blend\**\obj\**\*.*" />
  </ItemGroup>

</Project>

Maybe also include font and image files or such.

(0007288)
jsantos   
2021-06-09 14:32   
Thank you for this, let's see if we can have something ready for 3.1, will Blend open this new .NET Standard SDK project ?
(0007289)
KeldorKatarn   
2021-06-09 19:08   
(Last edited: 2021-06-09 19:11)
Blend for Visual Studio does yes :) I can even edit the project file in there.
This new project file type is WAY better. It supports hotloading, i.e. it detects when a new file was added. So if I add a relevant class in Rider or VS or Unity or wherever to my Unity Project, the Blend project will automatically pick it up
if it matches one of those include filters.
Usually you just put these projects at the root and they just include eveything, that's why they need hot loading anyway, because any file added by VS isn't actually added to the project file anymore. That's why the project files can be so slim.
In our case we don't want everything included so I deactivated the default includes and just include certain search patterns. But those patterns will pick up any new file. This is INSANELY more efficient in this workflow with Noesis.

(0007290)
KeldorKatarn   
2021-06-09 19:15   
(Last edited: 2021-06-09 19:17)
Also here's my Directory.Build.props at the project root: (This makes sure the obj and bin folders are properly moved. BaseIntermediateOutputPath cannot be set in the project itself since NuGet and other stuff needs to know about that before reading the project file property group, so those things end up in the right place. - Well it CAN be set but VS will throw a warning for that reason)

<Project>
    <PropertyGroup>
        <OutputPath>Blend/bin</OutputPath>
        <BaseIntermediateOutputPath>Blend/obj</BaseIntermediateOutputPath>
        <MSBuildProjectExtensionsPath>Blend/obj/$(MSBuildProjectName)</MSBuildProjectExtensionsPath>
        <RestoreOutputPath>Blend/obj/$(MSBuildProjectName)</RestoreOutputPath>
    </PropertyGroup>
</Project>

I also found a way to have the blend projects themselves in the Blend folder, since you can also automatically link files and even give them the proper base path, which works fine.
However it messes with Resharper's ability to detect correct Resource paths and right-click add item does not allow adding UserControls in those linked paths.
I'll investigate further if that can be done somehow.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2043 [NoesisGUI] Unreal major always 2021-06-07 18:56 2021-06-08 16:57
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Element is not shown when used LinearGradientBrush as an OpacityMask in UE4
Description: UE4 renderer doesn't show an element when it uses LinearGradientBrush as an OpacityMask.
It is working correctly in WPF and XamlPlayer
Tags: WPF, xaml
Steps To Reproduce: 1. Add provided xaml to the VS WPF solution and launch it.
2. Observe that the circle is visible
3. Import provided xaml to UE4 and add it to viewport
4. Observe that the circle is not visible

Expected behaviour:
OpacityMasks work the same way in both WPF and UE4 plugin of Noesis
Additional Information:
Attached Files: Welcome.xaml (4,027 bytes) 2021-06-07 18:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1443&type=bug
WPF_RingVisible.jpg (144,035 bytes) 2021-06-07 18:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1444&type=bug
Gui.XamlPlayer_RingInvisible.jpg (27,250 bytes) 2021-06-07 18:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1445&type=bug
Notes
(0007278)
sfernandez   
2021-06-07 20:24   
Hi Sergey,

If I add the missing "Grad_3" gradient as a resource, then I can see the ring correctly rendered in our XamlPlayer.
Is it possible you have that gradient defined somewhere else in the VS project?
(0007279)
sergey_sitnikov_ninjatheory   
2021-06-08 14:44   
Thank you Sergio,

You are right. My fault here that I forgot to add that resource preparing the sample. I can confirm that it is working in the XamlPlayer. However, I still can't see it in UE4, it is only visible when I comment the OpacityMask part.

So it looks like a UE4 only issue then.

Sergey
(0007280)
sergey_sitnikov_ninjatheory   
2021-06-08 14:48   
I have updated issue information.
(0007281)
sergey_sitnikov_ninjatheory   
2021-06-08 15:08   
Just a tiny update: it does work in UE4 if I replace the LinearGradientBrush with the SolidColorBrush
(0007282)
sfernandez   
2021-06-08 16:18   
Ok, we've been able to reproduce it in UE4, it is related to using Effect + OpacityMask in the same element.
It can be workaround right now by applying the effect to an outer element.

<Border HorizontalAlignment="Center" VerticalAlignment="Center">
    <Border.Effect>
        <DropShadowEffect Color="{DynamicResource Theme_Col_6}" Opacity="1" ShadowDepth="0" BlurRadius="5"/>
    </Border.Effect>
    <Ellipse x:Name="Ring" Width="100" Height="100" Stroke="{DynamicResource Grad_3}" StrokeThickness="5">
          <Ellipse.OpacityMask>
              <LinearGradientBrush>
                  <GradientStop Color="{StaticResource Theme_Transparent}" Offset="0"/>
                  <GradientStop Color="{StaticResource Theme_Transparent}" Offset="0.5"/>
                  <GradientStop Color="{StaticResource Theme_Highlight}" Offset="0.75"/>
                  <GradientStop Color="{StaticResource Theme_Highlight}" Offset="1"/>
              </LinearGradientBrush>
          </Ellipse.OpacityMask>
    </Ellipse>
</Border>
(0007283)
sergey_sitnikov_ninjatheory   
2021-06-08 16:55   
Awesome! Thank you Sergio! I can confirm it is working correctly now when the effect is in the parent element.
(0007284)
hcpizzi   
2021-06-08 16:57   
It's been fixed on revision 10313 on our Subversion repository.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2040 [NoesisGUI] C++ SDK feature always 2021-06-03 12:35 2021-06-03 12:35
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Add text selection helper controls for touch in TextBox
Description: In UWP when using touch on a TextBox and you tap over the text a helper control is shown on the caret to help moving it (a caret with a small circle below, see attached images).
Or if you double tap the text, then a pair of those helper controls are shown around the selection to help modify the selected text.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TouchSelection1.png (2,682 bytes) 2021-06-03 12:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1441&type=bug
TouchSelection2.png (4,672 bytes) 2021-06-03 12:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1442&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2039 [NoesisGUI] C++ SDK minor always 2021-06-03 11:29 2021-06-03 11:30
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Visual descendant bounds not correctly calculated when involves clipping
Description: In WPF elements that have clipping (for any reason) the descendant bounds is calculated ignoring that clipping.
The clipping geometry is only taken into account when calculating parent descendant bounds.

For example, this rectangle will have a descendant bounds of (0;0;400;1000).
<Rectangle x:Name="child" Fill="Blue" Width="400" Height="1000" Clip="M50,0L250,0 250,100 50,100z"/>


But this border will report a descendant bounds of (50;0;200;100):
<Border x:Name="parent" Margin="200,100">
  <Rectangle x:Name="child" Fill="Blue" Width="400" Height="1000" Clip="M50,0L250,0 250,100 50,100z"/>
</Border>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2026 [NoesisGUI] C# SDK feature always 2021-05-22 07:42 2021-06-02 11:25
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Suggestion: Make MarkupExtension an interface
Description: To remain compatible with WPF this should probably be done additionally instead of "instead" of the base class.
So the abstract class should probably implement the interface instead of the interface replacing the abstract class.

The reasons for this feature are simple
a) this is already being discussed for WPF .NET Core
https://github.com/dotnet/wpf/issues/170
b) this is how it was in Silverlight where it proved to be:
c) more flexible. You can made a DependencyObject implement the interface which allows you to have a markupextension with binding support
Or you can have any kind of useful class that you want to be able to easily use in a property attribute instead of a property tag, which keeps the XAML
neater. but that class might have a different base class.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007254)
KeldorKatarn   
2021-05-24 03:41   
Then again maybe this should only happen once .NET is doing it also.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1038 [NoesisGUI] C++ SDK feature always 2017-04-05 17:05 2021-05-27 14:44
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Caliburn.Micro metaticket
Description: Meta ticket to reference all the work required to use Caliburn.Micro framework in Noesis.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007261)
jsantos   
2021-05-27 14:44   
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2294


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1790 [NoesisGUI] C# SDK feature always 2020-09-15 08:18 2021-05-27 14:39
Reporter: ck_russ Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Add Noessis Gui Binding generator to v3.0
Description: Noesis being able to automatically generate bindings for objects and events in the code behind would be a major QoL improvement for usage of the library.

Forum Topic: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1930

Sample implementation on GitHub: https://github.com/CyberFoxHax/NoesisGUIBindingsGenerator
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007260)
jsantos   
2021-05-27 14:39   
As mentioned in https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2324, this could be a solution too

https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2036 [NoesisGUI] C# SDK minor always 2021-05-27 14:04 2021-05-27 14:21
Reporter: Faerdan Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: SortCollectionBehavior not efficient when items are modified
Description: When items in the source collection are modified and SortComparer raises the SortRequired event the entire sorted collection is recreated.
It would be better if we can remove only the modified item from the sorted collection and insert it again in the sorted position.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1822 [NoesisGUI] C++ SDK minor always 2020-10-27 12:03 2021-05-27 10:46
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Different objects when using resources defined inside a template element
Description: Giving the following control template:

<ControlTemplate TargetType="Control">
  <Grid x:Name="root">
    <Grid.Resources>
      <ImageBrush x:Key="imgBrush" ImageSource="Test.png"/>
    </Grid.Resources>
    <Rectangle x:Name="rect" Fill="{StaticResource imgBrush}"/>
  </Grid>
</ControlTemplate>

When getting a reference to the resource in Grid.Resources and Rectangle.Fill, it returns different objects in Noesis, in WPF both are the same.

Grid root = (Grid)control.Template.FindName("root", control);
ImageBrush brush1 = (ImageBrush)root.FindResource("imgBrush");
Rectangle rect = (Rectangle)control.Template.FindName("rect", control);
ImageBrush brush2 = (ImageBrush)rect.Fill;
if (brush1 == brush2) ... // True for WPF, False for Noesis

Tags:
Steps To Reproduce:
Additional Information: The workaround for now is to use a binding instead of a StaticResource:
<ControlTemplate TargetType="Control">
  <Grid x:Name="root">
    <Grid.Resources>
      <ImageBrush x:Key="imgBrush" ImageSource="Test.png"/>
    </Grid.Resources>
    <Rectangle x:Name="rect" Fill="{Binding Resources[imgBrush], ElementName=root}"/>
  </Grid>
</ControlTemplate>
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2029 [NoesisGUI] C# SDK minor always 2021-05-25 11:28 2021-05-25 14:50
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: MarkupExtensionReturnTypeAttribute is missing
Description: The MarkupExtensionReturnTypeAttribute type is missing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2028 [NoesisGUI] C# SDK minor always 2021-05-25 10:58 2021-05-25 14:50
Reporter: KeldorKatarn Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: Dispatcher.InvokeAsync is missing
Description: Dispatcher.InvokeAsync is missing from the Dispatcher API
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2015 [NoesisGUI] C# SDK feature always 2021-05-10 19:52 2021-05-25 14:48
Reporter: KeldorKatarn Platform:  
Assigned To: OS:  
Priority: high OS Version:  
Status: new Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF inconsistency: AnimationTimeline does not expose virtual methods
Description: I cannot override GetCurrentValue and CreateInstanceCore and TargetPropertyType

also AnimationClock.CurrentProgress is not a nullable
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2018 [NoesisGUI] Unity3D crash always 2021-05-11 01:56 2021-05-25 14:47
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: immediate OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Unity Editor crashes when using converter implementing both IValueConverter and IMultiValueConverter
Description: See tile. The XAML import complains that the converter cannot be assigned to the binding and then soon after the editor crashes.

See here for the usecase and example project:

https://github.com/VacuumBreather/Caliburn.Noesis/tree/feature/converters

The Converters sample scene.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Editor.log (68,601 bytes) 2021-05-11 01:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1428&type=bug
error.log (112,720 bytes) 2021-05-11 01:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1429&type=bug
crash.dmp (1,295,945 bytes) 2021-05-11 01:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1430&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2033 [NoesisGUI] C# SDK major always 2021-05-25 11:53 2021-05-25 14:46
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF inconsistency: KeyFrame .ctors missing
Description: The KeyFrames cannot be created in code. Their constructors are missing.

DiscreteDoubleKeyFrame, EasingDoubleKeyFrame, and probably all the others too.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2031 [NoesisGUI] C# SDK major always 2021-05-25 11:42 2021-05-25 14:46
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: CommandBinding constructors missing
Description: The constructors are missing:

CommandBinding (ICommand)
CommandBinding (ICommand, ExecutedRoutedEventHandler)
CommandBinding(ICommand, ExecutedRoutedEventHandler, CanExecuteRoutedEventHandler)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1984 [NoesisGUI] Unity3D major always 2021-04-27 01:23 2021-05-25 14:46
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: MouseButtonEventArgs Source Property incorrect value
Description: The MouseButtonEventArgs.Source property returns the wrong value. It returns what should be OriginalSource.
This is inconsistent with WPF and prevent implementing a lot of important logic.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007172)
sfernandez   
2021-04-27 21:01   
Could you please point out an scenario where you need to use the Source property instead of the OriginalSource?
Wouldn't the sender of the event be an option in those situations? WPF UIElement by default sets Source to be the sender.

Anyway, as you pointed out the meaning is not the same as in WPF, we should probably change this.
(0007174)
KeldorKatarn   
2021-04-27 21:48   
(Last edited: 2021-04-27 21:49)
Imagine this layout:

    <DockPanel xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
               Background="Transparent">
        <Menu Height="50" Background="Red" VerticalAlignment="Top" DockPanel.Dock="Top" />
        <ToolBar Height="50" Background="Blue" VerticalAlignment="Top" DockPanel.Dock="Top" />
        <b:Interaction.Behaviors>
            <!-- <behaviors:RemoveFocusBehavior /> -->
        </b:Interaction.Behaviors>
    </DockPanel>

The behavior does this:

        protected override void OnAttached()
        {
            base.OnAttached();
            
            AssociatedObject.PreviewMouseDown += OnPreviewMouseDown;
        }

        private void OnPreviewMouseDown(object sender, MouseButtonEventArgs args)
        {
            if (ReferenceEquals(args.Source, AssociatedObject))
            {
                Keyboard.ClearFocus();
            }
        }

If I click on the Menu, then args.Source will be Menu, if I click on the Toolbar, the args.Source will be Toolbar. if I click into the empty space, the args.Source will be DockPanel
However the sender will ALWAYS be DockPanel, since that's where the event handler attached.

Right now Noesis is putting Border or some other hit visual element in the Source property. That should be OriginalSource to detect the visual element that caused the event to be created.
But the logical control is supposed to be in Source.

Without this being correct, I can in this example not detect if I clicked any of the DockPanel's child elements or the DockPanel iteself where no child elements exist.

(0007190)
sfernandez   
2021-04-29 12:20   
I see your point here.

>> Without this being correct, I can in this example not detect if I clicked any of the DockPanel's child elements or the DockPanel iteself where no child elements exist.
In this particular case you could check our Source (equivalent to WPF's OriginalSource) to determine if you clicked in the DockPanel, because the Source will be DockPanel unless you click in any child of that panel, right?
(0007196)
KeldorKatarn   
2021-04-29 19:57   
Yes but I also had the case where I filled the remaining space with another child. So then it doesn't work anymore since I need to detect the specific child.
As I said I'm not sure if this usecase will even remain in my code. But it let me detect this problem and it's a massive inconsistency with WPF.
Considering how often I've used this property and Original source in my time as WPF developer, especially in Behaviors and special event logic, I think I can
say that those two properties are very powerful to implement certain logic and need to work as they do in WPF:
This is just one example for such a logic.
That's why I think it's important to make sure these work identically to WPF.
(0007198)
KeldorKatarn   
2021-04-30 08:22   
I have another example for you regarding Source and OriginalSource.

Consider this situation:

        public FileDialogView()
        {
            InitializeComponent();
            Initialized += OnInitialized;
        }

        private void OnInitialized(object sender, EventArgs args)
        {
            var treeView = (TreeView)FindName("TreeView");
            treeView.AddHandler(TreeViewItem.SelectedEvent, new RoutedEventHandler(OnTreeViewItemSelected));
        }

        private void OnTreeViewItemSelected(object sender, RoutedEventArgs e)
        {
            Debug.Log($"sender: {sender}, e.Source: {e.Source}");
#if !NOESIS
            (e.OriginalSource as TreeViewItem)?.BringIntoView();
#endif
        }

In WPF e.Source is the TreeView and e.OriginalSource is the TreeViewItem

In Noesis e.Source is the TreeViewItem

That is inconsistent and breaks code between Blend and Noesis
(0007255)
KeldorKatarn   
2021-05-24 19:42   
I'm not sure how WPF does this, but I think Source is the source item in the logical tree and original source the true source visual in the visual tree which is part of the subtree of the source in the logical tree?
I'd have to confirm this, but I THINK that's how it works?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1981 [NoesisGUI] Unity3D minor always 2021-04-27 00:22 2021-05-25 14:45
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: KeyEventArgs is missing the OriginalSource property
Description: The summary says it all. The KeyEventArgs class is missing the OriginalSource property.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1999 [NoesisGUI] Unity3D crash always 2021-05-04 12:19 2021-05-25 14:43
Reporter: KeldorKatarn Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unity crashes when TextBox is filled line by line with a lot of content
Description: The title says it all. I'm reading a large text file and adding it line by line to the TextBox with a 10ms delay.

Initially I used a 100ms delay which caused the TextBox to render crap after a certain number of lines (it rendered lines over old ones and stuff like that)
After the change to 10ms it crashed the Unity editor.
Tags:
Steps To Reproduce: The sample is in my Caliburn.Noesis GitHub. It's the only sample scene in there right now. It opens a File dialog.
Select Assembly-CSharp.csproj from the project itself. That's a sufficiently large file to crash or at least cause issues.

Does the TextBox control have a limit in Noesis in how much content it can handle?
Either way this should not crash the editor.
Additional Information:
Attached Files:
Notes
(0007219)
jsantos   
2021-05-04 12:25   
Yes, the implementation is probably not ready for a lot of lines. We should fix this
(0007220)
KeldorKatarn   
2021-05-04 12:27   
The sample should give you a good base line to play around with it then and test it.
As a side note, let me know what you think of the sample so far. I think I got it working in both Unity and WPF.
(0007221)
jsantos   
2021-05-05 10:26   
I think the sample is great and once we theme it to look better, it will be perfect.

Thanks for this excellent work.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2012 [NoesisGUI] C# SDK feature always 2021-05-10 19:17 2021-05-25 14:41
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: WPF Inconsistency: DependencyProperty.Register lacks an overload for Validation
Description: The Register(String, Type, Type, PropertyMetadata, ValidateValueCallback) overload seems to be missing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2016 [NoesisGUI] C# SDK feature always 2021-05-10 20:00 2021-05-25 14:40
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: Noesis.ItemsCollections does not implement INotifyCollectionChanged
Description: The title says it all.

I'm using this to detext on a ListBox when its ItemsSource has changed to scroll it all the way back to the top.
Workaround is welcome for now. I didn't find another way to do it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007240)
sfernandez   
2021-05-10 20:17   
Are you binding an ObservableCollection to the ItemsSource? Because that class implements the INotifyCollectionChanged interface.
(0007242)
KeldorKatarn   
2021-05-10 20:21   
No, I'm checking against the control's collection.
Check here to see what I'm trying to do:
https://github.com/VacuumBreather/Caliburn.Noesis/blob/feature/conductor_sample/Assets/Samples/Conductors/Scripts/Views/ScrollToTopBehavior.cs
(0007243)
sfernandez   
2021-05-10 20:32   
Ok, this is related to the fact that ItemCollection doesn't inherit in Noesis from CollectionView (ICollectionView -> INotifyCollectionChanged).
This is something we have to fix.
(0007244)
KeldorKatarn   
2021-05-10 21:16   
Yes, I think that's also needed for the grouping functionality of the ListBox isn't it?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2014 [NoesisGUI] C# SDK feature always 2021-05-10 19:25 2021-05-25 14:40
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: PresentationSource missing
Description: The class PresentationSource is missing
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007239)
sfernandez   
2021-05-10 19:40   
What part do you need from PresentationSource?
The CompositionTarget, so you can register to the Rendering event?

In Noesis that event is part of the View that holds the UI tree. You can do:
someControl.View.Rendering += (s, e) => { // do something };
(0007241)
KeldorKatarn   
2021-05-10 20:19   
Actually I'm doing this:
(I'm not 100% sure this even makes any difference in a game but... I'm using it in a decorator to compensate in case LayoutRounding is active. Maybe Noesis already compensates for that?)

        private Size GetDpi()
        {
#if UNITY_5_5_OR_NEWER
            return new Size(One, One);
#else
            var source = PresentationSource.FromVisual(this);

            var dpiX = One;
            var dpiY = One;

            if (source?.CompositionTarget != null)
            {
                dpiX = NinetySix * source.CompositionTarget.TransformToDevice.M11;
                dpiY = NinetySix * source.CompositionTarget.TransformToDevice.M22;
            }

            return new Size(dpiX, dpiY);
#endif
        }
(0007257)
KeldorKatarn   
2021-05-25 06:13   
Actually, I just saw since Framework 4.6.2 this has been added
VisualTreeHelper.GetDpi(Visual visual)

Is that implemented in Noesis? If it is, I'm not going to need this I think


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2032 [NoesisGUI] C# SDK minor always 2021-05-25 11:44 2021-05-25 14:39
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF Inconsistency: IEasingFunction interface is missing
Description: The IEasingFunction interface is missing and should be implemented by EasingFunctionBase
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2034 [NoesisGUI] C# SDK minor have not tried 2021-05-25 12:22 2021-05-25 12:22
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Implement support for getting DPIs of View
Description: VisualTreeHelper.GetDpi(Visual visual); // Since .NET Framework 4.6.2

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2319
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2021 [NoesisGUI] Unreal crash sometimes 2021-05-14 15:15 2021-05-21 13:46
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Frequent crashes during xaml reimport
Description: UE4 crashes frequently on xaml reimport. Sometimes it is possible to work around it by dragging and dropping xaml to the folder with existing asset, however it might crash when reimported second time.

Crash minidump has been attached.
Tags: C++, UE4, xaml
Steps To Reproduce: - Reimport xaml file
Additional Information:
Attached Files: UE4CC-Windows-8697BCCD49AD89CCD8A41C8E5C02EB18_0000.zip (235,086 bytes) 2021-05-14 15:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1431&type=bug
ContentAreas.zip (2,912 bytes) 2021-05-14 18:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1432&type=bug
UE4CC-Windows-834C38EE403BE755F2C329A8CEBC13A8_0000.zip (280,072 bytes) 2021-05-20 18:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1436&type=bug
Notes
(0007245)
hcpizzi   
2021-05-14 18:28   
Hi Sergey,

Does this happen with every XAML, or just a particular one? Would you mind sharing the XAML in question with us?

Thanks
(0007246)
sergey_sitnikov_ninjatheory   
2021-05-14 18:36   
Hi, it is not happening with all xaml files, only with some specific ones, however it is hard for me to figure out what might be wrong with those.

I can share those with you, however they might require additional references to be imported as well.
The issue definitely happened with those two files in the provided archive.

As I have said earlier, usually it is fine to drag-an-drop that file to the folder with the existing one for the first time. However, any further attempts to do it that way, or to reimport the asset with the Reimport button would cause a crash.
(0007251)
sfernandez   
2021-05-20 12:44   
(Last edited: 2021-05-20 12:45)
Hi Sergey, I've been trying to reproduce these crashes with the provided xamls (adapted so I can use them) without luck. And the crash dump doesn't explain what could be the source of the problem taking into account the xaml files.
So I generated a new Noesis library with extra logging for you to try: https://drive.google.com/file/d/1pUDbv7HIg4eZpsgXPVUe1SemV2lyxkIz/view?usp=sharing
Please enable in NoesisGUI plugin settings the 'Log verbosity' to 'Normal' and attach the crash dump and logs again.
Thanks for your collaboration.

(0007252)
sergey_sitnikov_ninjatheory   
2021-05-20 18:46   
Hi Sergio, I have attached a new crashdump with additional logs. Please let me know if you need any additional information.

Cheers,
Sergey
(0007253)
sfernandez   
2021-05-21 11:13   
Thanks, the logs where very useful, I know what is happening now, working on the fix :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2024 [NoesisGUI] C++ SDK minor always 2021-05-19 12:55 2021-05-19 13:46
Reporter: sfernandez Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: WPF differences on how Touch and Manipulation events are sent
Description: With the following xaml:
<Window x:Class="Touch.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid x:Name="LayoutRoot" Background="Silver" IsManipulationEnabled="True">
    <Rectangle x:Name="rect" Width="200" Height="100" Fill="Red"/>
  </Grid>
</Window>

Touching the rectangle generates the following events in WPF and Noesis:

WPF
======================================
MainWindow.TouchDown Rectangle(rect)
MainWindow.GotTouchCapture Rectangle(rect) : Captured=Rectangle(rect)
MainWindow.LostTouchCapture Rectangle(rect) : Captured=Grid(LayoutRoot)
MainWindow.GotTouchCapture Grid(LayoutRoot) : Captured=Grid(LayoutRoot)
LayoutRoot.ManipulationStarting Grid(LayoutRoot)
LayoutRoot.ManipulationStarted Grid(LayoutRoot)
---------------------------------------------------------------------
MainWindow.TouchUp Grid(LayoutRoot)
MainWindow.LostTouchCapture Grid(LayoutRoot) : Captured=null
LayoutRoot.ManipulationInertiaStarting Grid(LayoutRoot)
LayoutRoot.ManipulationCompleted Grid(LayoutRoot)


NOESIS
======================================
MainWindow.TouchDown Rectangle(rect)
MainWindow.GotTouchCapture Rectangle(rect) : Captured=Rectangle(rect)
LayoutRoot.ManipulationStarting Grid(LayoutRoot)
LayoutRoot.ManipulationStarted Grid(LayoutRoot)
MainWindow.LostTouchCapture Rectangle(rect) : Captured=Grid(LayoutRoot)
MainWindow.GotTouchCapture Grid(LayoutRoot) : Captured=Grid(LayoutRoot)
---------------------------------------------------------------------
LayoutRoot.ManipulationInertiaStarting Grid
MainWindow.LostTouchCapture Grid : Captured=null
LayoutRoot.ManipulationCompleted Grid



There are two important differences here:
1. On touch down, when manipulation starts, in WPF first the source captures the touch, then it raises ManipulationStarting and ManipulationStarted events. In Noesis capture happens after manipulation start events.
2. On touch up, in WPF the TouchUp event is raised before terminating the manipulation. In Noesis TouchUp event is not fired if a manipulation is active.

Another difference is that WPF doesn't send MouseMove events when ManipulationInertiaStarting or ManipulationCompleted events are cancelled. Noesis is sending MouseMove(x,y) before promoting the MouseUp and MouseMove(-1,-1) after. So in WPF the control's "MouseOver" state will keep visible after cancelling the manipulations, but not in Noesis. Although I don't really like how WPF behaves in this situation, because leaves the UI in an incorrect visual state.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2017 [NoesisGUI] C++ SDK crash have not tried 2021-05-10 20:26 2021-05-18 10:34
Reporter: ext.mnawrot Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Triggering SetFocusAction with IsVisibleChanged event causes a crash (potential memory leak)
Description: ```
<!-- WORKS FINE -->
<i:EventTrigger EventName="IsVisibleChanged">
     <ei:PlaySoundAction Source="../Products/{productId}/Audio/Test-beep.mp3" />
</i:EventTrigger>

<!-- WORKS FINE -->
<i:EventTrigger EventName="Loaded">
     <noesis:SetFocusAction TargetName="<some-target>" />
</i:EventTrigger>

<!-- CRASHES the app on clean up (unregistering events) -->
<i:EventTrigger EventName="IsVisibleChanged">
     <noesis:SetFocusAction />
</i:EventTrigger>
```
Tags:
Steps To Reproduce: I modified the Buttons sample to help reproducing this issue:
https://github.com/Noesis/Tutorials/pull/16

1. Run the app
2. Click "SHOW START" button
3. Close the app
4. Observe the exception
Additional Information:
Attached Files:
Notes
(0007248)
sfernandez   
2021-05-18 10:34   
Fixed on changeset r10245.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2020 [NoesisGUI] Unreal minor always 2021-05-14 11:45 2021-05-14 11:45
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Binding in SelectedIndex property stops working if using OneWay mode
Description: Using a binding like this:

<ListBox ItemsSource="{Binding ItemList}" SelectedIndex="{Binding ItemIndex, Mode=OneWay}" DisplayMemberPath="Name"/>

When ItemIndex changes in the viewmodel, it only works for the first time because binding gets removed when updating the selection.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1579 [NoesisGUI] Unity3D tweak always 2019-11-02 13:14 2021-05-11 16:40
Reporter: Feldruebe Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Android
Summary: Combining MarkupExtension and IValueConverter crashes Unity
Description: If you are combining a MarkupExtension and an IValueConverter Unity crashes when using the converter.
Tags: Unity
Steps To Reproduce: Use the following converter in an xaml.

public class EnumMatchToVisibilityConverter : MarkupExtension, IValueConverter
    {
        public int Test { get; set; }
        
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is int && parameter is int)
            {
                return (int)value == (int)parameter ? Visibility.Visible : Visibility.Collapsed;
            }

            return Binding.DoNothing;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1975 [NoesisGUI] C# SDK minor always 2021-04-22 10:48 2021-05-11 16:40
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Can't create MarkupExtension that implements IValueConverter
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2273
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1947 [NoesisGUI] C# SDK feature always 2021-03-23 16:11 2021-05-10 20:32
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ItemCollection should properly inherit from CollectionView
Description: Currently if I want to check for changes to the items in e.g. a ListView I have to access its ItemsSource. This leads to poorly separated code. Inheriting from CollectionView would give us access to ICollectionChanged and other neat things that would allow us to write cleaner code behind.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2011 [NoesisGUI] C# SDK feature always 2021-05-10 18:57 2021-05-10 18:58
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.12  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Allow application to configure RenderDevice settings
Description: Allow Application to override default values for RenderDevice properties:
 - OffscreenWidth
 - OffscreenHeight
 - OffscreenDefaultNumSurfaces
 - OffscreenMaxNumSurfaces
 - GlyphCacheWidth
 - GlyphCacheHeight
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1173 [NoesisGUI] Unity3D crash always 2017-10-29 17:09 2021-05-07 18:08
Reporter: monstercho Platform:  
Assigned To: jsantos OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis.dll caused an Access Violation (0xc0000005) in module Noesis.dll at 0033:5ce69d0f
Description: I have a xaml where tapping a button opens another xaml by doing:
            Resources.Load(System.IO.Path.GetFileNameWithoutExtension(xamlPath));
            Noesis.GUI.LoadComponent(o, xamlPath);

I get the crash on 6th try of doing this.

Currently don't have a minimal project to reproduce - was hoping that the attached log/dump may give you clue.
Can test with debug noesis version if you have.
Tags: 2.1Beta
Steps To Reproduce:
Additional Information:
Attached Files: crash.dmp (874,144 bytes) 2017-10-29 17:09
https://www.noesisengine.com/bugs/file_download.php?file_id=844&type=bug
error.log (36,770 bytes) 2017-10-29 17:09
https://www.noesisengine.com/bugs/file_download.php?file_id=845&type=bug
Notes
(0004855)
monstercho   
2017-10-29 18:37   
Just a clarification because what I wrote is misleading - crash is not when I try to load the new page.
I'm navigating forward and back between those 2 xamls and when the crash happens it is before the Click event of the button - I put a breakpoint inside it and it crashes before reaching it.
(0004865)
sfernandez   
2017-10-30 17:15   
(Last edited: 2017-10-30 17:15)
The crash is related with touch manipulations:
>   Noesis.dll!Noesis::Gui::TouchScreen::NewManipulationFinger(Noesis::Gui::UIElement * uiElement, const Noesis::Drawing::Point & p, unsigned int id) Line 642	C++
    Noesis.dll!Noesis::Gui::TouchScreen::TouchDown(int x, int y, unsigned int id) Line 160	C++

We will investigate it.

(0004867)
monstercho   
2017-10-30 20:50   
TouchDown was a great lead!
In our project Noesis view EnableTouch/EnableMouse are disabled. We are feeding input events to Noesis by calling TouchDown/Up (both on PC and Android, no mouse down/up).

But recently we added feeding both TouchDown/Up and MouseDown/Up in 1 special case - when button is inside a scrollviewer - done as workaround for the button not getting visual pressed state when inside a scrollviewer (forum: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1210&sid=86879a9e273e156cdde74f4074dcd6f9). MouseDown/Up visually results in a pressed state, while touchdown/up not.

Now I disabled the workaround and Unity/Noesis don't crash anymore. Crash was both under Editor and Android.
(0004868)
jsantos   
2017-10-30 20:54   
Thanks for the feedback! I am analyzing this right now.
(0006628)
jsantos   
2020-09-14 01:48   
Is this still an issue?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1811 [NoesisGUI] Unity3D feature always 2020-10-15 22:48 2021-05-07 10:31
Reporter: Nitae Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: using Render texture mode with HDRP causes render overlap in viewport an rewrite in other render textures
Description: hi, I'm Nitae I work for Foresight Sports. I found troubles with noesis view using unity HDRP, when i use noesis view in render texture mode thge render overlap the viewport a somethimes rewrite other render textures. Iam using Unity 2019.4.0f1 and noesis 3.0.1 tested in noesis 3.0.6 and the same happends.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: testhdrp.png (946,367 bytes) 2020-10-15 22:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1312&type=bug
NoesisView.cs (45,809 bytes) 2020-10-21 12:32
https://www.noesisengine.com/bugs/file_download.php?file_id=1314&type=bug
Notes
(0006684)
jsantos   
2020-10-16 11:49   
Hi Nitae!

Could you please attach a minimal (as much as possible) unity project reproducing the issue?
(0006685)
Nitae   
2020-10-16 16:29   
Here is a project reproducing the issue the scene name is Main
https://drive.google.com/file/d/1nmzUH-oVq2-TCpx-LXF7W05UYsA173jW/view?usp=sharing
(0006698)
jsantos   
2020-10-20 17:41   
Thank you, I was able to reproduce the issue. I am working on it.
(0006699)
jsantos   
2020-10-21 12:32   
Please, find attached the fixed NoesisView solving the issue. This will be part of the imminent 3.0.7 release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1543 [NoesisGUI] C++ SDK minor always 2019-08-22 08:57 2021-05-06 20:39
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Home and End keys not working properly in ListBox
Description: I would expect these keys to go to the beginning and to the end of the list respectively. In the following example, the End key change the tab item.
  <Grid>
    <StackPanel>
      <TabControl Width="200" Height="250">
        <TabItem Header="Scroll">
          <ListBox Margin="20" x:Name="list" ScrollViewer.PanningMode="VerticalOnly" ScrollViewer.PanningDeceleration="0.00001">
            <ListBoxItem Content="Item01"/>
            <ListBoxItem Content="Item02"/>
            <ListBoxItem Content="Item03"/>
            <ListBoxItem Content="Item04"/>
            <ListBoxItem Content="Item05"/>
            <ListBoxItem Content="Item06"/>
            <ListBoxItem Content="Item07"/>
            <ListBoxItem Content="Item08"/>
            <ListBoxItem Content="Item09"/>
            <ListBoxItem Content="Item10"/>
            <ListBoxItem Content="Item11"/>
            <ListBoxItem Content="Item12"/>
            <ListBoxItem Content="Item13"/>
            <ListBoxItem Content="Item14"/>
            <ListBoxItem Content="Item15"/>
            <ListBoxItem Content="Item16"/>
            <ListBoxItem Content="Item17"/>
            <ListBoxItem Content="Item18"/>
            <ListBoxItem Content="Item19"/>
            <ListBoxItem Content="Item20"/>
            <ListBoxItem Content="Item21"/>
            <ListBoxItem Content="Item22"/>
            <ListBoxItem Content="Item23"/>
            <ListBoxItem Content="Item24"/>
            <ListBoxItem Content="Item25"/>
            <ListBoxItem Content="Item26"/>
            <ListBoxItem Content="Item27"/>
            <ListBoxItem Content="Item28"/>
            <ListBoxItem Content="Item29"/>
            <ListBoxItem Content="Item30"/>
            <ListBoxItem Content="Item31"/>
          </ListBox>
        </TabItem>
        <TabItem Header="Tab 2">
          <ListBox Margin="20" x:Name="list2" ScrollViewer.PanningMode="Both">
            <Button Width="100" Height="150" Click="Button_Click" TouchDown="Button_TouchDown">OK 0</Button>
            <Button Width="100" Height="150" >OK 1</Button>
            <Button Width="100" Height="150" >OK 2</Button>
            <Button Width="100" Height="150" >OK 3</Button>
            <Button Width="100" Height="150" >OK 4</Button>
            <Button Width="100" Height="150" >OK 5</Button>
            <Button Width="100" Height="150" >OK 6</Button>
          </ListBox>
        </TabItem>
      </TabControl>
      <Button Margin="20" Width="50" Click="Clicked" TouchDown="Touched">ACTION</Button>
    </StackPanel>
  </Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1940 [NoesisGUI] C# SDK minor always 2021-03-15 18:33 2021-05-06 17:28
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: IMultiValueConverter receives BaseComponent[] values when the control is hidden
Description: Hi guys,

it's a new bug that just appeared in 3.0.10 and seems to be related to this change from the release notes:
"FIXED MultiBinding Converter should be called even if inner bindings failed to resolve."

The issue is: when the control is collapsed and it has a MultiValueConverter inside, object[] values provided to the IMultiValueConverter as arguments all appear as BaseComponent instance (the same instance several times; are they supposed to be "null"?)...see the attached screenshot.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Screenshot at 20-32-38.png (168,981 bytes) 2021-03-15 18:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1390&type=bug
Notes
(0007080)
sfernandez   
2021-03-15 18:51   
When one of the binding is not resolved the converter will receive a DependencyProperty.UnsetValue in the corresponding index of the 'values' array.
Is that what you are seeing?
(0007081)
ai_enabled   
2021-03-15 19:28   
(Last edited: 2021-03-15 19:28)
You're right, it's DependencyProperty.UnsetValue. Thank you!
So I have to use FallbackValue or compare each value with the UnsetValue.
I was totally unaware of this feature as I've rarely used IMultiValueConverter (it was added fairly recently).

I was assuming it's some kind of data corruption. The issue happened with a quite complex data binding case like this one:
<hud:HUDButtonBadgeControl.Number>
    <MultiBinding Converter="{StaticResource ValuesAdditionMultiConverter}">
        <Binding Path="SomeInstance.DataContext.CountA" />
        <Binding Path="SomeInstance.DataContext.CountB/>
    </MultiBinding>
</hud:HUDButtonBadgeControl.Number>

Suggestion: define a new private class in C# SDK: DependencyPropertyUnsetValue. Use it specifically to return a singleton instance for DependencyProperty.UnsetValue. So library users like me will see it in the debugger and/or exception message, and understand that it's not a bug with some corrupted data being passed in.

Regards!

(0007082)
ai_enabled   
2021-03-15 19:33   
By the way, is it expected that FallbackValue provides "False"/"True" as a string instead of bool and "1"/"2"/"3.0"/etc as a string instead of the integer or floating-point number? It's quite complicated to use.
(0007083)
sfernandez   
2021-03-15 19:37   
>> Suggestion: define a new private class in C# SDK: DependencyPropertyUnsetValue. Use it specifically to return a singleton instance for DependencyProperty.UnsetValue. So library users like me will see it in the debugger and/or exception message, and understand that it's not a bug with some corrupted data being passed in.
I was just thinking on exactly that because C# users shouldn't see any reference to BaseComponent. This will also apply to Binding.DoNothing value.
(0007084)
sfernandez   
2021-03-15 20:12   
>> By the way, is it expected that FallbackValue provides "False"/"True" as a string instead of bool and "1"/"2"/"3.0"/etc as a string instead of the integer or floating-point number? It's quite complicated to use.
Yes, in WPF you will also receive the FallbackValue as a string, the same for the CommandParameter.
(0007224)
sfernandez   
2021-05-06 17:28   
Now DependencyProperty.UnsetValue and Binding.DoNothing show with the right name when debugging in C#.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
2001 [NoesisGUI] Unity3D major always 2021-05-05 12:46 2021-05-05 14:16
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: PathGeometry not rendered correctly in Noesis
Description: I have a PathGeometry that is rendered incorrectly in Noesis 3.0.12 compared to the same geometry in a Blend project.

Link to Blend Project: https://easylaser-my.sharepoint.com/:u:/p/peter_eden_horn/EaeahbMd5OxCqagmdvxSPZ0Bju_kB6RBRgt1B8Qi7ERcBQ?e=6SqZcb

Link to Unity 2019.1.14 project: https://easylaser-my.sharepoint.com/:u:/p/peter_eden_horn/EfPuFvCOT55CguYC0burbPkB9JMt2gNdQdA7DZm4wFZhBA?e=sxNduW
Tags:
Steps To Reproduce: It fails with this simple xaml:

<Grid 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="White">
  <Path Fill="Black" Stretch="Uniform" Width="200" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Path.Data>
      <PathGeometry Figures="M8,29L8,59 38,59 38,29z M 16.375 37.140625 h 6.021484 v 6.017578 H 16.375 Z m 7.220703 0 h 6.025391 v 6.017578 H 23.595703 Z M 16.375 44.359375 h 6.021484 v 6.019531 h 1.199219 v -6.019531 h 6.025391 v 6.021484 H 16.375 Z" FillRule="NonZero"/>
    </Path.Data>
  </Path>
</Grid>
Additional Information:
Attached Files:
Notes
(0007222)
sfernandez   
2021-05-05 13:57   
(Last edited: 2021-05-05 13:58)
It seems to work if you specify the SVG path directly in the Data property:

<Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="path23" Fill="#FF6B6861" StrokeThickness="4.93333" StrokeMiterLimit="10" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat" Opacity="1"
          Data="m 28.861328 2.8671875 c -1.300201 -0.016094 -2.607615 0.03037 -3.916016 0.1425781 l 0.421876 4.9179688 C 34.577062 7.1378984 43.40795 9.902091 49.818359 16.3125
 c 6.290487 6.290487 9.067156 14.909459 8.423829 23.935547 l 4.921874 0.347656 C 63.895734 30.330125 60.684774 20.198445 53.308594 12.822266 46.731502 6.2451743 37.962739 2.9798431 28.861328 2.8671875 Z
 m -2.5 11.4355465 c -0.458222 0.01043 -0.917176 0.03062 -1.376953 0.0625 l 0.34375 4.921875 c 6.164409 -0.427425 11.845752 1.388721 15.949219 5.492188 4.007432 4.007432 5.828802 9.511108 5.515625 15.513672 l 4.925781 0.257812
 C 52.093071 33.376263 49.851942 26.379286 44.765625 21.292969 39.882155 16.409499 33.234661 14.14631 26.361328 14.302734 Z M 13.121094 29.259766 c -2.541667 0 -4.6250002 2.07812 -4.6250002 4.625 v 19.75
 c 0 2.546866 2.0833332 4.630859 4.6250002 4.630859 H 32.875 c 2.541667 0 4.625 -2.083993 4.625 -4.630859 v -19.75 c 0 -2.54688 -2.083333 -4.625 -4.625 -4.625 z M 16.375 37.140625 h 6.021484 v 6.017578
 H 16.375 Z m 7.220703 0 h 6.025391 v 6.017578 H 23.595703 Z M 16.375 44.359375 h 6.021484 v 6.019531 h 1.199219 v -6.019531 h 6.025391 v 6.021484 H 16.375 Z">
          <Path.RenderTransform>
            <MatrixTransform Matrix="0.75000002 0 0 0.75000002 0 0"/>
          </Path.RenderTransform>
</Path>


You can use that as a workaround until we fix it.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1879 [NoesisGUI] C++ SDK major always 2021-01-12 14:42 2021-05-04 11:16
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Tooltip issues
Description: The sample DataBinding showcases a few issues we have in Noesis we tooltips:

- ToolTip Mouse placement offset incorrectly specified in the Theme.
- ToolTip not closed when moving mouse out of the target but over the ToolTip.
- ToolTip reopened when clicking on the target.
- DataBinding sample showing tooltips without the fade animation.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1971 [NoesisGUI] Unreal major always 2021-04-16 11:10 2021-05-04 02:44
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Vanilla TextBox is not rendered/working correctly in UE4
Description: Hello guys,

We are having issues with vanilla TextBox control in UE4. When it is imported to Unreal it is shown with a purple background (I guess, some expected component is missing) and it doesn't accept any input events (see attached screenshot). However, the same xaml works correctly in XamlPlayer v3.0.6 and v3.0.11 (I don't have v3.0.10 at the moment).

Here is a simple xaml I used:

<ContentControl
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        d:DesignWidth="1920" d:DesignHeight="1080">

    <Grid x:Name="Grid">
        <TextBox Width="100" Height="30" Text="HELLO TO YOU" />
    </Grid>
</ContentControl>

Cheers,
Sergey
Tags: TextBox, UE4, xaml
Steps To Reproduce: 1. Create a xaml file using provided example
2. Drag and drop that file into UE4 (4.26 in our case and Noesis plugin version is 3.0.10)
3. Add xaml to viewport and launch PIE
4. Observe the result

5. Drag and drop created xaml file into XamlPlayer
6. Observe the result
Additional Information:
Attached Files: TextBoxBug_UE4.jpg (4,109 bytes) 2021-04-16 11:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1411&type=bug
TextBoxRenderedCorrectly_XamlPlayer.jpg (5,249 bytes) 2021-04-16 11:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1412&type=bug
Notes
(0007151)
jsantos   
2021-04-16 11:13   
(Last edited: 2021-04-16 11:14)
It seems the style for the TextBox is missing (the minimal internal theme just use pink for everything to detect this).

Is this using our default theme?

Can you hellp here @sfernandez?

(0007152)
sergey_sitnikov_ninjatheory   
2021-04-16 11:15   
No, this is without any themes at all.
(0007153)
jsantos   
2021-04-16 11:19   
(Last edited: 2021-04-16 11:19)
This is normal then, without theme, our controls display pink.

https://www.noesisengine.com/docs/Gui.Core.StylingTutorial.html#default-styles

We are doing this for performance reasons, to avoid loading a default theme that later is going to be overriden by each client.

(0007154)
sergey_sitnikov_ninjatheory   
2021-04-16 11:24   
Ok, thank you. So we always need to redefine default scheme. Why does it work in XamlPlayer in that case?
(0007155)
jsantos   
2021-04-16 11:38   
XamlPlayer is embedding our Noesis theme (https://www.noesisengine.com/docs/Gui.Core.ApplicationTutorial.html#noesis-theme) and setting it at launch time.

You can do the same in unreal, the same theme is available at /Content/Theme and you can set it in settings.

Please, let me know if you need more help with this.
(0007156)
jsantos   
2021-04-16 11:39   
In Unity, we have a visual studio extension that setups a minimal projects with everything ready and our theme.

I think we should have the same for unreal.
(0007157)
sergey_sitnikov_ninjatheory   
2021-04-16 11:58   
Thank you for your help Jesus. We will look at those themes.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1816 [NoesisGUI] Unity3D minor always 2020-10-24 20:28 2021-05-04 02:43
Reporter: Armitage1982 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: WebGL
Summary: In WebGL the Last Gallery CheckBox examples (Select All) throw MissingMethodException
Description: Using the Gallery Example in a Unity 2020.1.10f1 WebGL Build
the Basic input => CheckBox => Hierarchical options => Select all checkbox throw this MissingMethodException :

BUILD.framework.js.br:2 MissingMethodException: Constructor on type 'System.ComponentModel.NullableConverter' not found.
  at System.RuntimeType.CreateInstanceImpl (System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes, System.Threading.StackCrawlMark& stackMark) [0x00000] in <00000000000000000000000000000000>:0
 
(Filename: currently not available on il2cpp Line: -1)

In the Edge Web Console.

Behavior does not work as it should like in the Windows counterpart.
Tags:
Steps To Reproduce: Just build the Gallery Example from https://github.com/Noesis/Tutorials/tree/master/Samples/Gallery/Unity
in WebGL with unity 2020.1.10f1
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1808 [NoesisGUI] C# SDK feature N/A 2020-10-14 19:28 2021-05-04 02:43
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Difference from WPF - TextBox TextChanged signature
Description: Hi guys,
I've found a little API difference:
WPF: TextBox.TextChanged event — TextChangedEventHandler / sender + TextChangedEventArgs
NoesisGUI: TextBox.TextChanged event — RoutedEventHandler / sender + RoutedEventArgs

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1889 [NoesisGUI] C# SDK minor always 2021-01-18 20:45 2021-05-04 02:42
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.9  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: MultiBinding's Binding list gets overwritten by list from XAML
Description: I have a subclass of MultiBinding, which sets a couple properties by default: It sets a converter, and it sets the first binding in the collection. Any bindings specified in XAML should be added to the list (this is what WPF does), but instead the entire list is replaced, and my default first binding is removed.

There is a workaround for this, so this is 'minor' severity.
Tags:
Steps To Reproduce:
public class FancyMultiBinding : MultiBinding
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    
    private static Binding CreateFirstBinding()
    {
        Binding bind = new Binding();

        bind.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(Window), 1);
        bind.Path = new PropertyPath("Resources[FooBar]");

        return bind;
    }

    public FancyMultiBinding()
    {
        // If this is specified in XAML, don't make the developer re-type 
        // the converter and first binding every time. Apply them by default. 

        this.Converter = new FancyMultiConverter();
        this.Bindings.Add(CreateFirstBinding());
    }
}

<TextBlock FontSize="40" Foreground="Pink">
    <TextBlock.Text>
        <local:FancyMultiBinding ConverterParameter="TESTING">
            <Binding Path="Width" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}"/>
            <Binding Path="Height" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}"/>
        </local:FancyMultiBinding>
    </TextBlock.Text>
</TextBlock>


When I set a breakpoint in FancyMultiConverter.Convert, the array 'values' has the Width and Height values, but not the string result of the FooBar resource.

When I implement the same thing in WPF, the array of 'values' in the converter has all three binding results: The one applied in the constructor, plus the two specified in XAML.

---------------------------------------------------------------------------------------------------------------

I do have a workaround for this, but it's not pretty. I apply the default first binding in the constructor, which works if it's the only binding, and in ProvideValue, I check if it's still there, and re-apply it if it was erased by the list in XAML.

public class FancyMultiBinding : MultiBinding
{
    private static Logger logger = LogManager.GetCurrentClassLogger();
    
    private static Binding CreateFirstBinding()
    {
        Binding bind = new Binding();

        bind.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(Window), 1);
        bind.Path = new PropertyPath("Resources[FooBar]");

        return bind;
    }

    Binding defaultFirstBinding;

    public FancyMultiBinding()
    {
        // If this is specified in XAML, don't make the developer re-type 
        // the converter and first binding every time. Apply them by default. 

        this.Converter = new FancyMultiConverter();

        defaultFirstBinding = CreateFirstBinding();
        this.Bindings.Add(defaultFirstBinding);
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        if (Bindings[0] != defaultFirstBinding)
        {
            Bindings.Insert(0, defaultFirstBinding);
        }

        return base.ProvideValue(serviceProvider);
    }
}
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1896 [NoesisGUI] C++ SDK minor always 2021-01-20 17:28 2021-05-04 02:42
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.9  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Implement Close logic on XDisplay
Description: XDisplay does not implement Close() method and does not raise Closing and Close events when window is closed.

Code can be translated from C# implementation of XDisplay.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1873 [NoesisGUI] Unity3D block always 2021-01-05 13:13 2021-05-04 02:42
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: TextBox/PasswordBox problem in UWP
Description: When building the Login sample of Noesis for UWP it does not work.
The problem is that when I type something in the TextBox nothing is displayed, it remains blank.
I have tested it with the 3.0.8 and the 2.2.4 version.
My guess that it has something to do with text rendering because the input is recieved and processed by Noesis.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1942 [NoesisGUI] C# SDK tweak always 2021-03-16 00:47 2021-05-04 02:41
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.10  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Change to XAML whitespace affects TextBlock.Run parsing
Description: Seen in XamlToy and on C# Windows. Whitespace inside the TextBlock.Inlines element results in an error.

I'm listing this as "Tweak" severity because although an error is reported, it actually works properly.
Tags:
Steps To Reproduce:
  <TextBlock>
    <TextBlock.Inlines>
      <Run Text="A" /><Run Text="B" /><Run Text="C" />
    </TextBlock.Inlines>
  </TextBlock>

Result: Displayed text = "ABC". No errors.

----------------------------------------------------------------

  <TextBlock>
    <TextBlock.Inlines>
      <Run Text="A" />
      <Run Text="B" />
      <Run Text="C" />
    </TextBlock.Inlines>
  </TextBlock>

Result: Displayed Text = "ABC". Error on the line that contains the last Run, "' ' is not a valid value for property Run."

----------------------------------------------------------------

  <TextBlock>
    <TextBlock.Inlines>
      <Run Text="A" /><Run Text="B" /> <Run Text="C" />
    </TextBlock.Inlines>
  </TextBlock>

(There's a space between the second and third Run elements.)
Result: Displayed Text = "ABC". Error on the line that contains the Runs, "' ' is not a valid value for property Run."
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1939 [NoesisGUI] C# SDK minor always 2021-03-15 17:55 2021-05-04 02:41
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.10  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Data Trigger in inline Window Style doesn't take effect
Description: In the main window for my application, if I set a window style that includes a data trigger, the data trigger does not happen, and appears to not be processed.
Tags:
Steps To Reproduce: Test 1:
<Window>
    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Visibility, ElementName=ThatOtherTextBlock}" Value="Visible">

Result: No effect, no error messages printed. This is the main thing I want to do.

Test 2:
<Window.Style>
    <Style TargetType="{x:Type Window}">
        <Setter Property="Background" Value="Yellow"/>

Result: Background turns yellow. So I am setting the Style properly.

Test 3:
<Canvas>
    <Canvas.Style>
        <Style TargetType="{x:Type Canvas}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Visibility, ElementName=ThatOtherTextBlock}" Value="Visible">

Result: This works properly. So my data trigger (and the stuff inside of it, which I'm not showing here) is correct.

Test 4:
<Window.Style>
    <Style TargetType="{x:Type Window}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=Visibility, ElementName=DoesNotExist_asdfasdf}" Value="Visible">

Result: No effect. No error messages printed, including no error message about being unable to bind to that element name.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1949 [NoesisGUI] Unity3D minor always 2021-03-24 10:21 2021-05-04 02:41
Reporter: Sybaris Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Foreground property is not passed down the hierarchy
Description: Create a menu with a couple of menu items below it. On the menu tag itself set Foreground="Magenta". All menu items should inherit this foreground color but they don't.

Response from sfernandez:

The foreground brush is specified in the style for the MenuItem in Noesis theme. It is strange because in Blend if you create a Menu with some menu items the Foreground is inherited from the Menu as you said. But if you select the MenuItem and click on "Format > Edit Style > Edit a Copy..." it creates a style that defines a setter for the Foreground property and it is not inheriting the foreground from the Menu anymore. We used those copies as references to create our theme styles.
Tags: Unity
Steps To Reproduce: Create a menu with a couple of menu items below it. On the menu tag itself set Foreground="Magenta". All menu items should inherit this foreground color but they don't.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1970 [NoesisGUI] Unity3D feature always 2021-04-15 15:42 2021-05-04 02:41
Reporter: Faerdan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ContentControl is missing virtual OnContentChanged(object oldContent, object newContent) method.
Description: The following method is missing from ContentControl:
protected virtural void OnContentChanged(object oldContent, object newContent);
https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.contentcontrol.oncontentchanged?view=net-5.0

To work around this we have to add our own Content dependency property, to which we add a property changed callback, which is just a hack.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1967 [NoesisGUI] C# SDK crash random 2021-04-13 12:39 2021-05-04 02:41
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Random crash related to ObservableCollection
Description: Hello,
please check the attached crash dump.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: dotnet.exe.3452.dmp.7z (2,438,977 bytes) 2021-04-13 12:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1408&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1991 [NoesisGUI] C# SDK minor always 2021-04-30 09:33 2021-05-04 02:40
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: TreeViewItem.BringIntoView() does not work in default ItemContainer Style
Description: The control does not correctly wrong the item into view. It seems it scrolls it into the area of the screen, but not of the actual control.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007199)
KeldorKatarn   
2021-04-30 09:36   
I THINK this might actually have to do with the expansion animation, maybe?
(0007206)
sfernandez   
2021-05-03 11:19   
Yes, you are right, the problem is the expand animation. I have to check it but I guess this kind of style will fail to bring the item into view also in WPF.
Anyway, our theme provides a non-animated TreeViewItem style too:
<Style TargetType="TreeViewItem" BasedOn="{StaticResource {x:Type TreeViewItem}}">
  <Setter Property="Template" Value="{StaticResource Template.TreeViewItem.NoAnim}"/>
</Style>

I tried it and bring into view works as expected that way.
(0007210)
KeldorKatarn   
2021-05-03 14:05   
(Last edited: 2021-05-03 14:34)
I found some other Themes to be working as well. Maybe they have a shorter animation.
Yes I'd assume this fails in WPF too. I've had the problem of animations causing issues in this regards in other projects too. I guess it's a problem that can't really be resolved nicely.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1804 [NoesisGUI] Unity3D major always 2020-10-08 17:46 2021-05-04 02:40
Reporter: bmello4688 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Unable to view embedded user controls in xaml
Description: When referencing another user control in your xaml. Noesis does not display the embedded control. When using Databindings the application can crash

Example

<UserControl x:Class="Simity.Studio.UI.Editor.Views.MainView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:v="clr-namespace:Simity.Studio.UI.Editor.Views"
             xmlns:vm="clr-namespace:Simity.Studio.UI.Editor.ViewModels"
             xmlns:dvm="clr-namespace:Simity.Studio.UI.Editor.ViewModels.Dialogs"
             xmlns:c="clr-namespace:Simity.Studio.UI.Editor.Views.Converters"
             mc:Ignorable="d"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <!--<DataTemplate DataType="{x:Type vm:RobotEditorViewModel}">
            <v:RobotEditorView/>
        </DataTemplate>
        <DataTemplate DataType="{x:Type dvm:SelectNewOrExistingProjectViewModel}">
            <v:SelectNewOrExistingProjectDialog/>
        </DataTemplate>
        <DataTemplate DataType="{x:Type dvm:ProgressDialogViewModel}">
            <v:ProgressDialog/>
        </DataTemplate>-->
        <c:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
    </UserControl.Resources>
    <Grid>
        <!--<UserControl Visibility="{Binding ShowDialog, Converter={StaticResource BoolToVisibilityConverter}}" Content="{Binding Dialog}"/>
        <UserControl Content="{Binding MainContent}"/>-->
        <v:SelectNewOrExistingProjectDialog/>
        <v:RobotEditorView/>
    </Grid>
</UserControl>
Tags: Unity
Steps To Reproduce: Create a xaml that references a previously made user control
Additional Information:
Attached Files: Noesis.zip (1,451,641 bytes) 2020-10-08 18:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1304&type=bug
Notes
(0006659)
bmello4688   
2020-10-08 18:08   
(Last edited: 2020-10-08 18:09)
Here is an example project. Check out MainView.xaml. You can also uncomment the commented out stuff to really test it with a viewmodel first architecture.

(0006697)
sfernandez   
2020-10-20 12:42   
Hi,

I opened the project in Unity, imported NoesisGUI 3.0.6 unity package, and there are a lot of compiler errors due to missing code (Splat, ReactiveUI, System.Reactive).
How are you including those assemblies in Unity so scripts can be compiled correctly?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1890 [NoesisGUI] Unity3D crash sometimes 2021-01-19 09:02 2021-05-04 02:40
Reporter: HakPak Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0.9  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Seemingly random Crashes in editor and build
Description: According to the error.log, the crash is caused by an access violation.

Stacktrace:

0x00007FFD219897D6 (Noesis) KeyEventArgs_IsToggled_get
0x00007FFD21986D4D (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FFD219A0181 (Noesis) DataObjectEventArgs_CancelCommand
0x00007FFD2199FFA7 (Noesis) DataObjectEventArgs_CancelCommand
0x00007FFD21985DBA (Noesis) DragEventArgs_GetAllowedEffectsHelper
0x00007FFD21A08E93 (Noesis) TouchEventArgs_GetTouchDeviceId
0x00007FFD21A010A0 (Noesis) TouchEventArgs_GetTouchDeviceId
0x00007FFD21A06084 (Noesis) TouchEventArgs_GetTouchDeviceId
0x00007FFD21AEA844 (Noesis) KeyEventArgs_KeyStates_get
0x00007FFD21AB2E2D (Noesis) KeyEventArgs_KeyStates_get
0x00007FFD21AB3502 (Noesis) KeyEventArgs_KeyStates_get
0x00007FFD21AB1E5C (Noesis) KeyEventArgs_KeyStates_get
0x00007FFD21A062AE (Noesis) TouchEventArgs_GetTouchDeviceId
0x00007FFD21AEA844 (Noesis) KeyEventArgs_KeyStates_get
0x00007FFD21AF41B1 (Noesis) DataObjectEventArgs_IsDragDrop_get
0x00007FFD21AF3F8B (Noesis) DataObjectEventArgs_IsDragDrop_get
0x00007FFD21AF2610 (Noesis) ContentControl_Content_get
0x00007FFD21AF24FA (Noesis) ContentControl_Content_get
0x00000285A03C7FC3 (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)
Tags:
Steps To Reproduce: Nothing specific, the crash seems to happen when my ViewModels update their data.
Additional Information:
Attached Files: Crash_2021-01-19_074457198.rar (142,847 bytes) 2021-01-19 09:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1363&type=bug
Crash_2021-01-19_110826344.rar (89,890 bytes) 2021-01-19 12:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1364&type=bug
Crash_2021-01-20_180914970.rar (1,558,340 bytes) 2021-01-20 19:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1366&type=bug
Notes
(0006960)
sfernandez   
2021-01-19 10:40   
Hello, as it seems this cannot be reproduced in a deterministic way and I need a bit more information to understand the scenario where this is happening, I've built a new debug library with some extra logs:
https://drive.google.com/file/d/147oOtAjWjfp-rENOdz069aRBx9TBc6yj/view?usp=sharing

Could you please try this library in your project? I also need you to set Tools > NoesisGUI > Settings... > Log Verbosity = "Bindings".
Please send the dump and logs again when it crashes again.

Thanks for your help.
(0006961)
HakPak   
2021-01-19 12:12   
Hello sfernandez, after including the library and changing the setting, the game crashes immediately after the unity splash screen, unity also crashed when I tried to play in editor.
(0006968)
sfernandez   
2021-01-20 18:25   
I've built a new library with more logs to narrow the source of the problem, could you please try again with Log Verbosity still set to "Bindings":
https://drive.google.com/file/d/17vcW5x1Vm32j_fe1ApUjT24OfagChC3-/view?usp=sharing
(0006969)
HakPak   
2021-01-20 19:24   
With the new library the game was able to start again and the error did occur, albeit much later than usual.
I presume it has to be some difference in the timing, because the log verbosity caused a lot of slowdowns.
(0007002)
sfernandez   
2021-01-27 18:42   
Is it possible that you are changing the UI or the ViewModel bound to the UI from a different thread than Unity Main?
I say it because in the logs I see a message printed from the ThreadPoolWorkQueue: "Starting turn 65, it's shion isu komugi's turn.", and the crash is hard to explain without threading issues.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1950 [NoesisGUI] C++ SDK block always 2021-03-26 15:15 2021-05-04 02:36
Reporter: Tadinu Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Linux
Summary: Compiling error on Linux as inheriting from UNoesisInstance
Description: I bumped into this compiling error as creating a UUIWidget class, inheriting from UNoesisInstance.

By including `NoesisInstance.h`, it complains as follows:

[2/28] Compile PCH.NoesisRuntime.h
[5/28] Compile Module.UI.gen.cpp
[6/28] Compile Module.UI.cpp
[7/28] Compile UIModule.cpp
[4/28] Compile PCH.NoesisBlueprint.h
[3/28] Compile PCH.NoesisEditor.h
In file included from UEProject/Plugins/UI/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/UI/Module.UI.cpp:3:
In file included from UEProject/Plugins/UI/Source/UI/Private/UIWidget.cpp:1:
In file included from UEProject/Plugins/UI/Source/UI/Public/UIWidget.h:6:
In file included from UEProject/Plugins/NoesisGUI/Source/NoesisRuntime/Classes/NoesisInstance.h:12:
In file included from Runtime/UMG/Public/Blueprint/UserWidget.h:15:
UnrealEngine/Engine/Source/Runtime/UMG/Public/Components/Widget.h:180:1: error: declaration shadows a variable in namespace 'Noesis' [-Werror,-Wshadow]
ENUM_CLASS_FLAGS(EWidgetDesignFlags);
^
UNREAL/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/EnumClassFlags.h:14:42: note: expanded from macro 'ENUM_CLASS_FLAGS'
        inline constexpr Enum operator~ (Enum E) { return (Enum)~(__underlying_type(Enum))E; }
                                                ^
UEProject/Plugins/UI/ThirdParty/NoesisSDK/Include/NsCore/Math.h:38:13: note: previous declaration is here
const float E = 2.71828182845904523536028747135266249775724709369996f;
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007160)
hcpizzi   
2021-04-19 14:18   
Hi,

This happens when you have an "using namespace Noesis;" because of a conflict between our float E and some macro expansion variables in UE4.

Is that the case?
(0007161)
Tadinu   
2021-04-20 12:42   
Oh I suppose so, probably I copied it from some tutorial sample, I then removed all "using namespace Noesis;" in the source. It compiles fine now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1944 [NoesisGUI] C++ SDK minor always 2021-03-18 02:11 2021-05-04 02:29
Reporter: Tadinu Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Linux
Summary: Compiling error on Linux
Description: Hi Noesis,

I also hit this error as compiling in Linux, but it is from NoesisSDK source:

In file included from AUEProject/Plugins/NoesisGUI/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/NoesisEditor/PCH.NoesisEditor.h:280:
In file included from AUEProject/Plugins/NoesisGUI/Source/NoesisEditor/Private/NoesisEditorPrivatePCH.h:117:
In file included from AUEProject/Plugins/NoesisGUI/Source/NoesisRuntime/Public/NoesisRuntime.h:9:
In file included from AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK.h:14:
In file included from AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Include/NoesisPCH.h:14:
AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Include/NsCore/TypePropertyUtil.h:35:28: error: member access into incomplete type 'const Noesis::TypeProperty'
    return Boxing::Box(prop->template Get<T>(ptr));
                           ^
AUEProject/Plugins/NoesisGUI/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/NoesisEditor/PCH.NoesisEditor.h:280:
In file included from AUEProject/KawasakiSim/Plugins/NoesisGUI/Source/NoesisEditor/Private/NoesisEditorPrivatePCH.h:117:
In file included from AUEProject/Plugins/NoesisGUI/Source/NoesisRuntime/Public/NoesisRuntime.h:9:
In file included from AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK.h:14:
In file included from AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Include/NoesisPCH.h:14:
AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Include/NsCore/TypePropertyUtil.h:91:9: error: member access into incomplete type 'const Noesis::TypeProperty'
    prop->template Set<T>(ptr, DynamicCast<T>(value));
        ^
AUEProject/Plugins/NoesisGUI/Source/Noesis/NoesisSDK/Include/NsCore/TypeClass.h:22:7: note: forward declaration of 'Noesis::TypeProperty'
class TypeProperty;

So I would think an inclusion of <NsCore/TypeProperty.h> is required in NoesisSDK/Include/NsCore/TypePropertyUtil.h
Tags: C++, UE4
Steps To Reproduce: Setup UE4.26.1
Setup a UE project with 2 plugins, say A and NoesisGUI
Configure A.uplugin, A.Build.cs,AEditor.Build.cs such as NoesisGUI as plugin dependency with NoesisRuntime, NoesisEditor as module dependencies
Put NoesisSDK folder under NoesisGUI/Source/Noesis
Compile the project by UE
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1997 [NoesisGUI] C++ SDK minor N/A 2021-05-02 15:35 2021-05-03 19:18
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Const safety incorrect for ItemColelction::IndexOf
Description: Hi guys, the parameter for ItemCollection::IndexOf are not const:

int ItemCollection::IndexOf(BaseComponent* item) const

(and likewise BaseCollection::IndexOfComponent etc). This prevents me from doing the following:

/*static*/ void MyCustomComponent::OnPropertyChanged(DependencyObject *pObject, const DependencyPropertyChangedEventArgs &rArgs)
{
    SelfClass *pSelf = DynamicCast<SelfClass*>(pObject);
    if (nullptr != pSelf)
    {
        ItemCollection *pItems = GetItemCollection();
        if (nullptr != pItems)
        {
            s32 nOldIdx = -1;
            s32 nNewIdx = -1;
            if (rArgs.oldValue != nullptr)
            {
                nOldIdx = pItems->IndexOf(reinterpret_cast<const BaseComponent*>(rArgs.oldValue)); // Errors <-- cannot remove const
            }
        }
    }
}


I can use a const_cast for now, but I don't see any reason why the parameter can't be const as it should only be checking to see if the address of the property is in the collection, it shouldn't need to mutate the object.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1978 [NoesisGUI] C++ SDK minor always 2021-04-23 16:06 2021-05-03 15:32
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: XamlPlayer crashing when dropping App.xaml files
Description: XamlPlayer should ignore App.xaml instead of crashing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1953 [NoesisGUI] C++ SDK trivial always 2021-03-26 19:33 2021-05-03 15:17
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Compile error in Error.h when running static analysis
Description: Hi guys, just a simple typo caused by some compiler options when running static analysis:

#ifndef NS_CHECK
    #ifdef _PREFAST_
        #define NS_CHECK(expr, ...) __analysis_assume(!!(expr)
    #elif defined(__clang_analyzer__)
        #include <assert.h>
        #define NS_CHECK(expr, ...) assert(expr)
    #elif defined(NS_PROFILE)
        #define NS_CHECK(expr, ...) \
            NS_MACRO_BEGIN \
                if (NS_UNLIKELY(!(expr))) \
                { \
                    Noesis::InvokeErrorHandler(__FILE__, __LINE__, false, __VA_ARGS__); \
                } \
            NS_MACRO_END
    #else
        #define NS_CHECK(...) NS_UNUSED(__VA_ARGS__)
    #endif
#endif




Specifically this bit here:

#define NS_CHECK(expr, ...) __analysis_assume(!!(expr)

It's missing a closing parenthesis. This will only cause an error if _PREFAST_ is defined which is only defined during static analysis. Adding the missing closing parenthesis fixed the compile error.
Tags:
Steps To Reproduce: 1. Run static analysis
2. You should get a compile error here about unexpected EOF

inline BaseRefCounted::~BaseRefCounted()
{
    // Note that 1 is valid when the object lives is the stack or is being manually destroyed
    NS_CHECK(mRefCount == 1 || mRefCount == 0, "Unexpected RefCount(%d) deleting object at %p",
        (int32_t)mRefCount, this);
}

Cheers,

-Steven
Additional Information:
Attached Files:
Notes
(0007114)
jsantos   
2021-03-29 18:33   
Thanks for reporting this Steve.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1980 [NoesisGUI] C++ SDK tweak always 2021-04-23 20:47 2021-04-30 18:42
Reporter: ext.mnawrot Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: ScrollViewer KeyUp / KeyDown event is not triggered by the xbox pad right thumbstick
Description: I was testing gamepad events with the following listeners:

[code] this->KeyDown() += [](BaseComponent* /* sender */, const KeyEventArgs& /* args */)
  {
    std::cout << "key down" << std::endl;
  };

  this->KeyUp() += [](BaseComponent* /* sender */, const KeyEventArgs& /* args */)
  {
    std::cout << "key up" << std::endl;
  };
[/code]

Most of the game pad button were captured except the right thumbstick and the left / right triggers. However the ScrollViewer is using them correctly to scroll the content.

According the UWP spec those events should be included (I know WPF ~= UWP) as following
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.input.keyroutedeventargs?view=winrt-19041#remarks
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007169)
jsantos   
2021-04-26 13:45   
Hi!

Thanks for the report. Could you please describe how important is this feature for you?
(0007170)
ext.mnawrot   
2021-04-26 17:37   
It's not urgent but currently we had to write a workaround using the `scrollChanged` event which is shared by all sources of scrolling. We wanted to alter the behavior of right joystick only to add scroll acceleration. At this point we don't see an easy way to do that.
(0007180)
jsantos   
2021-04-28 11:20   
@sfernandez, I wonder if doing the same as the ScrollViewer is doing would be a better workaround? How are Scroll and HScroll events being propagated to controls?
(0007185)
sfernandez   
2021-04-28 14:05   
Scroll and HScroll functions are generating MouseWheel events. ScrollViewer overrides the MouseWheel event to scroll.
The good thing about Scroll/HScroll is that it uses a float as scroll increment so you can specify the speed of the scrolling.
(0007187)
jsantos   
2021-04-29 10:39   
(Last edited: 2021-04-29 10:40)
Wouldn't it be a better workaround overriding the MouseWheel even then?

(0007194)
ext.mnawrot   
2021-04-29 19:39   
I tried the MouseWheel event but it seem not be triggered by the scrollViewer when I used the right joystick
(0007195)
sfernandez   
2021-04-29 19:56   
(Last edited: 2021-04-29 20:22)
Is it possible that your integration layer is not sending the Scroll/ScrollH events to the IView when the right thumbstick is moved?

(0007201)
ext.mnawrot   
2021-04-30 18:42   
then I guess the scroll wouldn't work at all for the right joystick... Here is how integrated with the IView:

```
void SetupDisplay(NoesisApp::Display* display, NoesisApp::RenderContext* ctx, Noesis::Ptr<Noesis::IView> view)
      {
        // Gather window events and send to view
        display->SizeChanged() += [view, ctx](NoesisApp::Display*, uint32_t width, uint32_t height) {
          view->SetSize(width, height);
          ctx->Resize();
        };

        display->Activated() += [view](NoesisApp::Display*) {
          view->Activate();
        };

        display->Deactivated() += [view](NoesisApp::Display*) {
          view->Deactivate();
        };

        display->MouseButtonUp() += [view](NoesisApp::Display*, int x, int y, Noesis::MouseButton b) {
          view->MouseButtonUp(x, y, b);
        };

        display->MouseButtonDown() += [view](NoesisApp::Display*, int x, int y, Noesis::MouseButton b) {
          view->MouseButtonDown(x, y, b);
        };

        display->MouseMove() += [view](NoesisApp::Display*, int x, int y) {
          view->MouseMove(x, y);
        };

        display->MouseDoubleClick() += [view](NoesisApp::Display*, int x, int y, Noesis::MouseButton b) {
          view->MouseDoubleClick(x, y, b);
        };

        display->MouseWheel() += [view](NoesisApp::Display*, int x, int y, int delta) {
          view->MouseWheel(x, y, delta);
        };

        display->Scroll() += [view](NoesisApp::Display*, float delta) {
          view->Scroll(delta);
        };

        display->HScroll() += [view](NoesisApp::Display*, float delta) {
          view->HScroll(delta);
        };

        display->TouchUp() += [view](NoesisApp::Display*, int x, int y, uint64_t id) {
          view->TouchUp(x, y, id);
        };

        display->TouchDown() += [view](NoesisApp::Display*, int x, int y, uint64_t id) {
          view->TouchDown(x, y, id);
        };

        display->TouchMove() += [view](NoesisApp::Display*, int x, int y, uint64_t id) {
          view->TouchMove(x, y, id);
        };

        display->KeyDown() += [view](NoesisApp::Display*, Noesis::Key key) {
          view->KeyDown(key);
        };

        display->KeyUp() += [view](NoesisApp::Display*, Noesis::Key key) {
          view->KeyUp(key);
        };

        display->Char() += [view](NoesisApp::Display*, uint32_t c) {
          view->Char(c);
        };
      }
```


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1994 [NoesisGUI] Unity3D major always 2021-04-30 12:18 2021-04-30 16:46
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: DataTemplate xaml reports duplicate name elements
Description: When loading a xaml that has a template (DataTemplate/ControlTemplate) as root
<DataTemplate
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:Testing"
  DataType="{x:Type local:SomeVM}">
  <local:SomeView/>
</DataTemplate>

if the contained UserControl has a named element inside it will throw an error like:
Cannot register duplicate name 'something' in this namescope.

when using that data template.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1993 [NoesisGUI] C# SDK feature N/A 2021-04-30 11:30 2021-04-30 11:44
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Custom FocusScope to allow proper FocusScope use
Description: The FocusScope as WPF defines it is just a temporary scope that is used for Menus and ToolBars so the commands they trigger get called
in the original scope. That unfortunately means that if you use a FocusScope anywhere else, you break RoutedCommands.

This article discusses a custom attached property that would allow a use of a FocusScope as people intuitively think about it.
See following article for a discussion and example implementation.

https://www.codeproject.com/Articles/38507/Using-the-WPF-FocusScope
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1979 [NoesisGUI] C++ SDK major always 2021-04-23 18:09 2021-04-29 11:11
Reporter: Susanna.Rowland Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: TabControl focus inconsistent with WPF standard
Description: In WPF, when a TabControl is focused, the focus is passed to the first focusable child element in the tab item, by default. With Noesis, the tab itself is visibly gaining focus, not the first child. This occurs both when you use the mouse or keyboard controls (ctrl-tab).
In addition, use of FocusManager.FocusedElement as a workaround appears to be being ignored/overridden.
Tags: C++, Focus, TabControl
Steps To Reproduce: Launch Noesis with the attached XAML (based of the Noesis Commands sample).
Observe that the selected tab contents does not receive focus on start.
Switch tabs using the keyboard shortcuts (ctrl+tab & ctrl+shift+tab) and observe the tab holds focus and does not pass it to the first child element.
Switch tabs using the mouse and again observe the tab holds focus and does not pass it to the first child element.
Additional Information:
Attached Files: MainWindow.xaml (2,976 bytes) 2021-04-23 18:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1415&type=bug
Notes
(0007189)
sfernandez   
2021-04-29 11:11   
We fixed the differences in behavior with WPF when using mouse and keyboard/gamepad to move the focus.
I'm going to close this ticket leaving the FocusManager issue for ticket 0001982.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1986 [NoesisGUI] C# SDK major always 2021-04-27 18:20 2021-04-29 10:38
Reporter: Susanna.Rowland Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Path.TrimStart/TrimEnd non functional in blend
Description: Attempting to use the radial progress bar from your examples and while it works in C++, in C# it always shows 100% fill which is problematic for our designer.
I have the latest Noesis.GUI.Extensions installed via NuGet.
Tags: C#, Noesis.GUI.Extensions
Steps To Reproduce: Run the Gallery-blend project and select "Status and info" -> "Progress bar".
Scroll down to see the "custom style".
Observe that the left most progress bar does not so any visible change despite the values changing due to the animation
Additional Information:
Attached Files:
Notes
(0007177)
jsantos   
2021-04-28 11:01   
Yes, this is a known issue. Many of the Noesis extensions listed here

https://www.noesisengine.com/docs/Gui.Core.ExtensionsTutorial.html

are not implemented in WPF/Blend. Not sure if all of them can be implemented.

If this is very critical for your development we can investigate how to bring Path Trimming to Blend.

Long term solution for this: we are working in our own editor, similar to Blend, but created with Noesis.

(0007181)
Susanna.Rowland   
2021-04-28 12:13   
It isn't currently critical for us, although it would be useful.
Can I ask what the ETA is on your editor as this will have an impact on how we plan our workflow going forwards?
Also, it would be very helpful if you were to add notes in the documentation you mentioned, to identify which components are known to be non functional in WPF/Blend, as our designer lost a significant amount of time attempting to work out what they had done incorrectly before we realised that this was an issue with the extension itself.
(0007186)
jsantos   
2021-04-29 10:37   
(Last edited: 2021-04-29 10:38)
There is no ETA for the editor right now, it is a long-term milestone (not happening this year or next one).

Sorry about the problem with your designer. We will improve the documentation.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1946 [NoesisGUI] C# SDK major always 2021-03-19 12:35 2021-04-29 10:26
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: RepeatButton commits extra command when pressed repeatedly
Description: Hi guys,
If the user clicks on the button too often, it often invokes the Command two times per single frame.
I've tried setting high Delay but the issue persisted so it seems to be not related.
It's like it's listening to the double click event now. Really odd.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007090)
ai_enabled   
2021-03-19 15:54   
Actually, there is a more serious issue. Very often the click is registered two times in the row.
There were no changes on our side and we've noticed the issue only today, using 3.0.9 and didn't test it thoroughly.
(0007091)
ai_enabled   
2021-03-19 16:11   
Were there any input-related changes lately?
(0007092)
ai_enabled   
2021-03-19 17:08   
(Last edited: 2021-03-19 17:08)
After further investigation, it seems to be related to Noesis.MouseDoubleClick operating now differently. (I've commented it out and cannot reproduce the issue anymore)

(0007093)
ai_enabled   
2021-03-19 17:14   
(Last edited: 2021-03-19 17:15)
Reworked now our input processing code to match how NoesisGUI operates in Unity (to call either MouseDoubleClick or MouseButtonDown, previously we've called MouseDoubleClick before MouseButtonDown in the case of double click). The issue seems to be gone, will keep you updated!

(0007094)
ai_enabled   
2021-03-19 21:25   
Yes, it was that. Using the input processing code similar to one from Unity plugin, resolved it completely.

Please close this issue.
(0007095)
jsantos   
2021-03-20 13:16   
(Last edited: 2021-03-20 13:16)
We expect the following events when double click happens:

MouseButtonDown  <-- first click
MouseButtonUp
MouseDoubleClick   <-- second click
MouseButtonUp

This is legacy behavior from Win32 API and risky to change but we should definitely document this properly because it is not the first time it is source of confusion.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1988 [NoesisGUI] Unity3D minor have not tried 2021-04-28 11:33 2021-04-28 14:10
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Improve Visual Studio extension to hide /obj/ folder from root
Description: https://www.noesisengine.com/forums/posting.php?mode=reply&f=3&t=2279#pr12564

Yes my project layout is basically exactly the same. I still need to manually edit the Blend project file though since VisualStudio
has no UI for changing the /obj/ folder location, you can only change the /bin folder. I don't want the /obj to show up at my Unity
project root, I want that stuff to end up in a /Blend subfolder. That's why I need to hand edit the project file. Not sure if your
template has that already done, it's basically the <BaseIntermediateOutputPath> tag. I think there's also a feature request for the
VS team to have a UI for changing this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1985 [NoesisGUI] Unity3D major always 2021-04-27 12:50 2021-04-28 13:59
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: noesis:Xaml.Dependencies are not working
Description: Hi,

None of the XAMLs added with noesis:Xaml.Dependencies are shown in the inspector.

For example:

<noesis:Xaml.Dependencies>
    <noesis:Dependency Source="Assets/InirectRef.xaml"/>
  </noesis:Xaml.Dependencies>
Tags:
Steps To Reproduce: Create a new project and add Noesis 3.0.11

Put the attached files in the Assets folder.

Open Base.asset and check dependencies.
Additional Information:
Attached Files: Base.cs (258 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1416&type=bug
BaseVM.cs (841 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1417&type=bug
DirectRef.cs (208 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1418&type=bug
IndirectRef.cs (214 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1419&type=bug
Base.xaml (1,106 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1420&type=bug
DirectRef.xaml (720 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1421&type=bug
IndirectRef.xaml (724 bytes) 2021-04-27 12:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1422&type=bug
Notes
(0007173)
sfernandez   
2021-04-27 21:10   
(Last edited: 2021-04-27 21:10)
The dependency uri should be relative or absolute (starting with a '/'). In this example it should be:

  <noesis:Xaml.Dependencies>
    <noesis:Dependency Source="IndirectRef.xaml"/>
  </noesis:Xaml.Dependencies>

or:

  <noesis:Xaml.Dependencies>
    <noesis:Dependency Source="/Assets/IndirectRef.xaml"/>
  </noesis:Xaml.Dependencies>

I tried both and they work as expected.

(0007175)
easylaser   
2021-04-28 09:33   
Sorry to bother.

I used the same Uri as in LoadComponent. I couldn't imagine that they should differ...
(0007176)
sfernandez   
2021-04-28 10:15   
Don't worry, we improved the documentation of that extension to make it clear how to specify the URI.
Thanks.
(0007179)
jsantos   
2021-04-28 11:15   
I don't think fixing the documentation is enough. We should emit a warning or error in the console.

I am reopening this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1983 [NoesisGUI] Unity3D major always 2021-04-27 00:56 2021-04-27 20:47
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Keyboard class is missing the ClearFocus() method
Description: The Keyboard class is missing the ClearFocus() method
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1973 [NoesisGUI] Unity3D block always 2021-04-19 10:36 2021-04-21 17:42
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: GridView.Column is frosen
Description: I have a ListView with a GridView that have dynamic number of Columns.
I'm defining the columns in code:
Code: Select all
var viewColumn = new GridViewColumn()
{
 Header = col.ToString(),
 Width = 100
};
gv.Columns.Add(viewColumn);

The Columns are added in OnLoaded and updated when the data changes
This works pretty well in Noesis 2, but in Noesis 3 the Columns collection is frozen.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2265
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1974 [NoesisGUI] Unity3D feature N/A 2021-04-20 16:50 2021-04-21 17:05
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Need a way to check if an object is 'grabbed' by Noesis
Description: Hi,

During my investigation of our memory leaks, I needed a way to check if an object is 'grabbed' by Noesis
I added the following code:

namespace Noesis
{
    internal partial class Extend
    {
        public static bool IsGrabbed(object o)
        {
            lock(_extends)
                return _extends.Any(x => Object.ReferenceEquals(x.Value.instance, o));
        }
    }
}

Is it possible to have this included in the 'official' code base?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007162)
sfernandez   
2021-04-21 17:03   
Yes, we can add that function to our code, will do it for next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1964 [NoesisGUI] Unity3D crash always 2021-04-10 17:24 2021-04-19 21:00
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Crash when calling LoadXaml(true)
Description: Calling LoadXaml(true) on a NoesisView causes a crash of the Unity Editor
Tags:
Steps To Reproduce: - Unity Version 2019.4.9f1
- Attach NoesisView to main camera.
- Add monobehavior to main camera which calls
  this.noesisView.LoadXaml(true);
  on a reference to that NoesisView
- The editor crashes. Unity crash report files attached.
Additional Information:
Attached Files: crash.dmp (1,513,235 bytes) 2021-04-10 17:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1405&type=bug
Editor.log (808,069 bytes) 2021-04-10 17:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1406&type=bug
error.log (126,472 bytes) 2021-04-10 17:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1407&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1952 [NoesisGUI] Unreal block always 2021-03-26 15:34 2021-04-19 19:05
Reporter: Tadinu Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Linux
Summary: libNoesis.so installation to package on Linux
Description: Hi Noesis,

So I have created a PR here adding libNoesis.so as Runtime dependency to the target installation path, so the parent project's executable program could run NoesisGUI after being packaged.
https://github.com/Noesis/UE4Plugin/pull/24

Could you have a look then?

Thanks.
Tags: C++, UE4
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007111)
jsantos   
2021-03-26 15:37   
Yes, thanks for all these reports!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1960 [NoesisGUI] Unreal minor have not tried 2021-04-08 14:14 2021-04-19 12:03
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: TArray inside base class not found
Description: At some point the code does the following:

UNoesisFunctionLibrary::NotifyArrayChanged(ViewModel, TEXT("SomeArray"));


This only works if the property "SomeArray" is directly defined in the ViewModel class. If the property is defined in a base class then it logs the following error:

> LogNoesis: Warning: Couldn't resolve property DebugViewModel::SomeArray

And the view does not get updated, however it updates when I edit the xaml file and reload it inside UE4.
I receive the same log message when declaring a simple int property inside the parent class, however the view updates correctly.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1968 [NoesisGUI] Unreal crash always 2021-04-13 14:35 2021-04-15 12:52
Reporter: sergey_sitnikov_ninjatheory Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Crash in Noesis.dll on XamlView->SetSize when using ScrollViewer with the name PART_ContentHost in TextBox template
Description: Hello guys,

I found out that UE4 crashes in UNoesisInstance::Update trying to call XamlView->SetSize(Width, Height) when XAML uses TextBox template with a ScrollViewer that has a name PART_ContentHost.
Please let me know if you need more information on how to reproduce the issue.

Cheers,
Sergey
Tags: C++, TextBox, UE4, xaml
Steps To Reproduce: 1. Define a new textbox style

<Style x:Key="TextBox_Test" TargetType="{x:Type TextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TextBox}">
                <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

2. Use that style for the TextBox

<TextBox Style="{StaticResource TextBox_Test}" Text="HELLO"/>

3. Reimport xaml in UE4
4. Observe crash
Additional Information:
Attached Files: UE4Minidump.dmp (1,199,952 bytes) 2021-04-15 11:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1409&type=bug
Gym_Text.xaml (956 bytes) 2021-04-15 11:39
https://www.noesisengine.com/bugs/file_download.php?file_id=1410&type=bug
Notes
(0007148)
sfernandez   
2021-04-14 20:14   
Hi Sergey,

I'm not able to reproduce the crash with 3.0.10 plugin, it reimports fine.
Where are you defining the style, in the same xaml where the TextBox uses it?

Could you please collect a minidump of the crash so we can see where is coming from?
(0007149)
sergey_sitnikov_ninjatheory   
2021-04-15 11:39   
Hi Sergio,

I have prepared a simple xaml that crashes 100% for me on 3.0.10. I have attached both xaml and a crash mini-dump.
(0007150)
sfernandez   
2021-04-15 12:36   
Thanks for the dump, it helped me figure out what was happening and I'm now able to reproduce it.
We'll fix it for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1959 [NoesisGUI] Unreal crash always 2021-04-08 14:06 2021-04-14 17:16
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Crash importing textures in UE5
Description: When the flags RestoreUITexturePNGPremultipliedAlpha and PremultiplyAlpha are set to true the import of textures crashes.

> RegisteredTextureBuckets[TexturePriority].Emplace(Texture); 
  void UTexture2D::UpdateResource() 
  GetDefault<UNoesisSettings>()->RestoreUITexturePNGPremultipliedAlpha
  NoesisEngineModule  void OnObjectPropertyChanged(UObject* Object, struct FPropertyChangedEvent& Event)
  FCoreUObjectDelegates::OnObjectPropertyChanged.Broadcast(Texture, EmptyPropertyChangedEvent);
  PostCompilation(Texture.Get());
  RegisteredTextureBuckets[PriorityIndex];
  FTextureCompilingManager::ProcessTextures()


We should also change plugin code to use FillPNGZeroAlpha setting from TextureImporter section instead of creating our own setting.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1965 [NoesisGUI] Documentation minor have not tried 2021-04-12 16:43 2021-04-12 17:46
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Improve custom controls documentation
Description: Now we have duplicated documents with deprecated code:
https://www.noesisengine.com/docs/Gui.Core.CustomControlTutorial.html
https://www.noesisengine.com/docs/Gui.Core.CustomControls.html
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1962 [NoesisGUI] Unity3D feature always 2021-04-09 11:31 2021-04-12 10:57
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Can't get ApplicationResources dictionary
Description: There is no way to obtain the ApplicationResources dictionary in Unity.
The API exists in the native library but it is not exposed to C#.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1783 [NoesisGUI] C# SDK minor always 2020-09-01 18:18 2021-04-10 21:14
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Routed event args missing constructors or wrong signature
Description: RoutedEventArgs and derived classes are missing some constructors or have a wrong signature.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1956 [NoesisGUI] Unity3D minor always 2021-03-31 20:06 2021-04-08 21:17
Reporter: kokolihapihvi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: Viewbox also scales ToolTip
Description: I believe the tooltip scale should stay constant regardless of parent element scale, which seems to be the case in WPF.
I found this related forum post, but couldn't find an issue about this; https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1831&p=10375&hilit=tooltip+scale#p10375
Tags: WPF, xaml
Steps To Reproduce: Xaml:

<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <Grid Width="500" Height="500">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="90*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="10*"/>
            <RowDefinition Height="70*"/>
        </Grid.RowDefinitions>
        <Viewbox Grid.Column="0">
            <TextBlock Text="A" Background="Green">
                <TextBlock.ToolTip>
                    <TextBlock FontSize="20">TOOLTIP</TextBlock>
                </TextBlock.ToolTip>
      </TextBlock>
        </Viewbox>
        <Viewbox Grid.Column="1" Margin="16">
            <TextBlock Text="B" Background="Red">
                <TextBlock.ToolTip>
                    <TextBlock FontSize="20">TOOLTIP</TextBlock>
                </TextBlock.ToolTip>
      </TextBlock>
        </Viewbox>
    </Grid>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1958 [NoesisGUI] C++ SDK minor always 2021-04-05 16:32 2021-04-06 18:10
Reporter: sgonchar Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.11  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Windows
Summary: drop down does not focus or scroll if no default selected item
Description: Discussion here: https://www.noesisengine.com/forums/posting.php?mode=reply&f=3&t=2251
Tags:
Steps To Reproduce: - When entering screen / panel and select dropdown (via nav)
- I press A or Return to open the drop down.
- Drop down shows, but Inspector doesn't show PopupLayer
- Note no highlight. Nav with keyboard or controller doesn't work.
- Mouse over highlight works
- Clicking with the Mouse selects a value
- Now A/Enter on keyboard opens the drop down and highlight is visible, PopupLayer is in Inspector / things work as expected.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1957 [NoesisGUI] C++ SDK major always 2021-04-01 15:11 2021-04-01 16:15
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.11  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: TemplateBinding generates assertion for assignable types
Description: Using TemplateBinding for binding assignable (but not identical) types will generate an assertion for missing converter.
NS_ASSERT(mConverter != 0);

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2249#p12399
Tags: C++
Steps To Reproduce: Use XAML expression
A = {TemplateBinding B}
when the type of A is not identical but assignable from the type of B
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1897 [NoesisGUI] C# SDK crash always 2021-01-21 15:53 2021-03-29 11:22
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.12  
    Target Version: 3.0.12  
Platform: Any
Summary: .NET 5 has broken RunClassConstructor workaround
Description: Hi guys,
code https://github.com/Noesis/Managed/blob/151a432f4ce2610bb0d70332e7014f4c442405b4/Src/Noesis/Core/Src/Core/Extend.cs#L1687
unfortunately this workaround is no longer valid for .NET 5. Dependency properties are NOT recreated and remain disposed.
Simply calling "RuntimeHelpers.RunClassConstructor(type.TypeHandle);" doesn't work for this case too.
I'm urgently looking for a fix as it breaks our game.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Screenshot at 21-06-16.png (470,829 bytes) 2021-01-21 19:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1368&type=bug
Screenshot at 21-06-35.png (454,889 bytes) 2021-01-21 19:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1369&type=bug
Screenshot at 21-06-35-2.png (454,889 bytes) 2021-01-21 19:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1370&type=bug
Screenshot at 21-06-16-2.png (470,829 bytes) 2021-01-21 19:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1371&type=bug
Notes
(0006976)
ai_enabled   
2021-01-21 16:35   
(Last edited: 2021-01-21 16:35)
Apparently, TypeInitializer.Invoke(null, null) does nothing in .NET 5.
I've tried to manually reset the static field for dependency property (had to make it non-readonly) and calling TypeInitializer.Invoke(null, null) after it. Nothing has changed, the field remains null.

(0006977)
ai_enabled   
2021-01-21 16:42   
Besides dependency properties, there could be an issue with OverrideMetadata located in some static constructors and not being called too.
Wow, it's a big issue.
(0006980)
ai_enabled   
2021-01-21 18:59   
I've implemented a workaround but it's not good.

1. I've created a store of all the registered dependency properties (with their metadata) and "resurrect" all the registered dependency properties of type instead of using its TypeInitializer (by resurrection I mean construction of new native data and replacing the original pointer in the existing (disposed) dependency property instance). Surprisingly, it works very well!

2. I've created a store of all the OverrideMetadata calls (that are often used for DefaultStyleKeyProperty override) to store the DefaultValue of the provided metadata. I restore it for each registered type during TypeInitializer. It "seems" to work but I see that some style overrides are missing.

Considering my further steps.
(0006981)
ai_enabled   
2021-01-21 19:07   
The style seems to apply properly but either DataTrigger or ChangePropertyAction doesn't work.
For example, foreground change doesn't apply here (see the attachments, the one where there is no orange foreground for "Configure" text is broken.
(0006982)
ai_enabled   
2021-01-21 19:26   
Got it working! Apparently, I needed to store not only DefaultValue but also PropertyChangedCallback and CoerceValueCallback. I no longer see any issues but need to perform further testing.
(0006983)
sfernandez   
2021-01-21 19:41   
I guess you implemented something similar to what you were saying in ticket 0001840.
Could you please share where did introduce that registry of properties?
How did you solve the problem of OverrideMetadata?
(0006984)
ai_enabled   
2021-01-21 20:28   
(Last edited: 2021-01-21 20:28)
I totally forgot about the old ticket. Indeed, it's a similar solution.
It works well as I've tested it for a while now!

For OverrideMetadata I've also created a dictionary of Type->override. It's not ideal but does the job well for our case (as in our case all static constructors call OverrideMetadata for themselves only and not some other type).

If it would be convenient, I can provide a pull-request on Github so you can see the diff.

(0006986)
sfernandez   
2021-01-21 20:36   
The pull request on GitHub would be great, this was something we wanted to change sooner or later, but that problem with .NET 5 will force us to fix it now.
(0007024)
ai_enabled   
2021-02-08 20:07   
Sure. Here is the pull request https://github.com/Noesis/Managed/pull/4
Enjoy!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1859 [NoesisGUI] C++ SDK crash always 2020-12-11 12:45 2021-03-24 19:20
Reporter: daldegam Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.8  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Android
Summary: NativeSDK - Exception Crash - ARM
Description: Whenever I use an exception in my project, a crash happens and catch() is not executed.

However, this only happens on Android devices armeabi-v7a, on other platforms, it doesn't.

Investigating I found that the crash only happens when the Noesis.so library is linked and some exception handled happens.

No code is needed to start noesis, just link the library and any exception thrown will make the program close.

Cases that do not crash:
- Noesis.so linked but without exceptions;
- Noesis.se not linked with or without exceptions;

I tried to find out for myself what is happening, but without success.

I removed Noesis.so for x86_64 because the file got big and Mantis won't let me attach the file with the example.
Tags: armeabi-v7a, C++, OpenGL
Steps To Reproduce: I'm using Android Studio 4.1.1 to build the sample project.

I did a test project so that you can reproduce the problem.

In the NativeEngine.cpp file I put a simple exception code:
    try {
        throw std::runtime_error("Noesis Team, look here!");
    }
    catch (const std::exception &exp) {
        __android_log_print(ANDROID_LOG_ERROR, "Game", "Normal exception: %s", exp.what());
    }


In the CMakeList.txt file I put the link for lib 3.0.8 as follows:
    ${CMAKE_CURRENT_SOURCE_DIR}../../app/src/main/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libNoesis.so

So to reproduce, just leave the lib linked and the exception enabled.
Additional Information:
Attached Files: gamecore.7z (3,868,160 bytes) 2020-12-11 12:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1341&type=bug
callstack.png (57,236 bytes) 2020-12-11 17:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1342&type=bug
Notes
(0006888)
daldegam   
2020-12-11 13:22   
I made a folder in Google Drive with examples why I can't upload files larger than 5MB here;

I compiled the project in three different ways, I also put the project code in the folder.

There are then the following APKs:

game-noesis-exception.apk (will crash)
game-noesis-without-exception.apk (it won't crash)
game-without-noesis-with-exception.apk (it won't crash)

Link to folder: https://drive.google.com/drive/folders/19Ge7L9h0taIy9wFqpTr07O5dhxJHqA2L?usp=sharing
(0006890)
jsantos   
2020-12-11 16:29   
I don't know if this is related to the fact that we compile NoesisGUI without exceptions. I will find time to test this, could you please paste the call stack and the crash information? Thanks!
(0006892)
daldegam   
2020-12-11 17:00   
I will attach a screenshot with the content of the callstack, android studio will not let me copy as text.

As you can see, when the throw happens, a SIGABRT happens too.

----

Crash details from Android Logcat:

12-11 13:53:46.443 9667-9680/br.com.daldegam.game A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 9680 (GLThread 21503)
12-11 13:53:46.553 382-382/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-11 13:53:46.553 382-382/? A/DEBUG: Build fingerprint: 'samsung/j5lteub/j5lte:6.0.1/MMB29M/J500MUBU1BRD1:user/release-keys'
12-11 13:53:46.553 382-382/? A/DEBUG: Revision: '5'
12-11 13:53:46.553 382-382/? A/DEBUG: ABI: 'arm'
12-11 13:53:46.553 382-382/? A/DEBUG: pid: 9667, tid: 9680, name: GLThread 21503 >>> br.com.daldegam.game <<<
12-11 13:53:46.553 382-382/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
12-11 13:53:46.583 382-382/? A/DEBUG: r0 00000000 r1 000025d0 r2 00000006 r3 ae507978
12-11 13:53:46.583 382-382/? A/DEBUG: r4 ae507980 r5 ae507930 r6 00000000 r7 0000010c
12-11 13:53:46.583 382-382/? A/DEBUG: r8 ae5072b0 r9 b2f2f45f sl 00000001 fp 00000001
12-11 13:53:46.583 382-382/? A/DEBUG: ip 00000006 sp ae507190 lr b6c9cf15 pc b6c9f310 cpsr 400b0010
12-11 13:53:46.593 382-382/? A/DEBUG: backtrace:
12-11 13:53:46.593 382-382/? A/DEBUG: #00 pc 00044310 /system/lib/libc.so (tgkill+12)
12-11 13:53:46.593 382-382/? A/DEBUG: #01 pc 00041f11 /system/lib/libc.so (pthread_kill+32)
12-11 13:53:46.593 382-382/? A/DEBUG: #02 pc 0001ba13 /system/lib/libc.so (raise+10)
12-11 13:53:46.593 382-382/? A/DEBUG: #03 pc 00018c81 /system/lib/libc.so (__libc_android_abort+34)
12-11 13:53:46.593 382-382/? A/DEBUG: #04 pc 00016840 /system/lib/libc.so (abort+4)
12-11 13:53:46.593 382-382/? A/DEBUG: #05 pc 003a1bdf /data/app/br.com.daldegam.game-1/lib/arm/libNoesis.so
12-11 13:53:46.593 382-382/? A/DEBUG: #06 pc 003a1725 /data/app/br.com.daldegam.game-1/lib/arm/libNoesis.so
12-11 13:53:46.593 382-382/? A/DEBUG: #07 pc 003a15b3 /data/app/br.com.daldegam.game-1/lib/arm/libNoesis.so (__gxx_personality_v0+78)
12-11 13:53:46.593 382-382/? A/DEBUG: #08 pc 0004c790 /system/lib/libc.so (__gnu_Unwind_RaiseException+108)
12-11 13:53:46.593 382-382/? A/DEBUG: #09 pc 0001b1e4 /system/lib/libm.so (___Unwind_RaiseException+20)
(0006893)
daldegam   
2020-12-11 17:05   
If you want to compile lib with -fexceptions, I can try and give you feedback if it has been resolved.

Thanks!
(0007101)
daldegam   
2021-03-24 15:45   
Hi! I would like to know if there is any prediction for this problem to be evaluated and solved. We have the project paused due to this impediment. Thanks in advance.
(0007103)
jsantos   
2021-03-24 16:39   
Hi!

Unfortunately we cannot enable exceptions in our official builds and this seems to be related to mixing libraries with and without exceptions (it seems to be related to https://github.com/android/ndk/issues/1192 where a workaround is commented but I haven't tried).

Having access to the source code will solve this, in fact with the source code you will probably use noesis as a static lib.

Not sure at what stage of licensing you are but if you are open to negotiate a license with source code, please let us know.
(0007104)
daldegam   
2021-03-24 19:20   
Yes, we are interested, I will contact Andrea by email.
Thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1777 [NoesisGUI] Unity3D minor always 2020-08-11 21:26 2021-03-24 14:00
Reporter: cjmx Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: GeometryGroup doesn't work as expected
Description: Here is a XAMLToy ready code snippet:
----------
<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 <Canvas>
        <Path Stroke="Black" StrokeThickness="2" Fill="Blue">
            <Path.Data>
                <GeometryGroup>
                    <EllipseGeometry Center="110 60" RadiusX="50" RadiusY="50" />
                    <EllipseGeometry Center="80 110" RadiusX="50" RadiusY="50" />
                    <EllipseGeometry Center="140 110" RadiusX="50" RadiusY="50" />
                </GeometryGroup>
            </Path.Data>
        </Path>
    </Canvas>
</Grid>
----------
It should render three ellipses but it instead will show one ellipse as if there is only the first child of the GeometryGroup
Tags: Unity, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1855 [NoesisGUI] C++ SDK block always 2020-12-08 15:10 2021-03-15 14:17
Reporter: daldegam Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.9  
Platform: Any
Summary: NativeSDK - RTTI Support
Description: Hello!

I need to know if it is possible to Noesis NativeSDK for Android (Noesis.so) to be compiled with RTTI enabled.
I know that Noesis doesn't need of RTTI, but my project does.

It is already a big project that we are implementing the noesis engine.

We were able to work with noesis on our Windows project with visual studio, but when we compile the android version, the compiler doesn't link successfully because noesis.so is compiled with -fno-rtti.

Some sample of linker erros:
error: undefined reference to 'typeinfo for Noesis::BaseObject'
error: undefined reference to 'typeinfo for Noesis::BaseComponent'
error: undefined reference to 'typeinfo for Noesis::UserControl'
error: undefined reference to 'typeinfo for Noesis::ValueStorageManager'
error: undefined reference to 'typeinfo for Noesis::BoxedValue'
error: undefined reference to 'typeinfo for Noesis::TypeProperty'
error: undefined reference to 'typeinfo for Noesis::Grid'
error: undefined reference to 'typeinfo for Noesis::BaseComponent'
error: undefined reference to 'typeinfo for Noesis::Canvas'
error: undefined reference to 'typeinfo for Noesis::UIElement'

Thanks in advance,
Leandro Daldegam
Tags:
Steps To Reproduce: If you want to reproduce, change -fno-rtti from Packages\Samples\Login\Projects\android_x86\Makefile to -frtti;

You will got some erros like that:

==== [Samples.Login] Building 'Release' configuration ====
[CC] android_native_app_glue.c
[BIN] [Samples/Login] App.xaml
[BIN] [Samples/Login] MainWindow.xaml
[BIN] [Samples/Login] Resources.xaml
[BIN] [Samples/Login] Login.mp3
[BIN] [Samples/Login] Fail.mp3
[BIN] [Samples/Login] Aero Matics Regular.ttf
[CXX] [Samples/Login] App.xaml.cpp
[CXX] [Samples/Login] Main.cpp
[CXX] [Samples/Login] MainWindow.xaml.cpp
[CXX] [Samples/Login] ViewModel.cpp
[LD] libSamples_Login.so
lto-llvm-19a866.o:ld-temp.o:typeinfo for Login::App: error: undefined reference to 'typeinfo for NoesisApp::Application'
lto-llvm-19a866.o:ld-temp.o:typeinfo for AppLauncher: error: undefined reference to 'typeinfo for NoesisApp::ApplicationLauncher'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Noesis::Delegate<void (Noesis::BaseComponent*, Noesis::EventArgs const&)>::MultiDelegate::DelegateVector: error: undefined reference to 'typeinfo for Noesis::BaseComponent'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Login::MainWindow: error: undefined reference to 'typeinfo for NoesisApp::Window'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Noesis::Delegate<void (Noesis::BaseComponent*)>::MultiDelegate::DelegateVector: error: undefined reference to 'typeinfo for Noesis::BaseComponent'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Login::ViewModel: error: undefined reference to 'typeinfo for NoesisApp::NotifyPropertyChangedBase'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Noesis::TypePropertyFunction<Login::ViewModel, NoesisApp::DelegateCommand const*>: error: undefined reference to 'typeinfo for Noesis::TypeProperty'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Noesis::TypePropertyFunction<Login::ViewModel, char const*>: error: undefined reference to 'typeinfo for Noesis::TypeProperty'
lto-llvm-19a866.o:ld-temp.o:typeinfo for Noesis::Boxed<Noesis::FixedString<24u> >: error: undefined reference to 'typeinfo for Noesis::BoxedValue'
clang++: fatal error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:188: ../../../../../../Bin/android_x86/libSamples_Login.so] Error 1
make: *** [NoesisGUI-android-x86.mk:78: Samples.Login] Error 2
Additional Information:
Attached Files:
Notes
(0007079)
jsantos   
2021-03-15 14:17   
Not properly fixed on 3.0.9


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1925 [NoesisGUI] Unity3D minor always 2021-02-16 11:00 2021-03-13 20:40
Reporter: JinFox Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Issue on Path showing artifacts with some Data (black lines)
Description: Hello,

Using some path (including the one included in attachment of this ticket), I have discovered that some black lines were appearing on the rendering of the path.
Tags:
Steps To Reproduce: Simplest way to reproduce :
1 - open xamltoy : https://www.noesisengine.com/xamltoy/
2 - paste the code of the path in the attachment.
3 - see the small black vertical lines appearing were only a half transparent fill is provided
Additional Information:
Attached Files: pathIssue.txt (14,894 bytes) 2021-02-16 11:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1384&type=bug
Notes
(0007078)
jsantos   
2021-03-13 20:39   
(Last edited: 2021-03-13 20:40)
This is a limitation of our PPAA antialiasing algorithm. By default we are slightly shrinking the geometry, this can cause overlapping that will be visible when using colors with transparency.

The solution is disabling the shrinking factor by setting 'noesis:Element.PPAAIn="0"'. We are improving the documentation available at

https://www.noesisengine.com/docs/Gui.Core.AntialiasingTutorial.htm

with the following paragraph

Although default values are quite conservative, any non-zero value for 'PPAAIn' can produce artifacts.
 'PPAAIn' is in charge of shrinking the geometry and sometimes it can cause overlapping. This produces
visual glitches when using non-transparent colors for filling. If this happens we recommend disabling
the shrinking by setting 'noesis:Element.PPAAIn="0"' in the node.




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1934 [NoesisGUI] C# SDK minor always 2021-03-05 15:07 2021-03-13 20:35
Reporter: darthmaule2 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.10  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: A specific path does not result in anti-aliasing being applied
Description: This path results in obvious jagged edges.
<Path Data="M0 0 L16 32 L0 64 L16 64 L16 0 Z"/>

But a slightly modified shape can be used as a work-around so this is low priority
<Path Data="M0 0 L15 32 L0 64 L16 64 L16 0 Z"/>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007073)
jsantos   
2021-03-12 10:53   
This is a hard case for our PPAA (cheap antialiasing) algorithm because the tessellator is generating two triangles that share a vertex. That vertex has 4 connected edges and the averaged normal used for PPAA is not correct.

There is no easy solution for this without having a slower algorithm. I need to think more about it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1932 [NoesisGUI] C++ SDK crash always 2021-02-24 13:51 2021-03-12 18:01
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Crash when there are more than 5 active manipulations
Description: When TouchScreen code tries to add a new manipulation finger and there are no manipulation slots available it will crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1913 [NoesisGUI] C++ SDK minor always 2021-01-29 09:28 2021-03-12 17:30
Reporter: milo Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: In function OnManipulationdelta, I can not get the number of fingers.
Description: So I have to count the number of fingers in the function touchdown and OnManipulationCompleted manually. In WPF, ManipulationDeltaEventArgs provides a Manipulators property for that purpose. Hope for It work in Noesis soon.
Tags: WPF
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1931 [NoesisGUI] C# SDK feature always 2021-02-24 13:31 2021-03-12 12:54
Reporter: darthmaule2 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Feature Request: Make the parameters which determine a Tapped, DoubleTapped and Holding events trigger
Description: Some people testing touch on our devices have found the parameters to be too strict.

1.) They would see that a TouchDown occurred (because we apply an orange effect when that happens) but then never see the Tapped event occur. I assume they moved their finger too far but I would like to make that distance configurable.
2.) They would also see that a DoubleTapped was difficult because they had to tap too quickly or have both taps too close together. I would like to have those parameters configurable.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007050)
sfernandez   
2021-02-24 13:47   
Added your comments here:

>>
So probably the parameters that would be nice to experiment with are:

- Tapped distance threshold: distance allowable between down and up
- DoubleTapped distance threshold: distance allowable between first and second taps
- DoubleTapped duration threshold: duration maximum to allow double tapped (after which it becomes just two Tapped events)
- Holding distance threshold: distance allowable during a hold
 
Just looking at the code for our previous product which uses WPF and we had to implement something custom for this, we used 20 pixels for the distance threshold.
(0007074)
jsantos   
2021-03-12 12:54   
(Last edited: 2021-03-12 12:54)
View will expose the following new functions:

/// As Tapped and Holding events are mutually exclusive, this threshold indicates when an
/// interaction should start a Holding event. By default it is 0.5 seconds
void SetHoldingTimeThreshold(float seconds);

/// Minimum distance, in pixels, between first interaction and last interaction to consider
/// valid Tapped or Holding events. By default it is 10 pixels
void SetHoldingDistanceThreshold(uint32_t pixels);

/// The maximum delay required for two consecutives Tapped events to be interpreted as
/// a DoubleTapped event. By default it is 0.5 seconds
void SetDoubleTapTimeThreshold(float seconds);

/// Minimum distance, in pixels, between first interaction and last interaction to consider
/// a DoubleTapped event. By default it is 10 pixels
void SetDoubleTapDistanceThreshold(uint32_t pixels);




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1922 [NoesisGUI] C++ SDK minor always 2021-02-15 17:51 2021-03-12 02:04
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Underline sometimes disappears
Description: Aliasing can cause this bug when the underline has 1px or less of height. Under that circumstances, depending on the vertical position of the underline it can disappear.
Tags:
Steps To Reproduce: <TextBlock MaxWidth="100" TextWrapping="Wrap">
    <Run Text="bla bla"/>
    <Hyperlink>
      <Run Text="dfgdfgfdgfdgfdgfdgdfgdfgdf dfgdfgdfgdfgdfg dfgdfgdfgdfgdfgdfgdfgdfgdfgdfg"/>
    </Hyperlink>
</TextBlock>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1929 [NoesisGUI] C++ SDK minor have not tried 2021-02-23 13:08 2021-03-11 14:32
Reporter: milo Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: PathGeometry did not work with noesisgui3
Description: <?xml version="1.0" encoding="UTF-8"?>
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="svg10" Width="1584.8" Height="1120.6801">
  <Canvas.RenderTransform>
    <TranslateTransform X="0" Y="0"/>
  </Canvas.RenderTransform>
  <Canvas.Resources>
     <PathGeometry xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Key="clipPath28" Figures="M 1162.8 -28.368 H 27.648 V -813.456 H 1162.8 v 785.088" FillRule="NonZero"/>
  </Canvas.Resources>
  <Canvas Name="g18">
    <Canvas.RenderTransform>
      <MatrixTransform Matrix="1.3333333 0 0 -1.3333333 0 2.8017e-5"/>
    </Canvas.RenderTransform>
    <Canvas Name="g22">
      <Canvas Name="g24" Clip="{StaticResource clipPath28}">
      </Canvas>
    </Canvas>
  </Canvas>
</Canvas>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1936 [NoesisGUI] Unity3D crash always 2021-03-10 16:11 2021-03-10 17:41
Reporter: Faerdan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Unity crash on XAML import if a dependency property type doesn't match the default value type
Description: If a dependency property type doesn't match the default value type, and that property is used in XAML, Unity will crash on import.

I've experienced this with a object property which had an empty string as it's default value.

This should log an error. Right now it's very difficult to debug as the editor crashes and the editor log is not much help.
Tags:
Steps To Reproduce: Create a dependency property with a default value type that doesn't match the property type:

public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
            nameof(Value), typeof(object), typeof(ParameterViewData),
            new PropertyMetadata(string.Empty));

Use that property in Xaml:

<MyContentControl Value="Anything" />
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1928 [NoesisGUI] C++ SDK minor always 2021-02-20 14:58 2021-03-02 12:16
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Popup does not check if elements are in the tree.
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2214&p=12233#p12233

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1923 [NoesisGUI] C# SDK major always 2021-02-15 19:24 2021-02-18 20:31
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Inconsistent behavior in OpenGL Render Contexts
Description: I have a cross-platform application that uses the WGL, GLX, or WGL Render Context. In 3.0.10, some changes were made to make the behavior of these render contexts different. The behavior of these OpenGL contexts should be the same.

I'm focusing on method CaptureRenderTarget.

https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/RenderContexts/WGL/Src/RenderContextWGL.cs#L180
https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/RenderContexts/GLX/Src/RenderContextGLX.cs#L191
https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/RenderContexts/EGL/Src/RenderContextEGL.cs#L131

In 3.0.10, WGL got two changes:
- Flip the image to be right-side up: int srcRow = (height - i - 1) * srcStride;
- Don't change the order of bytes in a pixel: // RGBA -> BGRA --> Noesis.Marshal.Copy

The first change is good, we no longer have to render with a Transform containing ScaleY = -1. But it should be made to all render contexts.

The second change is not as good. This ends up flipping the colors from what we expected: An orange original ends up being captured as light blue.

The behavior of the three OpenGL render contexts should be the same. My recommendation would be to add the image flip on GLX and EGL, and to re-add the byte order change on WGL.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007039)
sfernandez   
2021-02-15 20:00   
Are you sure that color order in WGL context is not correct now?
Because I changed it after trying to implement the 2 displays scenario in Windows using WGL render context. I noticed that updating the texture with the pixels from the ImageCapture was giving the wrong color order.
Are you using the pixel array to update a texture also?
(0007040)
DavidYawCSpeed   
2021-02-15 20:29   
(Last edited: 2021-02-15 21:48)
I performed the following:

- CaptureRenderTarget.
- Transform the pixels to a Bitmap, with no manipulation of either bytes-within-pixel or row ordering.
   - new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
   - bitmap.LockBits
   - For each row, Marshal.Copy(imagecapture.pixels, row * width * pixelSize, bitmap.Scan0 + bitmap.Stride * row, width * pixelSize);
- Save to disk with bitmap.Save("TestSave.jpg")

With the 3.0.10 WGL render context, the image comes out light blue, while the original is tan/yellow/orange. With the 3.0.10 EGL render context, it comes out the proper tan/yellow/orange.

(0007042)
DavidYawCSpeed   
2021-02-16 20:20   
To be precise: Whether the render context re-orders the colors within the pixel, or whether it flips the image vertically, it doesn't matter as long as the various OpenGL contexts do the same thing, so that it behaves the same on multiple platforms. My preferences for what they do are listed above, but as long as they all do the same thing, we can make it work in our application.
(0007043)
sfernandez   
2021-02-16 20:41   
My motivation to change the pixel color order was to improve the 2-window scenario where a render target was captured into a byte buffer and then used to update a texture for the secondary window. Without that change I needed to do an extra copy of the buffer to reorder the pixels for the texture update.
Anyway, after the poor framerate results in your device that path is totally discarded, any approach that implies reading the pixels in the CPU and updating a texture is not going to work.

We think that CaptureRenderTarget should return the pixels in a format more useful for writing images to disk, that would be BGRA as we had in previous versions.

I will apply the Y inversion to all OpenGL render contexts and unify the pixel color ordering for the next version as indicated.
(0007044)
DavidYawCSpeed   
2021-02-17 01:11   
(Last edited: 2021-02-17 01:21)
Agreed, using the same format as the second window texture would be good for performance, but the performance isn't there on our hardware, so that concern is moot.

Perhaps at some point in the future, CaptureRenderTarget could have parameters specifying the desired pixel format and row order.

I did some additional testing:

- In the D3D render: I tried specifying Format.B8G8R8A8_UNorm[_SRgb] instead of the existing RGB in the Init() method. Unfortunately, this did not result in any change, in either the primary window, secondary window, or the saved JPG.

- In the WGL render: I tried specifying GL_BGRA = 0x000080E1 in the call to glReadPixels in CaptureRenderTarget. This reversed the RGB/BGR colors. I only tested this on Windows, but this seems like it would be better performance than reversing the colors so manually.

- Also in the WGL render: I notice that "byte[] src = new byte[width * height * 4];" is called for each frame captured. This is spamming the garbage collector, in the same way that creating a new Image Capture object used to. Since the strides are equal, perhaps directly pass _imageCapture.Pixels to glReadPixels, and do an in-place re-ordering of the rows? Or cache the 'src' array in a similar manner to _imageCapture.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1921 [NoesisGUI] C# SDK minor always 2021-02-13 16:37 2021-02-15 18:11
Reporter: dstroup Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Any
Summary: Touch events very flaky win Gbm and Fbdev displays
Description: LibEvDev isn't handling EV_SYN, and maybe ABS_MT_TRACKING_ID, correctly.

That latest LibEvDev.cs on github looks like an older version of the code you've sent us for testing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1920 [NoesisGUI] C# SDK minor always 2021-02-10 22:24 2021-02-15 18:11
Reporter: DavidYawCSpeed Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.11  
    Target Version: 3.0.11  
Platform: Linux
Summary: Handle key repeats in LibEvdev for Gbm and FbDev displays
Description: Method HandleKeyEvent handles events 1 and 0 (press and release, respectively). It needs to handle 2 (hold) as well.

https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/Displays/Gbm/Src/LibEvdev.cs#L755
https://github.com/Noesis/Managed/blob/master/Src/NoesisApp/Displays/Fbdev/Src/LibEvdev.cs#L755

It should be something like this:
private static void HandleKeyEvent(InputEvent ev)
{
    // 0 = Key up/released
    // 1 = Key down/pressed
    // 2 = Key hold/repeating
    Key key = _keyMap[ev.code];
    if (key != Key.None)
    {
        if (ev.value == 0)
        {
            KeyUp?.Invoke(key);
        }
        else if (ev.value == 1 || ev.value == 2)
        {
            KeyDown?.Invoke(key);
        }
    }
}


Tested and verified that ev.value comes through as 2 when holding down a key on a USB Keyboard.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1887 [NoesisGUI] C++ SDK minor always 2021-01-18 16:08 2021-02-10 01:24
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Next touch after handling TouchUp/Tapped/Holding is not correctly promoted
Description: When a control handles TouchUp, Tapped or Holding events, the event is not promoted to MouseUp, so mouse device thinks mouse left button is still pressed.
All following TouchDown events that get promoted are ignored by mouse device because while left button is pressed mouse down events are not raised.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1918 [NoesisGUI] C# SDK major always 2021-02-04 16:31 2021-02-10 01:23
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: TouchBox Does Not Receive Focus as Expected
Description: See screenshot and associated XAML. This behavior happens on Android builds and in the Unity Editor when Emulate Touch is enabled.

TextBoxes inconsistently respond to an initial touch, and focus is not set. I have to repeatedly touch the control for it to finally receive focus.

The behavior is reproducible in Unity when Emulate Touch is enabled. On touch devices (Android) it happens consistently.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CustomerSelect1.PNG (366,472 bytes) 2021-02-04 16:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1379&type=bug
SharingControl.cs (5,228 bytes) 2021-02-04 16:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1380&type=bug
SharingControl.xaml (3,231 bytes) 2021-02-04 16:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1381&type=bug
Notes
(0007019)
stonstad   
2021-02-04 16:32   
I have to spam touches on a TextBox control to get it to focus.
(0007020)
sfernandez   
2021-02-04 19:19   
I think this is the consequence of this issue: 0001887

Does it happen when you touch on a TextBox and then try to touch another control?
(0007021)
sfernandez   
2021-02-04 19:31   
If you touch on an empty space and then on the TextBox, does it get the focus on first touch?
(0007022)
stonstad   
2021-02-04 23:42   
Sergio, you are correct. If I touch something that is not a user control I can then focus a textbox.
(0007026)
stonstad   
2021-02-09 15:02   
This issue affects a fielded/production application. Are there any work-arounds or an interim patch DLL available?

Thanks,
Shaun
(0007027)
jsantos   
2021-02-09 15:47   
We are working on this, plan is having a release in 24h. If not possible I will try to give you a patch.
(0007028)
stonstad   
2021-02-09 18:54   
Understood and thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1883 [NoesisGUI] C++ SDK minor always 2021-01-15 13:19 2021-02-09 21:01
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Touch capture not released when cancelling ManipulationStarted
Description: If a element sets IsManipulationEnabled to true and in its ManipulationStarted cancels it, the touch is still captured by the element, so TouchMove and TouchUp events are only sent to that element.

This can be reproduced in our application framework, because our Window uses manipulations to show the stats/debug toolbar, but touching in the middle of the window shouldn't capture anything.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1910 [NoesisGUI] Unity3D major always 2021-01-27 01:55 2021-02-08 11:04
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: PropertyChangedTrigger bug?
Description: I was trying to use PropertyChangedTrigger, but it appears to be triggering immediately on initialization, even though the value in my data model hasn't changed.

My setup looks something like this:

<ei:PropertyChangedTrigger Binding="{Binding LowHealthEvent}">
   // actions...
</ei:PropertyChangedTrigger>

Is that expected? Is there a way around this? I don't want the trigger to fire until I've actually changed the value. It seems to work fine in all cases except startup. I set a breakpoint to ensure I'm not accidently notifying that it changed and it seems ok.

Suggestions?

sam
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007001)
sfernandez   
2021-01-27 12:31   
(Last edited: 2021-01-27 12:32)
The behavior is expected because PropertyChangedTrigger.Binding default value is null, so when the Binding gets resolved for the first time it sets a value there different than null and the trigger is invoked.

But looking at the name of the bound property, "LowHealthEvent", it seems to me that you should use here an event trigger instead:
<noesis:DataEventTrigger Source="{Binding}" EventName="LowHealth">
   // actions...
</noesis:DataEventTrigger>

Just define an event in your data model as explained in the trigger doc and raise it whenever you want:
https://www.noesisengine.com/docs/App.Interactivity._DataEventTrigger.html

(0007005)
samc   
2021-01-27 19:14   
Ah, that makes sense. Thank you for explaining!

There are some other reasons why I want to keep it as an integer rather than an event (can go into those; it is related to some tools that our designers are using so they could hook things up like this without engineer intervention..)

thanks!

sam


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1915 [NoesisGUI] C# SDK minor always 2021-02-01 21:36 2021-02-04 09:56
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Windows
Summary: Window.Close() doesn't close, leaves artifact on screen.
Description: I have a quit button in my application, separate from the Window's close button.

When Window.Close() is called, the window doesn't close.

- Clicks to this window end up accessing the window behind it.
- D3D Render Context only: Instead of closing, the window changes to be solid white.
- WGL Render Context only: Instead of closing, the window never updates again. Changes to the UI are not redrawn.
Tags:
Steps To Reproduce:
<Button Click="QuitButtonClick" Content="Actually Quit"/>


private void QuitButtonClick(object sender, RoutedEventArgs e)
{
    this.Close();
}


Test Platform: My Windows development PC, running in the Visual Studio debugger. Using Win32Display and either RenderContextWGL or RenderContextD3D11.
Additional Information:
Attached Files: Win32Display.cs (88,120 bytes) 2021-02-02 19:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1378&type=bug
Notes
(0007011)
sfernandez   
2021-02-02 19:08   
I'm not able to reproduce this problem, when calling Close() the window and the application is closing fine.
All the closing logic is implemented in the Win32Display class, it shouldn't depend on what RenderContext is used.
Maybe what you are seeing is an effect of previously trying to minimize the window, which was not working as expected (issue 0001914).
(0007012)
sfernandez   
2021-02-02 19:09   
Attached latest Win32Display with the fix for minimize (issue 0001914) so you can test that Close() is working fine.
(0007016)
DavidYawCSpeed   
2021-02-04 02:14   
(Last edited: 2021-02-04 02:15)
My apologies. You are correct, this was related to my previous work with trying to minimize from code. Sorry for the false report.

(0007017)
sfernandez   
2021-02-04 09:56   
Don't worry, glad to help.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1882 [NoesisGUI] C++ SDK crash unable to reproduce 2021-01-13 23:23 2021-02-03 13:57
Reporter: asusralis Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Crash when idling in scene mode while playing game.
Description: I was finding a bug unrelated to Noesis by using the scene view in Unity while the game was playing. I tabbed out of Unity for a few minutes while the game was running when Unity crashed. This hasn't happened before.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006955)
sfernandez   
2021-01-18 17:14   
The callstack of the crash points to an effect rendering, could you help here @jsantos?

 	[Inline Frame] Noesis.dll!Noesis::BaseVector<float>::UninitializedMove Line 856	C++
     [Inline Frame] Noesis.dll!Noesis::BaseVector<float>::PushBack Line 518	C++
     Noesis.dll!Noesis::VGLContext::DrawDropShadowV Line 945	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderOffscreenNodes Line 666	C++
     Noesis.dll!Noesis::RenderTree::RenderOffscreen Line 277	C++
>	Noesis.dll!Noesis::Renderer::RenderOffscreen Line 171	C++
     Noesis.dll!Noesis::Renderer::RenderOffscreen Line 149	C++
     Noesis.dll!Noesis_GetRenderOffscreenCallback::__l2::<lambda> Line 420	C++
     Unity.exe!GfxDeviceWorker::RunCommand	Unknown
     Unity.exe!GfxDeviceWorker::RunExt	Unknown
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker	Unknown
     Unity.exe!Thread::RunThreadWrapper	Unknown
     kernel32.dll!BaseThreadInitThunk	Unknown
     ntdll.dll!RtlUserThreadStart	Unknown


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1903 [NoesisGUI] Unity3D feature always 2021-01-25 16:01 2021-02-03 13:17
Reporter: peter_e-h_easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Better error message when checking Visual ancestry.
Description: "Visual is not a descendant of the specified ancestor"

is not a very clear error message. If you could include additional info (e.g. types and/or names of elements, that would be very helpful).

Discussed in this forum thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2198
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0007015)
sfernandez   
2021-02-03 13:17   
Fixed in r9954


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1821 [NoesisGUI] C++ SDK crash sometimes 2020-10-26 23:13 2021-02-03 10:40
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: suspended  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Crash when exiting play mode in Unity.
Description: This seemed to happen when I exited play mode in Unity. It has only happened once so far. I am using the build that was given to me to fix the issue from this: https://www.noesisengine.com/bugs/view.php?id=1806

I will keep an eye out for this in the future to see what happened beforehand.

Tags:
Steps To Reproduce: Exit Unity play mode
Additional Information:
Attached Files: Crash_2020-10-26_220917628.rar (381,468 bytes) 2020-10-26 23:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1315&type=bug
Notes
(0006705)
sfernandez   
2020-10-28 12:03   
Have you been able to reproduce this issue in a deterministic way?
The crash happens inside a HitTest from Lean.Touch.LeanTouch.PointOverGui. At some point reaches a visual child that seems to be destroyed.

I added some logs and generated a new library to help me find which element contains a destroyed child.
https://drive.google.com/file/d/1aWwVvBPDODx3j_7VvqrTDNGJ18rKEtFj/view?usp=sharing

Could you please use that library (it also contains previous patch), with 'Log Severity' set to 'Normal' in NoesisSettings, so if it crashes again I can get a bit more info from Editor.log?
(0006952)
asusralis   
2021-01-14 17:42   
Oh, I never saw this response. This was so long ago, I'm not sure how to reproduce it. I haven't ran into this problem since I reported it.
(0007014)
sfernandez   
2021-02-03 10:39   
I'm closing this issue, please re-open it in case it reproduces again.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1914 [NoesisGUI] C# SDK minor always 2021-02-01 21:32 2021-02-02 19:03
Reporter: DavidYawCSpeed Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Windows
Summary: Setting WindowState = WindowState.Minimized leaves artifact on screen
Description: I have an application that I don't want the user to close by simply closing the window. (They'll exit it by clicking some other buttons in the application.) However, they can minimize the application, so I want attempting to close the window to actually minimize it.

I implemented the event handler listed below, but the window doesn't minimize properly.
- The minimize button at the top-right of the window does change to a 'restore' button, so some part of it knows that it's supposed to be minimized.
- Clicks to this window end up accessing the window behind it.
- D3D Render Context only: Instead of minimizing, the window changes to be solid white.
- WGL Render Context only: Instead of minimizing, the window never updates again. Changes to the UI are not redrawn.
- The window disappears from the Task Bar, even though I didn't tell it to do that.
Tags:
Steps To Reproduce:
private void MainWindow_Closing(object sender, NoesisApp.CancelEventArgs e)
{
    e.Cancel = true;
    this.WindowState = WindowState.Minimized;
}


Test Platform: My Windows development PC, running in the Visual Studio debugger. Using Win32Display and either RenderContextWGL or RenderContextD3D11.
Additional Information:
Attached Files:
Notes
(0007010)
DavidYawCSpeed   
2021-02-01 21:41   
Minimizing by manually clicking the minimize button in the title bar works fine.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1911 [NoesisGUI] Unity3D crash random 2021-01-27 18:24 2021-01-27 18:27
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Crash when entering play in Unity editor
Description: After updating to Unity 2020.2.2f1 we are experiencing a reproducible crash when stopping and starting play in the Editor.

Reloading assemblies for play mode.
Begin MonoManager ReloadAssembly
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE.BaseComponent_Release (intptr) [0x00009] in <140a61dea9e947aa888f9c58132b9ad7>:0
  at Noesis.BaseComponent.Release (intptr) [0x00001] in NoesisGUI\Plugins\API\Proxies\BaseComponent.cs:62
  at Noesis.Extend.ReleasePending () [0x00023] in NoesisGUI\Plugins\API\Core\Extend.cs:5154
  at Noesis.Extend.Shutdown () [0x00179] in NoesisGUI\Plugins\API\Core\Extend.cs:100
  at Noesis.Extend.OnDomainUnload (object,System.EventArgs) [0x00001] in NoesisGUI\Plugins\API\Core\Extend.cs:39
  at (wrapper delegate-invoke) <Module>.invoke_void_object_EventArgs (object,System.EventArgs) [0x00073] in <9577ac7a62ef43179789031239ba8798>:0
  at System.AppDomain.DoDomainUnload () [0x00010] in <9577ac7a62ef43179789031239ba8798>:0
  at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x00020] in <9577ac7a62ef43179789031239ba8798>:0

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1904 [NoesisGUI] C++ SDK crash always 2021-01-25 19:50 2021-01-25 21:16
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Crash using invalid MultiBinding inside a DataTrigger
Description: The following xaml will crash if the converter is not registered:
<local:MultiIsLessThanConverter x:Key="NonEssentialsLayout"/>
<Style x:Key="NonEssentialsGrid" TargetType="Grid">
       <Setter Property="Visibility" Value="Visible"/>
       <Style.Triggers>    
              <DataTrigger Value="True">
                     <DataTrigger.Binding>
                           <MultiBinding Converter="{StaticResource NonEssentialsLayout}">
                                  <Binding Path="ActualWidth" ElementName="NonEssentialsGrid"/>
                                  <Binding Path="ActualWidth" ElementName="Exp_Name"/>
                           </MultiBinding>
                     </DataTrigger.Binding>
                     <Setter Property="Visibility" Value="Collapsed"/>
              </DataTrigger>
       </Style.Triggers>   
</Style>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1901 [NoesisGUI] C++ SDK crash have not tried 2021-01-22 00:51 2021-01-25 10:51
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Crash when clearing bound ObservableCollection in code with DataTemplate having triggers
Description: Hi guys, apologies in advance I don't have a solid repro step for this crash, I'll continue to investigate but right now I have some info and I thought I'd ask to see if you can help me narrow anything down.

So we've been seeing a fairly reproducible crash when we reload data into one of our listboxes. The crash goes down in different callstacks, but it's always when we're destroying dependencyobjects. This is triggered when we clear out an ObservableCollection which is the source of a binding expression for the ItemsSource DependencyProperty for the listbox. The callstack usually ends up trying to acess an invalid DependencyProperty value on a DataTrigger. I've attached an example of one of our callstacks where it went down.

This issue was present in 3.0.6. I've only just got around to looking into the issue today and I noticed that you made quite a few fixed regarding DataTriggers and crash fixes in 3.0.9. I've just updated to 3.0.9 and the crash is exactly the same.

As I mentioned, apologies I can't be more specific than this right now, the crashes are rather inconsistent and sporadic. I'll continue to investigate in the background but I'll appreciate any help you can provide in the meantime.

Much appreciated,

-Steven
Tags:
Steps To Reproduce: 1. Load a XAML file with a ListBox.
2. Bind the ItemsSource DependencyProperty on the ListBox to an ObservableCollection property defined and exposed on a DataModel
3. Create a new DataTemplate, add a DataTrigger. See https://www.noesisengine.com/xamltoy/acb220b6ca7fa788dafbb3d53d93fc71 for an example.
4. Bind an event delegate to a button click event, have it clear the observablecollection and add a new entry, see my pseudo code below for an example of what this might look like


// Example C++ interface:
class CustomType
{
private:
   bool m_bLocked;
};

class DataModel
{
public:
     void ClearData()
     {
         m_arrCollection->Clear(); // <-- It might crash here when destroying the ListBoxItem container
         m_arrCollection->Add(MakePtr<CustomType>());
     }
private:
     Ptr<ObservableCollection<CustomType>> m_arrCollection;
}


Button *pOne = FindName<Button>("One");
pOne->Click() += MakeDelegate(this, &SelfClass::OnClick);

void OnClick(BaseComponent*, const RoutedEventArgs&)
{
     DataModel *pDM = GetDataModel();
     pDM->ClearData();
}
Additional Information:
Attached Files: callstack.txt (17,240 bytes) 2021-01-22 00:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1372&type=bug
Notes
(0006992)
steveh   
2021-01-22 12:24   
A little update, I've tried adding logs to the destructor of DependencyObject and FrameworkElement to try and track the addresses of the dependencyobjects being destroyed, and I've been unable to reproduce after 15 minutes of clearing out the observable collection. I'm starting to think this might be a threading issue as the logs obviously affect the timings. I'll try writing out to a global string builder instead of logging to see if I can get it to crash but still keep the debugging info.
(0006993)
sfernandez   
2021-01-22 12:58   
I've been trying myself to reproduce the crash without success.

The callstak you attached indicates that mEffectiveConverter is a destroyed object, and that can only occur if the BindingExpression where the code is being executed is also destroyed.
Without threading issues I don't see a way that the binding could get destroyed during CheckConverter execution.
Perharps you can add inside BindingExpression::Unregister() the following to make sure binding is not disconnected from another thread:
mTargetObject->VerifyAccess();
(0006994)
steveh   
2021-01-24 03:28   
Okay, sorry for this bug report, it was a false positive. I've spent the last day tracking this down. It turns out it was related to a very rare edge case that was stomping memory. It turns out that the pattern that caused it to happen just made it occur in the same address space as the UI which was causing it to trample over random dependency property memory. I enabled our stomp checker which makes individual allocations allocate 2 pages, writes to 1 page and locks the other. This allows us to throw access violations if Windows detect you attempt to access any memory in that virtual addressable space. This allowed me to capture our system which was stomping the DependencyObjects. It turns out it was something in our own engine to do with streaming of assets, but I managed to fix that issue and the UI cleans up fine, so apologies for the false positive, everything is good now.

Feel free to close this bug. Cheers,

-Steven
(0006995)
sfernandez   
2021-01-25 10:51   
Thanks for the update, I'm closing it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1900 [NoesisGUI] C++ SDK minor always 2021-01-21 22:16 2021-01-22 11:30
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: BindingExpression binding mode doesn't work in 3.0.9
Description: Hi guys, I've recently updated from 3.0.6 -> 3.0.9, and I'm now hitting an error on the following XAML:

<MultiBinding StringFormat=" {0}/{1}">
    <Binding Path="SomeArray.Count" Mode="OneWay" />
    <Binding Path="SomeOtherArray.Count" Mode="OneWay" />
</MultiBinding>

The issue is the Mode doesn't seem to come through, the error is as follow:

"A TwoWay or OneWayToSource Binding cannot work on a read-only property"

SomeArray and SomeOtherArray are both ObservableCollections.

This exact XAML used to work fine with 3.0.6. I'm guessing #9800 caused this issue.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006987)
sfernandez   
2021-01-22 09:58   
We found and fix a few issues with MultiBinding recently: changesets 9944 and 9947.
Could you please integrate those and confirm your problem is fixed?
(0006990)
steveh   
2021-01-22 11:25   
I can confirm that integrating those 2 changes have fixed my issue. Much appreciated Sergio!
(0006991)
sfernandez   
2021-01-22 11:30   
Great, marking this as solved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1840 [NoesisGUI] C# SDK major always 2020-11-19 18:01 2021-01-21 20:28
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: NoesisGUI reloading issue: RunClassConstructor invokes static constructor to reinit dependency properties
Description: Hi guys,

I was investigating a few random issues we have and noticed NoesisGUI calling static constructors for our types even when they're already constructed. I understand why it's required (to force reconstructing the dependency properties), however, this is a very hacky solution as NoesisGUI just cannot be 100% sure that it will operate only with the UI-related code. In some cases it invoked static constructors causing reconstructing singletons and other fields that are totally not related to user controls or even UI logic.

For example, imagine we have an item tooltip control that has a dependency property for the item itself. Item is a business entity so it will be never used in the UI directly, but NoesisGUI attempts to register the whole type hierarchy for it including all its public properties that may include things such as physics and audio. While it's a separate big problem in itself (how to handle that case to prevent NoesisGUI from registering certain types), it's a good demonstration when NoesisGUI should not just straight away "reconstruct" types. The side effects could be awful and very hard to debug!

Here is the block of code that is causing the issue:
https://github.com/Noesis/Managed/blob/c2ccfc45ca8a39b8d0d063cdcded1a7d0230678f/Src/Noesis/Core/Src/Core/Extend.cs#L1674

An idea how you can resolve this issue: as you're using this solely to reconstruct the dependency/attached properties, perhaps you should cache all the dependency properties in a Dictionary<Type, RegisteredDependencyProperty[]>. When RunClassConstructor notices that the type was once constructed, it can just foreach the RegisteredDependencyProperty[] array and force their registration.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006774)
sfernandez   
2020-11-19 19:23   
Hi,

This code is a big hack that we don't like either, but it had no problems when we initially designed it for Unity, because it was only used when assemblies were unloaded and reloaded again.

I think the first thing to do to improve that code is avoid calling the static constructor if the type doesn't contain any DependencyProperty field.
And as you suggested in the Github issue, directly ignore all BCL types.

Keeping track of previously defined DependencyProperties is not an option because the code of the classes could have changed and new dependency properties added or removed.

What do you think?
(0006775)
ai_enabled   
2020-11-19 19:53   
>>> avoid calling the static constructor if the type doesn't contain any DependencyProperty field.
It's definitely a better approach (if no other solutions are available) but there is still a chance that it may cause unexpected side effects.

>>> because the code of the classes could have changed and new dependency properties added or removed.
Do you refer to Unity assembly hot-reloading? Does it actually able to expand existing Type objects with new properties? Or it creates new Type objects as they're coming from a new (rebuilt) assembly?
(0006776)
sfernandez   
2020-11-19 20:16   
Yes, Unity unloads current assembly, compiles a new one with any changes you have made to your classes, and loads the new assembly.
So although the types have the same namespace+name, they are in fact new type objects on a new assembly (and old type objects don't exist anymore).
(0006777)
ai_enabled   
2020-11-19 20:30   
Ok, then It's the same as what we have for CryoFall live reloading—assemblies are just rebuilt and the data is re-serialized.

Then my original suggestion should work fine:
>>> perhaps you should cache all the dependency properties in a Dictionary<Type, RegisteredDependencyProperty[]>. When RunClassConstructor notices that the type was once constructed, it can just foreach the RegisteredDependencyProperty[] array and force their registration.

As the old types are no longer used their instances will just lie down forever in the dictionary. New types will be registered as new entries in the dictionary, and have their static constructor called only once. And if you need to rebuild the type in RunClassConstructor, you will need to call re-registering of the previously registered dependency properties instead of force calling the static constructor. The only challenge here is to wrap all the dependency properties (when they're registered for the first time), so you can call their registration again when necessary for the specific type.
(0006985)
ai_enabled   
2021-01-21 20:28   
Further discussion in this ticket https://www.noesisengine.com/bugs/view.php?id=1897#bugnotes


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1898 [NoesisGUI] C++ SDK crash random 2021-01-21 16:38 2021-01-21 18:16
Reporter: steveh Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Non thread safe code in InspectorTextureProvider
Description: Hi guys, we're hitting an assert at random intervals when loading textures and creating bitmap image render proxies at runtime. The assert is coming from hashmap when we're growing the bucket container:

template<typename Bucket>
inline void HashMapImpl<Bucket>::InsertBucketsFrom(Bucket* src, uint32_t count)
{
    for (Bucket* it = src; it != src + count; ++it)
    {
        if (!it->IsEmpty())
        {
            // Insert the key/value into the new table.
            Bucket* bucket;
            bool found = FindInsertBucket(it->Hash(), it->key, bucket);
            NS_ASSERT(!found); // <--- HERE

            new (bucket) Bucket(MoveArg(*it));
            it->~Bucket();

            mNumEntries++;
        }
    }
}


So I double checked, all the buckets in the source were unique so something must have added the key during the while loop. It turns out that there are no locks in InspectorTextureProvider, so for example this runs on render thread:

Noesis::InspectorTextureProvider::OpenStream(const char * uri) Line 76 C++
Noesis::InspectorTextureProvider::LoadTexture(const char * uri, Noesis::RenderDevice * device) Line 196 C++
Noesis::VGLContext::CreateImage(const char * filename) Line 544 C++
Noesis::BitmapImageProxy::CreateImage(Noesis::RenderTree * tree) Line 45 C++
Noesis::ImageSourceProxy::GetImage(Noesis::RenderTree * tree) Line 34 C++
Noesis::ImageBrushProxy::UpdateImageSource(Noesis::RenderTree * tree, Noesis::ImageSourceProxy * is) Line 34 C++
Noesis::RenderTree::ProcessCommand(Noesis::RenderCommandId id, const void * data) Line 516 C++
Noesis::RenderTree::ProcessRenderCommands(const unsigned char * data, unsigned int size) Line 254 C++
Noesis::Renderer::UpdateRenderTree() Line 122 C++

And then we call Image::SetSource() on main thread:

InspectorTextureProvider::OpenStream(const char * uri) Line 76 C++
InspectorTextureProvider::GetTextureInfo(const char * uri) Line 164 C++
BitmapImage::UpdateImageInfo(const char * uri) Line 204 C++
BitmapImage::StaticFillClassType::__l2::<lambda>(Noesis::DependencyObject * d, const Noesis::DependencyPropertyChangedEventArgs & e) Line 249 C++
Delegate<void __cdecl(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::FunctorStub<void <lambda>(Noesis::DependencyObject *, const Noesis::DependencyPropertyChangedEventArgs &) >::Invoke(Noesis::DependencyObject * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 432 C++
Delegate<void __cdecl(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::DependencyObject * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 173 C++
DependencyObject::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 607 C++
Freezable::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & e) Line 235 C++
DependencyObject::Init() Line 536 C++
InitComponent(Noesis::IComponentInitializer * component, bool doInit) Line 41 C++
TemplateBindingExpression::Evaluate() Line 76 C++
DependencyObject::InternalSetExpression(const Noesis::DependencyProperty * dp, Noesis::Expression * newExpression, unsigned char priority) Line 676 C++
DependencyObject::InternalInvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 1109 C++
DependencyObject::InvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 291 C++
TemplateBindingExpression::OnTemplatedParentPropertyChanged(Noesis::BaseComponent * __formal, const Noesis::DependencyPropertyChangedEventArgs & args) Line 186 C++
Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::MemberFuncStub<Noesis::TemplateBindingExpression,void (__cdecl Noesis::TemplateBindingExpression::*)(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 469 C++
[Inline Frame] Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::BaseComponent *) Line 172 C++
Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::MultiDelegate::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 570 C++
Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 173 C++
Noesis::DependencyObject::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 608 C++
Noesis::Visual::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 905 C++
Noesis::UIElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 2013 C++
Noesis::FrameworkElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1660 C++
Noesis::Control::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 443 C++
Noesis::Image::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 137 C++
Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1260 C++
Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 894 C++
Noesis::DependencyObject::SetValue_<Noesis::Ptr<Noesis::ImageSource> >(Noesis::Int2Type<1> __formal, const Noesis::DependencyProperty * dp, Noesis::ImageSource * value, Noesis::Value::Destination destination) Line 195 C++
Noesis::DependencyObject::SetValue<Noesis::Ptr<Noesis::ImageSource> >(const Noesis::DependencyProperty * dp, Noesis::ImageSource * value) Line 60 C++
Noesis::Image::SetSource(Noesis::ImageSource *) Line 40 C++



Is this unintended behaviour? I can add locks in InspectorTextureProvider but I don't know if we're supposed to be calling SetSource from main thread, I assumed we were. E.g. we do the following in our game:

String szFullPath = "Assets/UI/Image1.png";
Ptr<BitmapImage> pImageSource = MakePtr<BitmapImage>(Uri(szFullPath.Str()));
pImageControl->SetSource(pImageSource);

This works almost all the time, the only time it doesn't is when the internal map in the InspectorTextureProvider asserts due to being mutated on multiple threads.

Any ideas? Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006978)
hcpizzi   
2021-01-21 18:16   
You're absolutely right, there was a race condition there. The TextureProvider is meant to be used from both threads, which leads to these problems, but your use is correct.

The issue is fixed in revision 9949.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1895 [NoesisGUI] C++ SDK major always 2021-01-20 17:15 2021-01-21 10:21
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Windows
Summary: [Inspector] Application crashes while inspecting menu item
Description: This seems to happen when Inspector is on the same machine as the inspected application, and when "Track focused element" is enabled.
Tags:
Steps To Reproduce: - Open an application which has menu, and connect Inspector to it
- Enable "Track focused element" on Inspector
- Open any of the application's menu
- Move mouse to any of the menu's item (or use arrow keys to navigate to a menu item), but do not click on the menu item (to keep the menu open) (Notice the menu item properties will be displayed on Inspector)
- Switch focus to Inspector (or any other application) (if you use mouse click to switch focus, be careful not to move the mouse across the menu bar as it will close the menu before focus is switched)
- Switch back to the application (Notice the application crashes)
Additional Information:
Attached Files:
Notes
(0006967)
sfernandez   
2021-01-20 17:23   
Thanks for the report, I think this is the same issue we just fixed in changeset 9940.
You have access to source code, right? Could you please integrate that changeset and see if your issue is solved?
(0006973)
satorp   
2021-01-21 10:09   
@sfernandez Yes, I've confirmed that it does fix this issue.
(0006974)
sfernandez   
2021-01-21 10:21   
Thanks for the confirmation, marking this as solved.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1893 [NoesisGUI] C++ SDK minor always 2021-01-19 18:32 2021-01-20 21:45
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: MultiBindings inside DataTemplate not working
Description: When a MultiBinding is defined inside a template the converter is not called and it doesn't work as expected.
<ItemsControl ItemsSource="{Binding Items}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <TextBlock>
        <TextBlock.Text>
          <MultiBinding Mode="OneWay" Converter="{StaticResource MultiConverter}">
            <Binding Source="{StaticResource Value1}"/>
            <Binding Source="{StaticResource Value2}"/>
          </MultiBinding>
        </TextBlock.Text>
      </TextBlock>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1892 [NoesisGUI] C++ SDK minor always 2021-01-19 16:02 2021-01-19 17:00
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.8  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: [Inspector] Mouse selection does not work well with menu items
Description: Mouse selection does not work well with menu items:
- The mouse selection highlight (red border) is not shown on menu items (but selection seems to work when clicking on menu item)
- When Inspector and the target application are on the same computer, switching to Inspector will close the opened menu, and the visual tree of the menu will disappear. Inspector will still show the tree, but clicking on any item besides the currently selected item will display nothing on the Properties pane.
Tags:
Steps To Reproduce: - Open any application which has menu
- Start Inspector and connect to the application
- Activate application's menu bar by clicking on any of its item
- Switch to Inspector and enable mouse selection
- Switch back to the application by clicking on its title bar (Notice the focus will be on any of the item on menu bar)
- Click on the currently active menu item (Notice the menu item will be highlighted by Inspector)
- Use keyboard (Down arrow or Enter key) to open the active menu
- Move mouse inside the opened menu (Notice that Inspector does not highlight items inside the menu but selection by clicking will still work)
- Move mouse outside of window and move back to the menu (Notice now the highlighting works again)
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1891 [NoesisGUI] C++ SDK minor always 2021-01-19 13:49 2021-01-19 13:56
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.10  
    Target Version: 3.0.10  
Platform: Any
Summary: Nine-slice ToolTips showing lines in the background when opened multiple times
Description: Using a nine-slice control for tooltips, and the background rectangles are not totally opaque, when the ToolTip is opened multiple times lines appear between those background rectangles.
Disabling PPAA globally makes this effect disappear, so it must be related.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ToolTipLines.png (5,043 bytes) 2021-01-19 13:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1365&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1839 [NoesisGUI] C++ SDK major always 2020-11-17 12:20 2021-01-14 13:14
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Windows
Summary: ListBoxItem selection is always reverted to the last focused item
Description: Consider two Views sharing a single VM which has an LBIndex property. Each View has a ListBox with its SelectedIndex bound to the VM's LBIndex property (ListBox1 on View1, and ListBox2 on View2).
- Click on 1st item of ListBox1 (→1st item of ListBox2 is also selected due to binding)
- Click on 2nd item of ListBox2 (→2nd item of ListBox1 is also selected due to binding)
- Activate View1 by clicking anywhere on the view (except on ListBox1)
- Notice that the 1st item of ListBox1 is automatically re-selected (and so is the 1st item of ListBox2)

It seems that ListBoxItem always tries to select itself on view activation when it's the last item that received the input focus before the view is deactivated. Since selection state and input focus are two different concepts, I think the selection should not be automatically set. This is also how it works on WPF.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006763)
sfernandez   
2020-11-17 12:34   
You mean you have different IView objects? Is this because you have different operating system windows?
(0006764)
satorp   
2020-11-17 13:20   
We have two windows, each with its own IView* (returned by Noesis::CreateView) of two XAML instances. The two XAMLs share the same VM instance.
(0006765)
sfernandez   
2020-11-17 14:10   
Ok, I checked with WPF and found that we are incorrectly changing selection when a ListBoxItem gets focus from code. WPF does not change list selection in that case. Will fix it for next release.
(0006766)
satorp   
2020-11-17 14:32   
Thank you for the quick response. When is the next scheduled release? In the mean time, do you have any suggestion for workaround?
(0006767)
sfernandez   
2020-11-17 16:06   
One workaround could be to remove the focus from the ListBoxItem before deactivating the view, that way, when it gets activated again, it won't restore the focus to the ListBoxItem and change the selection.
Could that work for the time being?
(0006854)
sfernandez   
2020-12-02 10:39   
Is the workaround a valid option for you? Can we lower the priority on this?
(0006855)
satorp   
2020-12-02 14:25   
(Last edited: 2020-12-02 23:56)
Sorry for late reply. I thought I've replied to this before, but don't know why the note was not added.
Thank you for the workaround suggestion, but currently it's difficult to implement in our system. We still have about 1-2 months time frame, so it's fine to lower the priority for now if we can get the fix by the next release.

(0006859)
sfernandez   
2020-12-03 14:07   
Fixed for the upcoming 3.0.8 version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1851 [NoesisGUI] Unity3D crash always 2020-12-01 08:50 2021-01-12 00:48
Reporter: NirHasson Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: macOS
Summary: Noesis 3.0.7 crash on Macbook Pro with AMD Radeon Metal Driver - Unity 2019.4.13f1
Description: When running Noesis on Macbook Pro with AMD Radeon graphic card the system hangs and eventually crashes.
See the attached log.
Tags:
Steps To Reproduce: Run a unity project with a Noesis view that utilizes offscreen rendering.
Seems like that crash occurs after the call to NoesisApp::MTLRenderDevice::SetOnScreenEncoder
Additional Information:
Attached Files: spivi01_noesis_crash_macOS_AMD_Radeon.txt (115,411 bytes) 2020-12-01 08:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1327&type=bug
spivi_crash.txt (118,302 bytes) 2020-12-07 15:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1340&type=bug
spivi_crash1.txt (113,866 bytes) 2020-12-11 18:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1343&type=bug
spivi_crash1-2.txt (113,866 bytes) 2020-12-11 18:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1344&type=bug
spivi_crash_strong.txt (116,929 bytes) 2020-12-11 18:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1345&type=bug
spivi_crash_builtin.txt (116,930 bytes) 2020-12-11 18:14
https://www.noesisengine.com/bugs/file_download.php?file_id=1346&type=bug
noesis.log (3,077 bytes) 2020-12-16 19:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1348&type=bug
tictactoe.txt (127,878 bytes) 2020-12-16 19:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1349&type=bug
Player.log (3,758 bytes) 2020-12-20 14:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1350&type=bug
noesis-2.log (34,629 bytes) 2020-12-22 16:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1351&type=bug
ticktac.txt (121,815 bytes) 2020-12-22 16:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1352&type=bug
noesis_tic_tac_works.log (164,645 bytes) 2020-12-30 13:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1357&type=bug
Notes
(0006843)
jsantos   
2020-12-01 11:00   
(Last edited: 2020-12-01 11:01)
We fixed a few crashes similar to this one in 3.0.7. Could you please confirm this is happening in 3.0.6?

(0006844)
NirHasson   
2020-12-01 11:04   
(Last edited: 2020-12-01 11:05)
This happened with the 3.0.7 debug version you've sent me and also with the 3.0.7 with the offscreen patch I've applied that fixed the other crash with the open MTL encoder.
EDIT: I mentioned 3.0.6 in the subject but it actually refers to 3.0.7, just updated the subject again, sorry for the confusion.

(0006845)
NirHasson   
2020-12-01 11:07   
(Last edited: 2020-12-01 11:09)
See the attached video.
https://www.dropbox.com/s/n17d1457ju1qdvz/Noesis_Crash_3.0.7_macOS.mp4?dl=0

(0006846)
jsantos   
2020-12-01 11:16   
I don't see anything special in the video, just a spinner : )

Is this your machine?
(0006847)
NirHasson   
2020-12-01 11:21   
I wish it was :) - it belongs to an end-user who's willing to help with testing.
There's a spinner, then the splash screen (Noesis simple XAML with animation and logo) is somehow able to be rendered for a second, and then when the main menu scene is being loaded it spins forever until it got crashed.
According to the log it crashes on calling to abort, but this seems like either a call being blocked or accessing an invalid address.

Thread 49 Crashed:: UnityGfxDeviceWorker
0 libsystem_kernel.dylib 0x00007fff6f10333a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6f1bfe60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff6f08a808 abort + 120
3 UnityPlayer.dylib 0x000000010c2d8452 0x10ba5a000 + 8905810
4 libsystem_platform.dylib 0x00007fff6f1b45fd _sigtramp + 29
5 libsystem_malloc.dylib 0x00007fff6f174057 nanov2_calloc + 81
6 Noesis.dylib 0x000000012285da64 NoesisApp::MTLRenderDevice::SetOnScreenEncoder(id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 164
7 Noesis.dylib 0x0000000122862e8d NoesisApp::MTLFactory::SetOnScreenEncoder(Noesis::RenderDevice*, id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 61
8 Noesis.dylib 0x0000000122e47513 Noesis::UnityDeviceMTL::BeginRender() + 307
9 Noesis.dylib 0x0000000122e434c8 Noesis_GetRenderOnscreenCallback::$_2::operator()(int, void*) const + 216
10 Noesis.dylib 0x0000000122e433db Noesis_GetRenderOnscreenCallback::$_2::__invoke(int, void*) + 27
11 UnityPlayer.dylib 0x000000010bea747f 0x10ba5a000 + 4510847
12 UnityPlayer.dylib 0x000000010c7ce51c 0x10ba5a000 + 14107932
13 UnityPlayer.dylib 0x000000010bea85d7 0x10ba5a000 + 4515287
14 UnityPlayer.dylib 0x000000010be9e09c 0x10ba5a000 + 4472988
15 UnityPlayer.dylib 0x000000010c23566c 0x10ba5a000 + 8238700
16 libsystem_pthread.dylib 0x00007fff6f1c0109 _pthread_start + 148
17 libsystem_pthread.dylib 0x00007fff6f1bbb8b thread_start + 15
(0006848)
jsantos   
2020-12-01 11:26   
I would say it is a 'out of memory' error (nanov2_calloc is aborting).

Could you please send me the exact 'libNoesis.so' this user is using? Because the notarizing process is altering the lib and I am not able to get a better callstack.
(0006849)
jsantos   
2020-12-01 11:27   
Or just send me the notarized app again. Thanks!
(0006856)
jsantos   
2020-12-02 19:07   
Hi Nir,

Could you please try reproducing the crash with this debug library?

https://drive.google.com/file/d/1KgVj95hI7qOjzK12XNqa60moEoPaELQd/view?usp=sharing

It contains more debug information that will help me.
(0006872)
NirHasson   
2020-12-06 12:20   
Did you get my previous links? I hope you'll be able to reproduce it on your end.
(0006873)
jsantos   
2020-12-06 14:18   
Hi Nir, there is a private message after yours, not sure if you read it
(0006874)
NirHasson   
2020-12-06 15:01   
Hi Jesus,

No, I don't see anything after the links I've sent.
(0006877)
jsantos   
2020-12-06 17:03   
Sorry, my fault, now you should see it
(0006879)
NirHasson   
2020-12-07 15:33   
Ok, it crashed immediately this time.
The log looks almost the same as it was with the previous debug lib you've sent me.


Thread 53 Crashed:: UnityGfxDeviceWorker
0 libsystem_kernel.dylib 0x00007fff6f10333a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6f1bfe60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff6f08a808 abort + 120
3 UnityPlayer.dylib 0x000000010285d212 HandleSignal(int, __siginfo*, void*) + 34
4 libsystem_platform.dylib 0x00007fff6f1b45fd _sigtramp + 29
5 libsystem_malloc.dylib 0x00007fff6f174057 nanov2_calloc + 81
6 Noesis.dylib 0x000000011e45d7b4 NoesisApp::MTLRenderDevice::SetOnScreenEncoder(id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 164
7 Noesis.dylib 0x000000011e462e6d NoesisApp::MTLFactory::SetOnScreenEncoder(Noesis::RenderDevice*, id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 61
8 Noesis.dylib 0x000000011ea47520 Noesis::UnityDeviceMTL::BeginRender() + 352
9 Noesis.dylib 0x000000011ea434a8 Noesis_GetRenderOnscreenCallback::$_2::operator()(int, void*) const + 216
10 Noesis.dylib 0x000000011ea433bb Noesis_GetRenderOnscreenCallback::$_2::__invoke(int, void*) + 27
11 UnityPlayer.dylib 0x0000000101d687ad GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&) + 41885
12 UnityPlayer.dylib 0x0000000102f9007c GfxDeviceWorkerAutoreleasePoolProxy + 60
13 UnityPlayer.dylib 0x0000000101d695b7 GfxDeviceWorker::RunExt(ThreadedStreamBuffer&) + 87
14 UnityPlayer.dylib 0x0000000101d5e1e8 GfxDeviceWorker::RunGfxDeviceWorker(void*) + 152
15 UnityPlayer.dylib 0x000000010273579c Thread::RunThreadWrapper(void*) + 1276
16 libsystem_pthread.dylib 0x00007fff6f1c0109 _pthread_start + 148
17 libsystem_pthread.dylib 0x00007fff6f1bbb8b
(0006880)
jsantos   
2020-12-09 15:22   
The new crash reveals a bit more information but it is not enough. The crash is happening when Metal is trying to acquire memory. I have been unable to reproduce this in any of my machines.

Just a few questions:

1. How many clients are having this crash?
2. In the given report I see the machine has two GPUs, could you try manually selecting each GPU (passing -force-device-index to Unity) to see if the error happens only in one of the GPU or in both?

Thanks!
(0006881)
jsantos   
2020-12-09 16:38   
More questions that may hep to narrow this:

1. Please, confirm this also happens on release builds of Noesis (3.0.8 already includes the offscreen patch if you want to try it)
2. Reading the description 'Run a unity project with a Noesis view that utilizes offscreen rendering', does it mean that this also happen with a minimal sample?
(0006882)
NirHasson   
2020-12-09 16:45   
- It happens on every Macbook pro machine with AMD GPU as far as we know.
- I'm not sure how to run it with the command line args as we wrap the unity app with an external app. According to the docs it is relevant only to the Editor:
  "-force-device-index When using Metal, make the Editor use a particular GPU device by passing it the index of that GPU (macOS only)."
- It happens with the offscreen patch as well.
- I'll have to verify it and send a sample build to test.
(0006883)
jsantos   
2020-12-09 17:06   
Could you please indicate a list of machines where this is happening? We need to buy a new device for this because I am not able to reproduce the issue.
(0006884)
NirHasson   
2020-12-09 17:23   
This is our tester device where it happens every time:
Device
MacBookPro16,1
OS Version
Mac OS X 10.15.7
CPU
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
GFX
AMD Radeon Pro 5300M

These are other machines that crash:
Device
MacBookPro16,1
OS Version
Mac OS X 10.15.7
CPU
Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
GFX
AMD Radeon Pro 5500M

Device
MacBookPro15,1
OS Version
Mac OS X 10.15.7
CPU
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
GFX
AMD Radeon Pro 560X

Device
MacBookPro16,1
OS Version
Mac OS X 10.15.7
CPU
Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
GFX
AMD Radeon Pro 5500M
(0006885)
jsantos   
2020-12-09 18:19   
By the way, "-force-device-index" is also listed in "Unity Standalone Player command line arguments"
(0006886)
jsantos   
2020-12-09 19:03   
I have created a new debug library, could you please try on your tester device?

https://drive.google.com/file/d/1QDT1QOda2xBI3y0IjN6ZenI3a4jzYOOy/view?usp=sharing
(0006891)
jsantos   
2020-12-11 16:36   
Hi Nir, anything new about this?
(0006894)
NirHasson   
2020-12-11 18:14   
Hi Jesus,

Yes, the tester checked the following and all got crashed:
1. Simple Tic Tac Toc scene - spivi_crash1.txt
2. Latest debug library with standard command line - spivi_crash2.txt
3. Latest debug library with device index 0 - spivi_crash_builtin.txt
4. Latest debug library with device index 1 - spivi_crash_strong.txt
(0006895)
jsantos   
2020-12-14 14:42   
Could you also attach Simple Tic Tac Toe with latest debug please?

I assume Simple Tic Tac Toe is just our example without modifications in a clean installation of Unity right?
(0006896)
jsantos   
2020-12-14 14:43   
If you could also attach the crash reports from those other machines you mention (not your tester)....
(0006897)
NirHasson   
2020-12-14 14:45   
Tic Tac Toe is your sample scene without any modification exported from our project.
I don't have the other crash reports, only the Unity version of them if it helps.
(0006898)
jsantos   
2020-12-14 15:13   
Could you please use Tic Tac Toe from a clean project? Just to make sure, this is not related to any project settings.

Regarding the other crash reports, nah, Unity version is not going to help. Thank you.

For now, all the information I have is extremely confusing and the call stack doesn't make sense.
(0006899)
jsantos   
2020-12-14 16:20   
I have also generated a new debug lib (number 3) that writes extra information at /tmp/noesis.log. Could you send it to your tester to get a crash and send me 'noesis.log' to get more information about the crash?

https://drive.google.com/file/d/1s2RUeCPwqjDnQ2Mg17KabvkStjDNvW41/view?usp=sharing
(0006900)
NirHasson   
2020-12-16 14:05   
Ok, I'll try that.
Where is the /tmp/noesis.log located? WIll it write to the root folder?
(0006901)
jsantos   
2020-12-16 14:13   
Yes, root folder. At least on my machine, it seems /tmp can be written by any process.
(0006902)
NirHasson   
2020-12-16 14:51   
Here's a link to a clean build with the latest build.
I can't find tmp/noesis.log anywhere on my machine.

https://spivi-cdn.s3.amazonaws.com/software/macOS/install/TicTacToe-1.0.0.pkg
(0006903)
jsantos   
2020-12-16 14:54   
Maybe doing this?

https://apple.stackexchange.com/questions/32377/how-do-i-browse-tmp-in-finder
(0006904)
NirHasson   
2020-12-16 15:19   
Yes, that works!
I just used the finder and it is not available at first glance unless you reveal it from the console.
(0006905)
jsantos   
2020-12-16 15:36   
Great! Let's see what happens on your tester machine. It should crash and provide useful information in noesis.log. Please provide both noesis.log and crash report.
(0006906)
NirHasson   
2020-12-16 19:40   
Here it is,
Clean unity project 2019.4.13f1, Noesis 3.0.8, latest debug lib.
Crashed immediately after the Unity splash screen.
(0006907)
jsantos   
2020-12-17 14:37   
I probably should have asked this before, but could you also attach the unity.log corresponding to the crash? (make sure it is a development build please)
(0006908)
NirHasson   
2020-12-18 09:23   
It is a development build for sure. I’ll ask the tester to send it next week
(0006909)
NirHasson   
2020-12-20 14:54   
Here it is.
(0006912)
jsantos   
2020-12-21 16:38   
(Last edited: 2020-12-21 16:40)
Hi!

Please, try this new debug library (version 4) to collect more information. Only testing with TicTacToe is enough, I only need the noesis.log file and crash file.

https://drive.google.com/file/d/1Up0-XDQJ3hjYpLiuakVu0Y7Tzo92ZLBX/view?usp=sharing

(0006913)
jsantos   
2020-12-21 16:42   
I am pretty sure this is already activated, but please, double check that

[x] Metal API Validation

is enabled in Player settings.
(0006914)
NirHasson   
2020-12-22 16:04   
Yes, metal validation is checked.
Here are the logs from the latest.
(0006916)
jsantos   
2020-12-24 11:40   
We are hitting a "Compiler encountered an internal error". Seems to be a bug in the driver. But with the information I have, let's see if we can find a workaround.

Please, try the following new debug library. Right now, I only need 'noesis.log'.

https://drive.google.com/file/d/1iOnYJO54GLheIC6SGBjIBVISMCVzdr7g/view?usp=sharing
(0006920)
NirHasson   
2020-12-30 07:07   
Seems like we lost our tester.
Is there any chance you can test on your end?
(0006921)
jsantos   
2020-12-30 10:24   
Hi Nir, we are not able to reproduce the issue on our devices. Are we 100% sure we lost the tester?

Let me see if I find a way to rent a similar mac.
(0006922)
NirHasson   
2020-12-30 11:40   
Almost 100%, I sent the latest build last Thursday and didn't get any response yet. I guess he simply lost his patience for doing this.
(0006923)
jsantos   
2020-12-30 11:43   
Yes, sorry about that. We are going to get one. By your comments it seems we can try any macbook pro with AMD Radeon GPU right?
(0006924)
NirHasson   
2020-12-30 11:47   
Yes, it looks like that.
See the logs for the full specs:

Model: MacBookPro16,1, BootROM 1554.60.15.0.0 (iBridge: 18.16.13030.0.0,0), 8 processors, 8-Core Intel Core i9, 2.4 GHz, 32 GB, SMC
Graphics: kHW_IntelUHDGraphics630Item, Intel UHD Graphics 630, spdisplays_builtin
Graphics: kHW_AMDRadeonPro5300MItem, AMD Radeon Pro 5300M, spdisplays_pcie_device, 4 GB
(0006925)
jsantos   
2020-12-30 12:27   
Just ordered this one

https://www.amazon.es/dp/B081G9YQ73/ref=es_a_macbook_3?th=1

I hope we are able to reproduce the issue. Let's keep fingers crossed : )
(0006926)
NirHasson   
2020-12-30 12:30   
Great, thanks for the update - it looks pretty consistent on our end, fingers crossed!
(0006927)
NirHasson   
2020-12-30 13:12   
You're probably going to kill me :)
The tester just got back to me and now the Tic Tac Toc game works.
(0006928)
jsantos   
2020-12-30 13:18   
It works because I modified the shader, trying to detect what part is causing the internal error in the compiler. These changes won't get correct text rendering.

Let me see if I can generate another patch, we are close.
(0006929)
jsantos   
2020-12-30 13:27   
I have generated two new debug libraries (6, 7):

https://drive.google.com/file/d/1vkPo_keGGrxbmU29pupp4FDs-PJA-s7W/view?usp=sharing
https://drive.google.com/file/d/1biYr3beRG8ZzdvYxxjIKNOSbjnHTp-LG/view?usp=sharing

Let see if the tester can try them. I only need noesis.log for each one.

I tried to generate this as fast as possible. : )
(0006933)
NirHasson   
2020-12-30 16:14   
Ok, created the builds and waiting for him.
Will keep you posted.
(0006942)
jsantos   
2020-12-31 14:21   
The new machine is here and I am able to reproduce the issue! So, we no longer need your tester. Thanks for the effort!

Could you also send me the latest version you sent to your tester?
(0006946)
jsantos   
2021-01-03 15:37   
Finally, we fixed this. Thanks a lot for your patience and amazing feedback. You can check the fix at

https://drive.google.com/file/d/1yhrfk9EOWBekg5kzO0PsCvxi4j3M_KxM/view?usp=sharing

Note this is still a debug library. We are planning a few more improvements and everything will be available with 3.0.9 (in a few days).
(0006948)
NirHasson   
2021-01-07 14:47   
Hi Jesus, Great news!
I missed the updates during the last week.

Here are the builds:
https://spivi-cdn.s3.amazonaws.com/software/macOS/install/TicTacToe-1.0.3.pkg
https://spivi-cdn.s3.amazonaws.com/software/macOS/install/TicTacToe-1.0.4.pkg

We've updated to Unity 2019.4.17 but I guess that won't be a problem.
(0006951)
jsantos   
2021-01-12 00:48   
I am going to close this, thanks again for the feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1875 [NoesisGUI] C++ SDK crash random 2021-01-07 16:29 2021-01-12 00:44
Reporter: tom1314 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Windows
Summary: Unknown random crash on DispatcherObject::VerifyAccess+0x3
Description: I have a random crash reported by some user. It shows the crash on "DispatcherObject::VerifyAccess+0x3". I guess it is cross thread accessing the UI object but after analyzing the minidump, I am sure that I am calling the view->Update() function from the correct thread.

The minidump is attached and I am using the latest public build of 3.0.8
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1871 [NoesisGUI] Unity3D crash always 2020-12-30 14:16 2021-01-07 21:22
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: Crash in editor.
Description: After editing a few unity resources and then going to play the game the editor crashes. I tried updating to 3.0.8 to see if it was fixed there but the game almost immediately crashed from something unrelated to this. I am also using a custom .dll given to me from this bug report: https://www.noesisengine.com/bugs/view.php?id=1806
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2020-12-30_002839518.zip (644,235 bytes) 2020-12-30 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1358&type=bug
Notes
(0006930)
jsantos   
2020-12-30 15:15   
Thanks for the report, could you please also create another ticket for this "I tried updating to 3.0.8 to see if it was fixed there but the game almost immediately crashed from something unrelated to this"
(0006931)
asusralis   
2020-12-30 15:29   
Sure: https://www.noesisengine.com/bugs/view.php?id=1872
(0006934)
sfernandez   
2020-12-30 16:34   
(Last edited: 2020-12-30 16:37)
The crash dump points to some code inside DirectX while creating a texture:

 	d3d11.dll!C10and11View<ID3D11DepthStencilView,ID3D10DepthStencilView>::C10and11View<ID3D11DepthStencilView,ID3D10DepthStencilView>	Unknown
     d3d11.dll!CShaderResourceView::CShaderResourceView	Unknown
     d3d11.dll!CDevice::CreateLayeredChild	Unknown
     d3d11.dll!NDXGI::CDeviceChild<IDXGISurface,IUnknown>::FinalConstruct	Unknown
     d3d11.dll!NDXGI::CDevice::CreateLayeredChild	Unknown
     d3d11.dll!NOutermost::CDevice::CreateLayeredChild	Unknown
     d3d11.dll!CDevice::CreateShaderResourceView_Worker	Unknown
     d3d11.dll!CDevice::CreateShaderResourceView	Unknown
>	Noesis.dll!NoesisApp::D3D11RenderDevice::WrapTexture Line 370	C++
     Noesis.dll!NoesisApp::D3D11Factory::WrapTexture Line 28	C++
     [Inline Frame] Noesis.dll!Noesis_WrapD3D11Texture Line 124	C++
     Noesis.dll!Noesis::UnityDeviceD3D11::WrapTexture Line 146	C++
     Noesis.dll!`anonymous namespace'::TextureProviderUnity::LoadTexture Line 604	C++
     Noesis.dll!Noesis::InspectorTextureProvider::LoadTexture Line 201	C++
     Noesis.dll!Noesis::VGLContext::CreateImage Line 547	C++
     Noesis.dll!Noesis::BitmapImageProxy::CreateImage Line 45	C++
     Noesis.dll!Noesis::ImageSourceProxy::GetImage Line 34	C++
     Noesis.dll!Noesis::RenderTreeHelper::DrawCommands Line 261	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderDraw Line 770	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive Line 730	C++
     ...
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren Line 787	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive Line 730	C++
     Noesis.dll!Noesis::RenderTreeHelper::Render Line 127	C++
     Noesis.dll!Noesis::RenderTree::Render Line 292	C++
     Noesis.dll!Noesis::Renderer::Render Line 225	C++
     Noesis.dll!Noesis::Renderer::Render Line 187	C++
     Noesis.dll!Noesis_GetRenderOnscreenCallback::__l2::<lambda> Line 445	C++
     Unity.exe!GfxDeviceWorker::RunCommand	Unknown
     Unity.exe!GfxDeviceWorker::RunExt	Unknown
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker	Unknown
     Unity.exe!Thread::RunThreadWrapper	Unknown
     kernel32.dll!BaseThreadInitThunk	Unknown
     ntdll.dll!RtlUserThreadStart	Unknown


We'll probably need more help from you to determine the cause of the crash, I'll let you know.

(0006935)
jsantos   
2020-12-30 17:25   
Is there a deterministic way to reproduce this?
(0006941)
sfernandez   
2020-12-31 13:18   
Now that I have your project, could you please indicate the steps I should follow to reproduce this crash?
Is it possible that it happens after modifying textures outside Unity?
(0006943)
asusralis   
2021-01-03 14:43   
Sorry, it seems I'm not getting an email when you reply to any thread.

>Is it possible that it happens after modifying textures outside Unity?

Yes, that is what's happening. I edit a few textures and go to play the game and it crashes.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1872 [NoesisGUI] C++ SDK crash always 2020-12-30 15:29 2021-01-07 18:58
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: Crash from clicking button
Description: When upgrading from 3.06 -> 3.0.8, a button makes Unity crash. It does not show any error and no crash logs are created.

Video of it happening, thought I don't know if it helps: https://files.catbox.moe/djagdk.mp4

It seems once I move my tooltip from the button it stops crashing, but it seems when I tried to add it back (out of playing) the editor crashed when the xaml was reimporting (?). My tooltip is a custom one that is made to follow the mouse.

public class SmartToolTip : ToolTip
    {
        private UIElement _targetElement;

        private TranslateTransform _transform;

        public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register("Header", typeof(string), typeof(SmartToolTip));

        public static readonly DependencyProperty HorizontalPlacementProperty = DependencyProperty.Register("HorizontalPlacement", typeof(HorizontalPlacement), typeof(SmartToolTip), new PropertyMetadata(HorizontalPlacement.Right));

        public static readonly DependencyProperty VerticalPlacementProperty = DependencyProperty.Register("VerticalPlacement", typeof(VerticalPlacement), typeof(SmartToolTip), new PropertyMetadata(VerticalPlacement.Top));

        public string Header
        {
            get => (string)GetValue(HeaderProperty);
            set => SetValue(HeaderProperty, value);
        }

        public HorizontalPlacement HorizontalPlacement
        {
            get => (HorizontalPlacement)GetValue(HorizontalPlacementProperty);
            set => SetValue(HorizontalPlacementProperty, value);
        }

        public VerticalPlacement VerticalPlacement
        {
            get => (VerticalPlacement)GetValue(VerticalPlacementProperty);
            set => SetValue(VerticalPlacementProperty, value);
        }

        private void UpdatePosition(Point position)
        {
#if UNITY_5_3_OR_NEWER
            //UnityEngine.Debug.Log($"X: {position.X}, Y: {position.Y}");
#endif
            Point spacing = new Point(40, 40);

            Point offset = new Point(
                HorizontalPlacement == HorizontalPlacement.Left ? -ActualWidth - spacing.X : spacing.X,
                VerticalPlacement == VerticalPlacement.Top ? 0 : -ActualHeight);

            HorizontalOffset = position.X + offset.X;
            VerticalOffset = position.Y + offset.Y;
        }

        private void PlacementTarget_MouseMove(object sender, MouseEventArgs e)
        {
            if(_targetElement != null)
            {
                var position = e.GetPosition(_targetElement);

                UpdatePosition(position);
            }
        }

        public SmartToolTip()
        {
            Opened += SmartToolTip_Opened;
            Closed += SmartToolTip_Closed;
            ToolTipClosing += SmartToolTip_ToolTipClosing;

            Loaded += (s, e) =>
            {
              
            };
        }

        private void SmartToolTip_Closed(object sender, RoutedEventArgs args)
        {
            if (_targetElement != null)
            {
                _targetElement.MouseMove -= PlacementTarget_MouseMove;
                SizeChanged -= SmartToolTip_SizeChanged;
                _targetElement = null;
            }
        }

        private void SmartToolTip_ToolTipClosing(object sender, ToolTipEventArgs args)
        {
            if (_targetElement != null)
            {
                _targetElement.MouseMove -= PlacementTarget_MouseMove;
            }
        }

        private void SmartToolTip_Opened(object sender, RoutedEventArgs args)
        {
            if(PlacementTarget != null)
            {
#if UNITY_5_3_OR_NEWER
               // UnityEngine.Debug.Log("Tooltip opened.");
#endif

                _targetElement = PlacementTarget;
                _targetElement.MouseMove += PlacementTarget_MouseMove;
                SizeChanged += SmartToolTip_SizeChanged;

                UpdatePosition(Mouse.GetPosition(_targetElement));
            }
        }

        private void SmartToolTip_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            UpdatePosition(Mouse.GetPosition(_targetElement));
        }

        static SmartToolTip()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(SmartToolTip), new FrameworkPropertyMetadata(typeof(SmartToolTip)));
        }
    }

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006932)
asusralis   
2020-12-30 15:42   
And here is the tooltip style:

    <Style TargetType="local:SmartToolTip">
        <Setter Property="Foreground" Value="Transparent" />
        <Setter Property="Background" Value="{StaticResource Window.Background}" />
        <Setter Property="BorderBrush" Value="{StaticResource Window.BorderBrush}" />
        <Setter Property="HorizontalPlacement" Value="Right" />
        <Setter Property="MaxWidth" Value="650" />
        <Setter Property="Placement" Value="Relative" />
        <Setter Property="VerticalPlacement" Value="Bottom" />
        <Setter Property="BorderThickness" Value="{StaticResource Window.BorderThickness}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:SmartToolTip}">
                    <local:NineSliceControl
                        MaxWidth="{TemplateBinding MaxWidth}"
                        Padding="5"
                        ImageSource="{StaticResource AltBorder}">
                        <Grid>
                            <StackPanel>
                                <TextBlock Text="{TemplateBinding Header}">
                                    <TextBlock.Style>
                                        <Style BasedOn="{StaticResource {x:Type TextBlock}}" TargetType="TextBlock">
                                            <Setter Property="Visibility" Value="Visible" />
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="{x:Null}">
                                                    <Setter Property="Visibility" Value="Collapsed" />
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </TextBlock.Style>
                                </TextBlock>
                                <ContentPresenter />
                            </StackPanel>
                        </Grid>
                    </local:NineSliceControl>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
(0006936)
sfernandez   
2020-12-30 17:33   
Using the provided class and style I'm not able to reproduce the crash.
If you could provide access to your repository again (in the past you gave me access to a branch named testme-dev) I can find the problem faster.
(0006937)
asusralis   
2020-12-30 19:23   
I think you still have access to it. Checkout 3.0.8-dev, play, start game, settle city, and click on any product in the city tab. Sometimes you need to move the cursor in the button after clicking it to have it crash.
(0006938)
asusralis   
2020-12-30 19:25   
Oh, you don't even need to click the button. I think the tooltip closing makes it crash.
(0006939)
sfernandez   
2020-12-31 11:49   
Thanks for the information, I'll check it right now.
(0006940)
sfernandez   
2020-12-31 13:12   
Found the problem, please try the following patched library:
https://drive.google.com/file/d/18XKLbZpANMsWm2oQW-kUknzfvN9mlxyn/view?usp=sharing
(0006944)
asusralis   
2021-01-03 14:48   
Yes, I believe that fixed it. Thanks!
(0006945)
asusralis   
2021-01-03 14:50   
Is there any reason why I'm not getting emails anymore? It seems like I should be looking at my preferences. I also keep receving this error when trying to reply to things: https://i.imgur.com/vOW8hhs.png
(0006947)
jsantos   
2021-01-03 20:18   
I fixed the error regarding the timeout. About not getting emails, sometimes it happens, I will check tomorrow if there is something wrong at our side.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1876 [NoesisGUI] Unreal crash sometimes 2021-01-07 18:56 2021-01-07 18:58
Reporter: sfernandez Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: LoadTexture crash in Unreal because it uses LoadObject in render thread
Description: There is a crash on LoadTexture and GetTexture with a message:
 > Unable to load /NTUI/Interface/Assets/ConstructionImages/DotGrid2x2_40x40. Objects and Packages can only be loaded from the game thread.

Here is a callstack:
> UE4Editor-CoreUObject.dll!LoadPackageInternal() Line 1066      C++
  UE4Editor-CoreUObject.dll!LoadPackage() Line 1427              C++
  UE4Editor-CoreUObject.dll!ResolveName() Line 767          C++
  UE4Editor-CoreUObject.dll!StaticLoadObjectInternal() Line 829        C++
  UE4Editor-CoreUObject.dll!StaticLoadObjectInternal() Line 880        C++
  UE4Editor-CoreUObject.dll!StaticLoadObject() Line 904        C++
  [Inline Frame] UE4Editor-NoesisRuntime.dll!LoadObject() Line 1327      C++
  UE4Editor-NoesisRuntime.dll!FNoesisTextureProvider::GetTexture() Line 72 C++
  UE4Editor-NoesisRuntime.dll!FNoesisTextureProvider::LoadTexture() Line 94   C++
  [External Code]
  UE4Editor-NoesisRuntime.dll!UNoesisInstance::NativePaint::__l5::<lambda>() Line 651      C++
  ...


It looks that the crash is caused by referencing an image that has been unloaded to GC.

The issue is only happening in Standalone version and not in PIE
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1415 [NoesisGUI] C++ SDK block always 2019-02-27 07:23 2020-12-24 12:58
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0b6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Drawing Path takes a very long time when the pitch is less than 0.5 pixel
Description: We have a scenario where we draws a line path from approx 1000~2000 points, and in some cases NoesisGUI rendering became very slow to more than 500 ms (less than 2 fps).

We tracked down the problem and it seems that it happens when the pitch of the points are less than 0.5 pixel.
I attached the sample XAML and cpp that reproduce the problem and the screen shot. Please adjust the bar so that the pitch length becomes less than 0.5.


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: DataBinding.cpp (3,807 bytes) 2019-02-27 07:23
https://www.noesisengine.com/bugs/file_download.php?file_id=975&type=bug
DataBinding.xaml (1,353 bytes) 2019-02-27 07:23
https://www.noesisengine.com/bugs/file_download.php?file_id=976&type=bug
PathRenderingSlow.PNG (7,991 bytes) 2019-02-27 07:23
https://www.noesisengine.com/bugs/file_download.php?file_id=977&type=bug
HotSpot.PNG (58,163 bytes) 2019-02-27 07:47
https://www.noesisengine.com/bugs/file_download.php?file_id=978&type=bug
NoesisPathSlow.patch (24,151 bytes) 2020-09-07 14:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1294&type=bug
Notes
(0005484)
nikobarli   
2019-02-27 07:47   
I ran ETW to find the hotspot.
(0005487)
jsantos   
2019-03-01 13:21   
The tessellator is going nuts at that resolution. I will have a look at it later. Meanwhile could you limit the pitch length?
(0005490)
nikobarli   
2019-03-02 02:45   
We are still away from release date, so I think we can wait for the fix.
(0006614)
nikobarli   
2020-09-04 06:33   
Hi Jesus,

Is there any update on this ? We deferred implementing a feature to the next version due to this.
Is is possible to have this fix in Noesis 3.0.x ?
(0006615)
jsantos   
2020-09-04 17:11   
Hi Niko,

No updates yet sorry about it. Yes, I want to have this fixed in 3.0.X

Do you think it is possible to pack a minimal application reproducing the issue?

Thanks!
(0006617)
nikobarli   
2020-09-07 14:42   
Hi Jesus,

I attached a patch for your HelloWorld demo program (Noesis version 2.x).
Please adjust the slider to make the pitch lower than 0.5 to reproduce the problem.
(0006851)
jsantos   
2020-12-01 18:20   
Hi Niko, I am already working on this, the internal tessellator is being optimized. I will keep you posted.
(0006910)
jsantos   
2020-12-21 13:25   
(Last edited: 2020-12-21 13:27)
Hi Niko, we have a new tessellator, it is around 10x faster that the current one. I have been trying your scenario today and although it is a lot faster it is still inefficient. The main reason is that when pitch goes under 0.5 the lines (stroked lines) start to auto-intersect and generate a lot of extra points. There are ways to improve this in the tessellator, but it is going to add more overhead to normal cases so I don't think that's a good idea.

There are different solutions to solve this very efficiently. First, in 3.1 we are improving the *OnRender* virtual call to be very fast. So, once we have that in that 3.1 we recommend moving your code to *OnRender* and draw all the lines you need there.

While you are in 3.0, I recommend the following:

- Use MeshGeometry class to manually generate vertices and indices for your path. That way, we avoid the tessellator and the stroker. This solution is also very fast but a bit cumbersome in comparison with *OnRender*.
- Probably under a pitch of 0.5 you want to render a solid quad, beacuse at that point you barely see the lines and they generate a lot of aliasing.

Please, let me know your thoughts. The new tessellation is being integrated into /trunk/ this week.

(0006911)
jsantos   
2020-12-21 13:41   
(Last edited: 2020-12-21 13:42)
I also was able to slightly improve the efficiency of your code by generating individual lines instead of connected lines. This generates less geometry as the join is avoided.

void setupPath()
{
    float yBase = 50;
    m_pitch = (float)m_length / (float)m_count;

    m_pathData = MakePtr<StreamGeometry>();
    StreamGeometryContext context = m_pathData->Open();

    Point last = Point(0, yBase);

    for (int i = 0; i < m_count; i++) {
        float x = i * m_pitch;
        float y = yBase + (((i % 2) == 0) ? 10 : -10);

        context.BeginFigure(last, false);
        context.LineTo(Point(x, y));
        last = Point(x, y);
    }
    context.Close();

    OnPropertyChanged("Pitch");
    OnPropertyChanged("PathData");
}


(0006915)
nikobarli   
2020-12-23 01:00   
Hi Jesus,

Thank you for the update.

We confirm that the workaround for 3.0 using MeshGeometry is feasible for us.
So I think you can go forward with your plan.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1864 [NoesisGUI] C++ SDK feature have not tried 2020-12-22 20:55 2020-12-22 20:56
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: Add an interactivity action to load xaml files dynamically
Description: It would be very useful to create an action that loads xaml files without creating code-behind classes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1856 [NoesisGUI] C++ SDK feature always 2020-12-09 07:29 2020-12-14 11:38
Reporter: Logris Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.8  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: D3D11Factory::WrapTexture wrap _UNTYPLESS textures
Description: Hi,
NoesisApp:: RenderContext created with sRGB flag

Engine RenderTarget has the formats:
 Texture2D - DXGI_FORMAT_R8G8B8A8_TYPELESS,
ShaderResourceView - DXGI_FORMAT_R8G8B8A8_UNORM

NoesisApp::D3D11Factory::WrapTexture (...) creates a ShaderResourceView DXGI_FORMAT_R8G8B8A8_UNORM format for such a texture, as a result
Noesis :: Image will be highlighted. If you create a ShaderResourceView in the DXGI_FORMAT_R8G8B8A8_UNORM_SRGB format, then the texture will be displayed without re-highlighting.

I suggest adding the asSRGB parameter to the WrapTexture method:
WrapTexture(ID3D11Texture2D* texture, uint32_t width, uint32_t height, uint32_t levels, bool isInverted, bool asSRGB)
{
   if(asSRGB) {
       create ShaderResourceView in DXGI_FORMAT_R8G8B8A8_UNORM_SRGB format
     } else {
           create ShaderResourceView DXGI_FORMAT_R8G8B8A8_UNORM format
      }
}

I also suggest adding an overloaded version:
WrapTexture(ID3D11ShaderResourceView* view, uint32_t width, uint32_t height, uint32_t levels, bool isInverted, bool asSRGB);
Tags: C++, Directx11
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1316 [NoesisGUI] Unity3D minor always 2018-06-27 16:43 2020-12-11 16:34
Reporter: mingingmingler Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: OpacityMask doesn't support VisualBrush even when binding an existing element to Visual
Description: I'm trying to implement a simple color tint for flat shaded vector icons without having to dig into the graphic resource definitions to bind colors to the paths. This involves using a Grid with the appropriate color set to the Background, and then using an OpacityMask with the VisualBrush bound to an element with the vector icon in it.

According to this post https://www.noesisengine.com/forums/viewtopic.php?t=770#p4234 and this resource http://www.noesisengine.com/docs/Gui.Core._VisualBrush.html VisualBrush should support binding to a Visual, but Unity throws the following error when trying to use it:

NoesisException: VisualBrush not supported yet as OpacityMask brush
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.View.Noesis_View_Update_ (System.Runtime.InteropServices.HandleRef view, System.Double timeInSeconds) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:529)
Noesis.View.Update (System.Double timeInSeconds) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:294)
NoesisView.LateUpdate () (at Assets/NoesisGUI/Plugins/NoesisView.cs:674)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006889)
ai_enabled   
2020-12-11 15:51   
Hi guys,
I wish you will finally add support for this useful feature!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1853 [NoesisGUI] Unity3D crash always 2020-12-04 16:12 2020-12-11 12:13
Reporter: blafollette Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Windows
Summary: Unity crash being caused by a ListView ScollViewer style's GridViewHeaderRowPresenter element
Description: In our Unity project, we have a ListView with a style targeting type ScrollViewer. In the ScrollViewer element inside a ControlTemplate part of the style, we have a GridViewHeaderRowPresenter.

What we're seeing is that this setup works just fine in WPF, but in Unity (either editor or build) viewing the pages which use the ListView control described above, we quickly get a crash with the following description:

[Code]
Description:
Faulting application name: Unity.exe, version: 2019.4.9.65162, time stamp: 0x5f3b4240
Faulting module name: ucrtbase.dll, version: 10.0.18362.1110, time stamp: 0xb4cacc38
Exception code: 0xc0000409
Fault offset: 0x000000000006dace
Faulting process id: 0x6080
Faulting application start time: 0x01d6a78595d5865b
Faulting application path: D:\Unitys\2019.4.9f1\Editor\Unity.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
[/Code]

This happens with no more specification than:

[Code]
<ScrollViewer Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" PanningMode="HorizontalFirst">
    <GridViewHeaderRowPresenter/>
</ScrollViewer>
[/Code]

If we remove <GridViewHeaderRowPresenter/> from the style declaration, the crash no longer occurs.

NOTE: I haven't been able to find any .dmp file associated with the crash. Attached are the Windows Event Viewer log of the error, and the player.log from the compiled Unity build of the project from when the app crashed with this error.

I have also attached a copy of the callstack from attaching VS after a crash, and the final exit point source as given from the pdb for ucrtbase.dll
Tags:
Steps To Reproduce: 1. Add the attached page with the list view and the attached style page to a project
2. add at least one other page to allow navigation back and forth to the list view page.
3. navigate back and forth, causing the list view page to load multiple times
4. eventually the crash will occur
Additional Information:
Attached Files: ListViewControlPage.xaml (881 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1331&type=bug
Style.xaml (1,174 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1332&type=bug
EventViewer.log (1,994 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1333&type=bug
Player.log (69,941 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1334&type=bug
purevirt.cpp (1,099 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1335&type=bug
VS_callstack.txt (968 bytes) 2020-12-04 16:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1336&type=bug
VS_Unity_callstack.txt (1,835 bytes) 2020-12-04 16:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1337&type=bug
Unity.dmp (1,740,670 bytes) 2020-12-04 18:04
https://www.noesisengine.com/bugs/file_download.php?file_id=1338&type=bug
Unity_2.dmp (1,771,051 bytes) 2020-12-04 19:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1339&type=bug
Notes
(0006862)
blafollette   
2020-12-04 16:23   
Here's a copy of the callstack from Visual Studio attached to the UnityEditor after the crash.
(0006863)
sfernandez   
2020-12-04 17:16   
When Unity crashes it usually shows a crash dialog with the information of the crash, and it creates a folder under C:\Users\%UserName%\AppData\Local\Temp\Unity\Crashes with the logs and a .dmp file that we can use debug the crash.
If Unity closes without showing that dialog then you can run Unity and attach Visual Studio so when the crash occurs and pauses on Visual Studio you can go to menu "Debug > Save Dump As.." to save a minidump.

In the meantime I will try to reproduce the crash with the provided xaml and style, thanks.
(0006864)
blafollette   
2020-12-04 17:20   
Unity definitely crashes without it's usual crash dialogue. I'm able to attach with Visual Studio, so I'll try reproducing it again and get Visual Studio to save out the dump as suggested.
(0006865)
blafollette   
2020-12-04 17:45   
So, I saved a .dmp file, but it's 2.3 Gbs(?!) I don't know if I can reliably upload it here, but I can try if you feel it will help. Alternately if there's some other place I could try dropping it, let me know.
(0006866)
sfernandez   
2020-12-04 17:54   
That looks like you are saving a full dump, can you save a Minidump?
If you don't get that option please upload the dump to Google Drive or similar, I'll let you know when I download it so you can delete the file.

By the way, I was not able to reproduce the crash with our recently released 3.0.8 version and Unity 2020. Which version of Noesis and Unity are you using?
(0006867)
blafollette   
2020-12-04 18:04   
Ok, apparently I accidentally included the heap in the last one. (oops!) I've attached the much more manageably sized one this time.
(0006868)
sfernandez   
2020-12-04 19:12   
I think I found the source of the crash, could you please try the following patched library?
https://drive.google.com/file/d/1HrvvrX09lE_EDND4KQSiLi40jS4o6oQ4/view?usp=sharing

Let me know if it works as expected.
(0006869)
blafollette   
2020-12-04 19:56   
That seems like it's improved the length of time before the crash occurs, but the crash still occurs. I've attached the latest .dmp file.

I also forgot to specify previously, but our project is using Unity 2019.4.9
(0006870)
sfernandez   
2020-12-05 00:28   
Added a few more checks, let's see if now I'm on the right path:
https://drive.google.com/file/d/1cLDWEWR8__JTt9qkSzZCiZ2DWy4VKCBv/view?usp=sharing

As before, if it continues crashing, please send the dumps, they are really helpful.

Thanks your collaboration.
(0006878)
blafollette   
2020-12-07 09:41   
That seems to have gotten it! I was unable to get the crash to happen with that DLL! So, no more dumps for now ;) but thank you so much for your help with this! It was my pleasure to collaborate for my part, as small as it was. :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1291 [NoesisGUI] C# SDK minor always 2018-04-17 15:43 2020-12-07 10:41
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.9  
    Target Version: 3.0.9  
Platform: Any
Summary: Textures rendering issues (unexplainable seams)
Description: Hi guys,

the problem is presented in the attached screenshots:
screenshot #1 - how it looks in our game (when each rectangle has a 40x40 pixels simple white texture)
screenshot #2 - the issue is more obvious and perhaps give you some ideas... (I'm using an image #4 (TestWhiteRect) as a Texture Brush)
screenshot #3 - I've replaced texture brush everywhere with Brushes.White

As you can see the background visible through seams between rectangle elements:
1. But there are should be no seams. I've tried assigning Brushes.White instead of my texture brush and indeed there are no seams! So this is related to how you render textures, not the positioning/render meshing of the rectangles.
2. I've verified that it's the background permeating in seams (as I tried a different color for the background element and can see this color permeating).
3. The issue is visible even if zoom-in (with transform, very closely). It's still a small seam between elements. UPD. See my comment below!
4. RenderOptions.SetBitmapScalingMode(rectangle, BitmapScalingMode.NearestNeighbor) disables linear texture filtering but the issue still appears (all the screenshots with seams are made with the NearestNeighbor mode).
5. UseLayoutRounding is false for every rectangle and their parent panel control (which is a canvas).

I think it might be related to how you perform UV mapping or wrapping mode/bordering mode during texture rendering... however I'm really not sure how a semi-transparent pixel might appear in that case.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: 1.Problem.png (4,911 bytes) 2018-04-17 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=933&type=bug
2.ProblemHowItRendered.png (5,405 bytes) 2018-04-17 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=934&type=bug
3.WhenRenderingWithoutTextureBrush.png (4,269 bytes) 2018-04-17 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=935&type=bug
4.TestWhiteRect.png (17,733 bytes) 2018-04-17 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=936&type=bug
Screenshot at 20-53-21.png (10,005 bytes) 2018-04-17 15:55
https://www.noesisengine.com/bugs/file_download.php?file_id=937&type=bug
wpf-blackbg.png (19,009 bytes) 2020-12-04 12:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1328&type=bug
wpf-redbg.png (20,153 bytes) 2020-12-04 12:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1329&type=bug
wpf-solidwhite.png (16,490 bytes) 2020-12-04 12:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1330&type=bug
Notes
(0005192)
ai_enabled   
2018-04-17 15:55   
Though to consider - the size of seam is independent from the zoom (which is performed using ScaleTransform) and always about 1 device pixel. See the attached screenshot (remember that visible magenta rectangle is formed by four neighboring magenta pixels of the test texture (image #4 above)).
(0005193)
jsantos   
2018-04-18 19:37   
Thanks for all this information! Could you also please attach a frame snapshot using the D3D frame debugger? (visual studio -> Debug -> Graphics -> Start Graphics Debugging)
(0005207)
jsantos   
2018-06-01 22:33   
Thanks for the debug session!

And congrats for the momentum you are talking about. You deserve it!
(0006860)
ai_enabled   
2020-12-04 01:13   
(Last edited: 2020-12-04 01:13)
I still wonder what's causing this issue when using a texture brush yet it's not reproducible with a solid color brush.

(0006861)
sfernandez   
2020-12-04 12:01   
(Last edited: 2020-12-04 12:02)
This problem can also be reproduced in WPF and the source of it is that contiguous rectangles don't share the same vertices, so imprecisions can leave small holes between them letting the background be visible sometimes (you can resize the window and holes appear and disappear).
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  UseLayoutRounding="False"
  Background="Black">
  <Grid.Resources>
    <ImageSource x:Key="whiteImg">white.png</ImageSource>
    <ImageBrush x:Key="whiteImgBrush" ImageSource="{StaticResource whiteImg}" Stretch="None" TileMode="FlipXY"/>
  </Grid.Resources>
  <Canvas Width="400" Height="400">
    <Canvas.RenderTransform>
      <TranslateTransform X="0.5" Y="0.5"/>
    </Canvas.RenderTransform>
    <Rectangle Canvas.Left="000" Canvas.Top="000" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="100" Canvas.Top="000" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="200" Canvas.Top="000" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="300" Canvas.Top="000" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="000" Canvas.Top="100" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="100" Canvas.Top="100" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="200" Canvas.Top="100" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="300" Canvas.Top="100" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="000" Canvas.Top="200" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="100" Canvas.Top="200" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="200" Canvas.Top="200" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="300" Canvas.Top="200" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="000" Canvas.Top="300" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="100" Canvas.Top="300" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="200" Canvas.Top="300" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
    <Rectangle Canvas.Left="300" Canvas.Top="300" Width="100" Height="100" Fill="{StaticResource whiteImgBrush}"/>
  </Canvas>
</Grid>


You can see the attached images produced by that xaml in Blend. The last one is using a SolidColorBrush, so you can see it is not a problem with textures.

The only way to avoid those holes is by using a single mesh (Rectangle) and tile the texture.

(0006871)
ai_enabled   
2020-12-05 01:28   
(Last edited: 2020-12-05 01:29)
Hi Sergio,
thank you for your response and time spent to make a sample. I've totally forgotten that WPF exists when reported this! :-)

That's what I've suspected based on my previous experience by rending tiled terrain in CryoFall. After that, we've switched to a shader-based approach to draw a properly tiled terrain.

I was surprised I cannot see the seams when rendering tiles with SolidColorBrush though...In WPF there are indeed seams in either case.

I'm reworking the map to use large chunks with render textures, and will add a coordinate grid to hide the stitches! :-)
Please close this ticket.

Regards!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1841 [NoesisGUI] Unity3D major always 2020-11-20 18:09 2020-12-03 12:27
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: NoesisPostProcessor Fails Importing Fonts
Description: I am unable to import the following two fonts within the same project. I tried placing each font in a different directory but it fails.

IOException: Sharing violation on path D:\Source\MBI.CustomerSelect.Unity\MBI.CustomerSelect.Unity.Project\Assets\User Interface\Fonts2\Proforma-SemiBold_36608.ttf
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) (at <9577ac7a62ef43179789031239ba8798>:0)
System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) (at <9577ac7a62ef43179789031239ba8798>:0)
(wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
System.IO.File.Open (System.String path, System.IO.FileMode mode, System.IO.FileAccess access) (at <9577ac7a62ef43179789031239ba8798>:0)
NoesisPostprocessor.ScanFont (System.String uri, System.Collections.Generic.List`1[NoesisFont]& fonts) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:188)
NoesisPostprocessor+<>c__DisplayClass14_0.<ScanDependencies>b__0 (System.String uri, Noesis.XamlDependencyType type) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:263)
UnityEngine.Debug:LogException(Exception)
<>c__DisplayClass14_0:<ScanDependencies>b__0(String, XamlDependencyType) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:280)
Noesis.GUI:OnXamlDependency(Int32, IntPtr, Int32) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:420)
Noesis.GUI:Noesis_GetXamlDependencies(HandleRef, String, Int32, NoesisXamlDependencyCallback)
Noesis.GUI:GetXamlDependencies(Stream, String, XamlDependencyCallback) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:241)
NoesisPostprocessor:ScanDependencies(String, List`1&, List`1&, List`1&, List`1&) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:251)
NoesisPostprocessor:ImportXaml(String, Boolean, Boolean, Boolean&) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:333)
NoesisPostprocessor:ImportXaml(String, Boolean, Boolean, Boolean&) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:353)
NoesisPostprocessor:ImportAssets(String[], Boolean, UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:55)
<>c__DisplayClass4_1:<OnPostprocessAllAssets>b__0() (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:110)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
Tags:
Steps To Reproduce: Add fonts to Unity project w/ Noesis installed.

Encl. AngryFonts.zip

Additional Information:
Attached Files: AngryFonts.zip (74,252 bytes) 2020-11-20 18:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1321&type=bug
Notes
(0006785)
sfernandez   
2020-11-20 18:17   
Those two .ttf files refer to the same family name "Proforma", but I was able to import them to the Unity project by adding them to different folders.
The error you are getting is originated when a xaml gets imported (I guess using those fonts), could you please share how are you referencing them in the xaml?
(0006786)
sfernandez   
2020-11-20 18:32   
Just to make it clear, I meant that both ttfs have the same family name and weight (400) so if you import both in the same directory, only the first registered one will be in fact used.
If you edit for example Proforma-Medium.ttf with a program like FontForge to set its Weight to 600 then both fonts can be imported in the same directory and used in xaml by selecting the corresponding FontWeight.
(0006791)
sfernandez   
2020-11-23 11:53   
I've been doing some tests and I was able to reproduce that "Sharing violation" exception by having the font opened in windows and then reimporting the xaml in Unity.

To fix this I had to change how we open files in NoesisPostprocessor adding "FileShare.Read":

line 188: using (FileStream file = File.Open(font, FileMode.Open, FileAccess.Read, FileShare.Read))
line 248: using (FileStream file = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read))

This should work, could you try it yourself until we release a new version?
(0006809)
stonstad   
2020-11-24 02:07   
Hi Sergio -- I was referencing both versions like this:

    <FontFamily x:Key="Proforma">Fonts/#Proforma</FontFamily>
    <FontFamily x:Key="ProformaSemiBold">Fonts2/#Proforma</FontFamily>

The fonts conflicted despite existing in a different directory. To my knowledge, the font was not open in a third-party program other than Unity.
(0006810)
stonstad   
2020-11-24 02:07   
I'll try your proposed change.
(0006835)
sfernandez   
2020-11-26 18:36   
Did you try the fix?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1568 [NoesisGUI] C++ SDK minor always 2019-10-14 13:53 2020-12-02 20:44
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.8  
Platform: Any
Summary: Italic fonts have incorrect bounds
Description: Hi guys,

We're having issues with the bounds of text being incorrectly calcualted with italic fonts. Interestingly, the behaviour demonstrated in Noesis is identical to Blend, so I'm guessing this is an issue with how WPF treats text.

I'm attaching a XAML document which can be loaded upo in the XAML Player to demonstrate the issue.

So it looks like the bounds for textblocks use the base of the text to calculate the bounds. Italic fonts clip outside these bounds. If we align the textblock to the right of the screen then the text goes over the edge of the container. If we force the text to be rendered offscreen by setting the opacity to a value other than 1.0 then when the offscreen texture is blended with the main back buffer the region is not correctly clipped and you see a hard edge. I understand why it's doing this, but it looks a little odd. I'm not sure on a good fix here.

Is there a workaround? If not, do you see this as requiring a fix since this pretty much behaves identically to how Blend handles italic fonts.

Cheers,

-Steven
Tags:
Steps To Reproduce: 1. Create a textblock, add some text.
2. Set the font family to an italic font
3. Change the opacity on the text block to 0.5
4. Notice that the edge of the text is incorrectly clipped.

See my attached XAML document as a demonstration of this.
Additional Information:
Attached Files: nebulari mono.otf (6,284 bytes) 2019-10-14 13:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1117&type=bug
Test.xaml (1,724 bytes) 2019-10-14 13:53
https://www.noesisengine.com/bugs/file_download.php?file_id=1118&type=bug
italicbug.png (2,217 bytes) 2019-10-18 14:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1123&type=bug
Notes
(0005998)
sfernandez   
2019-10-18 14:24   
Trying this sample in our XamlPlayer I see that individual glyphs are correctly rendered (each glyph texture bounds is correct), but it seems the "advance" is designed so next glyph overlaps previous one and that is why the whole text bounds width is less than expected.

I wonder if this is not something that should be done with kerning instead, I mean, advance should be the width of the glyph texture, but kerning should be defined to change how one glyph is positioned in relation to the previous one.

Could you help here @jsantos?
(0006000)
jsantos   
2019-10-23 07:13   
I understand what is going on here. The bounding box in the main thread is calculated using the 'advances' of the glyphs. This is done this way, and probaly the same reason WPF is doing the same, because in the main thread there is no information about rendering (so calculating the bounding box from the beziers could add extra overhead). But it seems a bug to me (both in Noesis and WPF) and with the extra problem that it is affecting our opacity algorithm (WPF seems to be doing this right) so the problem is worse than WPF.

I need to find an efficient solution for this.
(0006700)
steveh   
2020-10-23 15:39   
Hi guys, has any progress been made on this issue? We've been appending spaces to strings to our strings for a while but we've just started implementing localisation and I'd like to see if we can fix this properly.

Much appreciated,

-Steven
(0006701)
jsantos   
2020-10-23 17:45   
(Last edited: 2020-10-23 17:46)
Hi Steve, we still don't know how to solve this but thanks for the reminder. I am increasing the priority, there are a few ideas I want to try,

(0006711)
jsantos   
2020-10-29 18:01   
(Last edited: 2020-10-29 18:05)
Hi Steve,

We tried adjusting the bounds with the real beziers, but we are not sure this is the right solution. There are scenarios, like for example a text that has normal and italic runs intermixed where the changes in the bounds doesn't look right. In fact, we tried WPF, UWP and HTML5 and all of them behaves the same about this (text is drawn out of the box).

Another approach is being able to "hack" a font by setting global modifiers to advance and kerning. Tweaking these values, we had a result that is probably valid, but we are not sure about how to expose this font hack (in the fontprovider?)

Probably we should have a quick talk about this if you have time.

(0006712)
steveh   
2020-10-29 18:16   
Cheers Jésus, sure thing. We've got a milestone tomorrow so I'm a little busy this week, but I'll be free for a chat any time next week. We already override the font provider so allowing us to specify values there seems like a fine solution to me.
(0006720)
sfernandez   
2020-11-10 19:30   
(Last edited: 2020-11-10 19:31)
We are working on the optimization we talked the other day to automatically move single element Opacity to the draw commands without requiring an opacity group.
This will fix the problem you are seeing when animating the opacity of right aligned italic text that appears now clipped.
But we are thinking, why can't you just animate the Opacity of the Brush in those situations? It is exactly the same kind of animation, but instead of Opacity property, you will animate Foreground.Opacity (or whatever brush property you want to change). Isn't that a valid solution for now?

(0006857)
sfernandez   
2020-12-02 20:44   
Implemented the optimization to avoid generating offscreen textures for single node opacity groups.
This will fix your problem when animating the Opacity of right-aligned italic TextBlocks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1812 [NoesisGUI] Unity3D crash always 2020-10-16 18:50 2020-12-02 10:37
Reporter: agrebenskov Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: MultiBinding with converter in DataTrigger crashes Unity
Description: When I use DataTrigger inside ControlTemplate with multi binding Unity crashes.
Tags: C#, Unity
Steps To Reproduce: Sample code:

<ControlTemplate.Triggers>
             <DataTrigger Value="True">
              <DataTrigger.Binding>
                <MultiBinding Converter="{StaticResource TestConverterConverter}" Mode="OneWay" >
                  <MultiBinding.Bindings>
                    <Binding ElementName="comboboxButton"/>
                    <Binding ElementName="comboboxButton" Path="IsChecked"/>
                    <Binding ElementName="popupContent" Path="ActualHeight"/>
                  </MultiBinding.Bindings>
                </MultiBinding>
              </DataTrigger.Binding>
              <DataTrigger.Setters>
                <Setter TargetName="SmoothComboBoxBorder" Property="BorderThickness">
                  <Setter.Value>
                    <MultiBinding Converter="{StaticResource ComboboxThicknessConverter}">
                      <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="BorderThickness.Left"/>
                      <Binding Source="{StaticResource DefaultThickness}"/>
                      <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="BorderThickness.Right"/>
                      <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="BorderThickness.Bottom"/>
                    </MultiBinding>
                  </Setter.Value>
                </Setter>
              </DataTrigger.Setters>
            </DataTrigger>

public sealed class TestConverterConverter : IMultiValueConverter
   {
      public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
      {
         return true;
      }

      public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
      {
         return new object[0];
      }
   }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1844 [NoesisGUI] C++ SDK minor always 2020-11-26 12:06 2020-12-01 18:31
Reporter: Logris Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: NoesisApp::D3D11RenderDevice does not clear pixel shader resource slots
Description: Hi,
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2148
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006853)
jsantos   
2020-12-01 18:31   
Thanks for this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1843 [NoesisGUI] C++ SDK tweak always 2020-11-26 05:33 2020-12-01 18:26
Reporter: CravenWarrior3 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Linux
Summary: Missing "template" statements in TypePropertyUtil.h
Description: Partly into compiling a game which uses NoesisGUI, errors with the "expect primary-expression before 'char' token" format are thrown. Lines 34, 40, 46, 47, 66, 72, 84, and 90 of Include/NsCore/TypePropertyUtil.h are referenced in the error message.

Adding "template" to the appropriate location on each line fixes the error and ensures successful compilation of the program afterwards. The issue is relatively minor and simple to fix although no other files generated the error message.
Tags: C++
Steps To Reproduce: Discovered the issue while attempting to compile Ingnomia on Ubuntu 20.10, NoesisGUI was compiled using the Debug setting.
Additional Information:
Attached Files: Log.txt (4,434 bytes) 2020-11-26 05:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1323&type=bug
TypePropertyUtil.h (3,643 bytes) 2020-11-26 15:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1324&type=bug
Notes
(0006824)
jsantos   
2020-11-26 10:53   
Could you please indicate gcc version and, if possible, a patch with the changes? Thanks!
(0006829)
CravenWarrior3   
2020-11-26 15:23   
I'm using version 10.2.0 of gcc. Here's the edited file that fixes the issue I'm having.
(0006852)
jsantos   
2020-12-01 18:26   
Thanks for this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1850 [NoesisGUI] C++ SDK minor always 2020-11-30 16:32 2020-11-30 18:20
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Inconsistent clipping inside grid cell
Description: Hi guys, I've finally been able to track down some odd inconsistent clipping behaviour:

https://www.noesisengine.com/xamltoy/72e6e2aa974cac7e8f182f717bed033f

So you can see that we have a 599x300 grid cell that contains a listbox. Nothing should be clip to bounds. The listbox is 600 pixels high so the listbox is just slightly too large to fit into the cell.

If we set the RowDefinition so it's height goes from 599 -> 600 so it can fit the listbox, it doesn't clip the listbox, nor any of the listbox items. It seems like the second the parent listbox can't be contained inside the grid bounds, it clips to the entire cell grid cell, even though it shouldn't from what I can see. This same code behaves fine in WPF / Blend.

We see this behaviour quite a lot because we have a "focus" animation which usually increases the render scale of listboxitems when they're selected. In some cases, this is fine. In other cases the listboxitems clip to the parent bounds regardless of what the ClipToBounds property is set to.

I don't think this is just limited to grids, I think this is a general issue with any element (content controls, stack panels, dock panels etc). I think this is just a general issue with the way it determines to clip regions.
Tags:
Steps To Reproduce: 1. Open https://www.noesisengine.com/xamltoy/72e6e2aa974cac7e8f182f717bed033f
2. Notice that the listbox items are clipped.
3. Change the 2nd <RowDefinition> to have a height of 600
4. Notice that no part of the listbox or any listboxitems are clipped.

Additional Information:
Attached Files: gridclip.png (41,094 bytes) 2020-11-30 16:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1325&type=bug
Clipping_Blend.png (20,803 bytes) 2020-11-30 17:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1326&type=bug
Notes
(0006836)
sfernandez   
2020-11-30 16:59   
Are you sure about Blend showing this fine? Because I just copied the same xaml you have in xamltoy into a Blend project and it shows the ListBox clipped, and after increasing the cell height to 600 then it shows without clip exactly as in Noesis (see attached image).

The behavior I see seems logical to me, as ListBox doesn't fit inside the layout slot assigned by the parent Grid it has to activate clipping. This is how layout clip is supposed to work.

Anyway, changing RenderTransform scale doesn't affect layout and shouldn't produce any clipping if the ListBox wasn't originally clipped.
(0006837)
steveh   
2020-11-30 17:26   
You're right, in Blend it does clip, however, I'm still getting a different behaviour to you in Blend.

In Blend it *always* clips to the bounds of the parent (see my attached image, notice that the Pink area is the area of the grid cell, the black area is the area of the listbox which is set to auto/auto and aligned to the centre.)
In Noesis it *only* clips to the bounds of the parent if the listbox can't fit within.

To clarify, I'm still seeing inconsistent behaviour where Noesis will clip if and only if the parent needs to be clipped, whereas in Blend it looks to always clip.

Is there any way to make it so the layout clip is ignored so it will always render the child objects? If not, that's fine, we can work around this and just ensure we have enough padding to grow the elements to avoid the clipping, I just need to let our artists know to take this into account.

Cheers,

-Steven
(0006838)
sfernandez   
2020-11-30 17:33   
Can you share the Blend xaml/project? Because I'm getting different results here with Blend.

>> Is there any way to make it so the layout clip is ignored so it will always render the child objects? If not, that's fine, we can work around this and just ensure we have enough padding to grow the elements to avoid the clipping, I just need to let our artists know to take this into account.
If you wrap your ListBox with a Canvas then it won't get clipped, because Canvas panel allows children to grow as much as they want (it calls Measure on children with their DesiredSize).
(0006839)
steveh   
2020-11-30 17:48   
I added this to one of our files in our UserControl files for our game. I've just tried it with a new project and you're right, both Noesis and Blend work identically, so I'm guessing that it's an issue with one a resource in our theme. I'll track it down now I know it's an issue with our code.

Sorry for messaging you, it looks like Noesis and Blend are behaving identically then, it's just a bug in our theme mixed with a misunderstanding on my part :)

It all looks good, I think we can close this bug and I'll track down the issue with our theme.

Much appreciated, cheers Sergio! And cheers for the info about the canvas, I'll add this to our default theme for our custom listbox style (which is where I'm seeing all these clipping issues)

-Steven
(0006840)
sfernandez   
2020-11-30 17:58   
Ok, glad to help.

Just want to remark that increasing the size of children using RenderTransform property shouldn't affect layout, so if parent ListBox wasn't initially clipped, then scaling up list items (on focus/selection) won't clip the list either.
(0006841)
steveh   
2020-11-30 18:09   
Yeah, the issue is that as soon as clipping is enabled it will clip to the listbox. By default a lot of our child elements sit outside the measured region (our focus storyboard increases the render scale of the listboxitem by ~10% and apply a slight rotation to them). This causes the elements to go outside the border of the listbox by quite a bit. This is fine, it causes elements to overlay but this is a stylistic choice, we *want* the selected element to overlay other UI elements, and we just ensure that the selected element is always on top of other elements in terms of z-depth.

This works fine until anything causes the parent listbox to clip. If this happens then it'll cause all selected items to then clip quite a lot. I think the canvas solution will suit us perfectly, or we just have to make sure that the listbox always fits inside the parent so the layout clipping is not enabled on this object.

Cheers, I have a much deeper understanding of how this works now so I'll be able to feed back to our artists and let them know about this.

-Steven
(0006842)
sfernandez   
2020-11-30 18:20   
Cheers.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1838 [NoesisGUI] Unity3D minor always 2020-11-17 00:24 2020-11-26 17:39
Reporter: samc Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.8  
Platform: Any
Summary: Unity mac player doesn't work with noesis
Description: When we do a mac build of unity, Noesis causes exceptions with a message that reads: "Message: DllNotFounDexception: Noesis". It seems like it's not being packaged properly? Is there something we have to do special?
Tags:
Steps To Reproduce: - Make a mac player build in unity
- Launch the player build
- Exception should show in the unity log
Additional Information:
Attached Files:
Notes
(0006762)
jsantos   
2020-11-17 11:56   
A few questions, because it is working fine for so there must be something I am missing:

- Is it also happening with one of our Demos? HelloWorld for example
- What specific version of Unity are you using?

Thanks!
(0006801)
samc   
2020-11-23 19:14   
We are using Unity 2020.2.0b10. This is happening in our project, not with the Demos, however we've also reproduced it in a smaller sample project that Szymon put together and shared with y'all.
(0006802)
jsantos   
2020-11-23 19:16   
Thank you! I will check with that Unity version and Szymon project to reproduce this.
(0006833)
jsantos   
2020-11-26 17:35   
Ok, found what is happening. By default Unity 2020.2 is creating a standalone for the architecture "Intel64 + Apple silicon" and Noesis 3.0.7 is still only available for Intel64. Just selecting only "Intel64" fixed the issue.
(0006834)
jsantos   
2020-11-26 17:38   
Just created 0001845 for following the Apple Silicon architecture. Please let us know if you need a preview.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1832 [NoesisGUI] Unity3D crash always 2020-11-10 16:54 2020-11-26 16:39
Reporter: NirHasson Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: macOS
Summary: Noesis 3.0.6/7 crash on MacBook Pro on Unity 2019.4.13f1
Description: The unity player keeps crashing on MacBook Pro with Noesis 3.0.6 and Metal renderer.
The same project runs on Windows, Android, iOS and Mac mini without any issues.
Attached here are the log files from the macOS that crashes and a screenshot from the unity bug report.
Tags:
Steps To Reproduce: 1. Create an empty project.
2. Add a Noesis view.
3. Run the player

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2133
Additional Information:
Attached Files: spivi.txt (110,744 bytes) 2020-11-10 16:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1317&type=bug
SpiviTheme.xaml (392,848 bytes) 2020-11-11 12:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1318&type=bug
crash_log_noesis.txt (69,687 bytes) 2020-11-16 07:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1320&type=bug
Spivi.B2C.Client_2020-11-22-130656_Nirs-Mac-mini.crash.txt (128,391 bytes) 2020-11-22 12:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1322&type=bug
Notes
(0006721)
jsantos   
2020-11-11 10:49   
One question, do our samples work on this Mac?
(0006722)
NirHasson   
2020-11-11 11:00   
I don't have access to this mac, they are all remote users who experienced this issue.
I can try to build a sample app using the tic tac toe scene and send it to one of these users to test if it helps.
(0006723)
NirHasson   
2020-11-11 12:10   
The sample worked on the mac that crashed before.
I believe it is related to the fact that we're using a very old custom theme file based on one of yours from the 1.XX versions.
Attached here for your reference.
(0006733)
jsantos   
2020-11-12 11:45   
Both two cases you mention at the forums are using 3.0.7?
(0006735)
NirHasson   
2020-11-12 14:07   
Yes
(0006736)
NirHasson   
2020-11-13 06:44   
It seems that we're having 2 cases.
Macbook Pro with AMD Radeon graphic card - the system hangs and crashes eventually.
Macbook Pro with Intel graphic card.
With the new theme we made a bit of progress but it still crashes afterwards:
See the logs bellow:

Process: Spivi.B2C.Client [91136]
Path: /Applications/Spivi.Home.app/Contents/Resources/Spivi.B2C.Client.app/Contents/MacOS/Spivi.B2C.Client
Identifier: com.spivitech.Spivi-B2C-Client

Version: 1.2.13 (1)
Code Type: X86-64 (Native)
Parent Process: ??? [1]

Responsible: Spivi.B2C.Client [91136]
User ID: 501
Date/Time: 2020-11-13 00:40:23.496 +0200

OS Version: Mac OS X 10.15.7 (19H2)

Report Version: 12

Bridge OS Version: 4.6 (17P6610)

Anonymous UUID: 727545CE-A21A-485D-F28E-5893CB73F2B3
Sleep/Wake UUID: A28BD130-06E7-4855-ACEF-3B6A0D1A980D

Time Awake Since Boot: 35000 seconds
Time Since Wake: 860 seconds

System Integrity Protection: enabled
Crashed Thread: 31 UnityGfxDeviceWorker
 
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
-[MTLIGAccelCommandBuffer renderCommandEncoderWithDescriptor:]:407: failed assertion `Already have uncommitted encoder'
(0006737)
jsantos   
2020-11-13 11:14   
This is a different error, let's create a new ticket for this. I would say this error should happen with any hardware because I would say it is a problem with Unity and how they are invoking us, I fixed something related to this in the latest version.
(0006738)
jsantos   
2020-11-13 11:15   
I am preparing a debug build for you.
(0006739)
NirHasson   
2020-11-13 12:00   
This is weird, as the project works on Mac Mini without any issues.
(0006740)
jsantos   
2020-11-13 12:03   
I would say the 'Already have uncommitted encoder' should happen also in the Mac Mini, because Unity is not finishing the encoder that is passing to us.

Is this project using HDRP or URP?
(0006741)
NirHasson   
2020-11-13 12:06   
No, this is a standard rendering project, no custom pipeline.
(0006742)
jsantos   
2020-11-13 12:09   
Are you using render to texture for the UI or stacked cameras (many cameras rendering to the same target) ?
(0006743)
NirHasson   
2020-11-13 12:12   
Yes, in the latest update (the one with the updated theme) the tester was able to get to the point where we load a scene with 3 cameras. Once clears everything, One is dedicated for the 3D graphics and the last one is for the UI.
(0006744)
jsantos   
2020-11-13 12:17   
Is this the point where the crash is happening?

I assume you are doing this because you don't want post processing in the UI right?

Does the camera for the UI have 'Culling Mask' set to None?
(0006745)
NirHasson   
2020-11-13 12:33   
I guess this is the point where the crash happened, almost 100 percent by the description I got from the tester.

We use a separate camera for both the post processing issue but also for modularity reasons. We have the UI as a base scene and the 3D content from multiple different scenes each with its own setup.

I believe the culling mask is set to none, I’ll have to confirm
(0006746)
jsantos   
2020-11-13 13:07   
Anyway this is a different issue, the one related to using three cameras. Please, create a new ticket and let's follow there. If you could create a small scene reproducing that scenario (with the 3 cameras and a similar XAML) I can test it here in my machines. Having a repro case is going to help a lot.
(0006747)
jsantos   
2020-11-13 13:29   
Please, download a debug library compatible with 3.0.7 Unity Package at

https://drive.google.com/file/d/1ixYjUzShHcm60Va8oX4Sz4-CwU0AkQ6j/view?usp=sharing

We need to start again with the reports because there is a mix of crashes here and at the forums and I need to focus on each case separately.

Please, for each crash attach the full crash log.
(0006748)
NirHasson   
2020-11-13 13:48   
Ok, ill get to that next week, will open a new ticket for the camera issue and will try the debug library
(0006749)
jsantos   
2020-11-13 14:53   
Thanks. I will also prepare a small scene with your scenario to test in all our machines and will also send it to you.
(0006750)
jsantos   
2020-11-13 18:08   
The scene 'TrickyScenes/Standard/Stacking2' located in the following package

https://drive.google.com/file/d/1JiPL7MM7r74FM-ZlKZkGXGCHtHpJdeVJ/view?usp=sharing

contains a similar setup to your application. It contains 3 cameras:

1. Clear Camera: just clear to solid color
2. 3D Camera: just render 3 geometries
3. UI Camera: render a XAML containing elements with opacity (offscreen can be problematic, that's the reason I am forcing them).

It is working fine in all our Metal machines (iOS and macOS). Could you please try it?
(0006752)
NirHasson   
2020-11-15 10:39   
The UI camera culling mask is set to Nothing BUT we've set the Clear Flags to Depth Only as there was a bug in Noesis 2.XX and Unity where some of our UI was affected by the depth buffer.
I will try now a build with the updated theme, a UI camera with Don't Clear flags, and your debug library.
(0006754)
NirHasson   
2020-11-16 07:34   
The last version just crashed in the same place where multiple cameras were involved.
Here are the relevant lines from the log files with the debug symbols + the full log as a file.

Process: Spivi.B2C.Client [92736]
Path: /Applications/Spivi.Home.app/Contents/Resources/Spivi.B2C.Client.app/Contents/MacOS/Spivi.B2C.Client
Identifier: com.spivitech.Spivi-B2C-Client
Version: 1.2.13 (1)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Spivi.B2C.Client [92736]
User ID: 501

 
Date/Time: 2020-11-15 21:29:11.547 +0200
OS Version: Mac OS X 10.15.7 (19H2)
Report Version: 12
Bridge OS Version: 4.6 (17P6610)
Anonymous UUID: 727545CE-A21A-485D-F28E-5893CB73F2B3

 
Sleep/Wake UUID: C325BE7E-AC74-4F52-ACD2-96337AD20C14
 

Time Awake Since Boot: 39000 seconds
Time Since Wake: 680 seconds

System Integrity Protection: enabled

Crashed Thread: 32 UnityGfxDeviceWorker

 

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
-[MTLIGAccelCommandBuffer renderCommandEncoderWithDescriptor:]:407: failed assertion `Already have uncommitted encoder'


Thread 32 Crashed:: UnityGfxDeviceWorker

0 libsystem_kernel.dylib 0x00007fff6b45533a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6b511e60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff6b3dc808 abort + 120
3 UnityPlayer.dylib 0x000000010af77452 0x10a6f9000 + 8905810
4 libmonobdwgc-2.0.dylib 0x0000000112c0da31 mono_chain_signal + 79
5 libmonobdwgc-2.0.dylib 0x0000000112c0dd74 sigabrt_signal_handler + 86
6 libsystem_platform.dylib 0x00007fff6b5065fd _sigtramp + 29
7 ??? 0x0000000000000004 0 + 4
8 libsystem_c.dylib 0x00007fff6b3dc808 abort + 120
9 libsystem_c.dylib 0x00007fff6b3dbac6 __assert_rtn + 314
10 com.apple.Metal 0x00007fff369b6729 MTLReportFailure.cold.2 + 43
11 com.apple.Metal 0x00007fff369a9e88 MTLReportFailure + 523
12 com.apple.driver.AppleIntelKBLGraphicsMTLDriver 0x00007fff29e2a866 -[MTLIGAccelCommandBuffer renderCommandEncoderWithDescriptor:] + 151
13 Noesis.dylib 0x000000011f12f3c7 NoesisApp::MTLRenderDevice::SetRenderTarget(Noesis::RenderTarget*) + 423
14 Noesis.dylib 0x000000011f7b2c05 Noesis::VGLContext::DrawGPUBatches() + 2261
15 Noesis.dylib 0x000000011f7ab920 Noesis::VGLContext::Flush(bool, bool) + 2992
16 Noesis.dylib 0x000000011f3dc5a3 Noesis::RenderTreeHelper::RenderOffscreenNodes() + 4179
17 Noesis.dylib 0x000000011f3db157 Noesis::RenderTreeHelper::RenderOffscreen(Noesis::RenderNode*, Noesis::Matrix4 const&) + 439
18 Noesis.dylib 0x000000011f3d2f78 Noesis::RenderTree::RenderOffscreen(Noesis::Matrix4 const&) + 120
19 Noesis.dylib 0x000000011f3edf53 Noesis::Renderer::RenderOffscreen(Noesis::Matrix4 const&) + 147
20 Noesis.dylib 0x000000011f3ede80 Noesis::Renderer::RenderOffscreen() + 112
21 Noesis.dylib 0x000000011f713172 Noesis_GetRenderOffscreenCallback::$_1::operator()(int, void*) const + 354
22 Noesis.dylib 0x000000011f712ffb Noesis_GetRenderOffscreenCallback::$_1::__invoke(int, void*) + 27
23 UnityPlayer.dylib 0x000000010ab4647f 0x10a6f9000 + 4510847
24 UnityPlayer.dylib 0x000000010b46d51c 0x10a6f9000 + 14107932
25 UnityPlayer.dylib 0x000000010ab475d7 0x10a6f9000 + 4515287
26 UnityPlayer.dylib 0x000000010ab3d09c 0x10a6f9000 + 4472988
27 UnityPlayer.dylib 0x000000010aed466c 0x10a6f9000 + 8238700
28 libsystem_pthread.dylib 0x00007fff6b512109 _pthread_start + 148
29 libsystem_pthread.dylib 0x00007fff6b50db8b thread_start + 15
(0006756)
jsantos   
2020-11-16 14:05   
As far as I understand, I would say the assert "Already have uncommitted encoder'' should happen in all platforms but I need to investigate more.

Having the error isolated in a scene similar to the one I send you would be ideal. Did you have time to try that scene?
(0006757)
NirHasson   
2020-11-16 14:09   
As far as I understand, I would say the assert "Already have uncommitted encoder'' should happen in all platforms but I need to investigate more.
It doesn't happen on other platforms, even worse, it doesn't happen on other Mac devices like Mac Min, etc.

Having the error isolated in a scene similar to the one I send you would be ideal. Did you have time to try that scene?
No, I don't have access to a Macbook Pro pc and every time we have to build a notarized release and send it to our testers.
I hoped that the debug symbols will get you closer to the source of the issue.

Did you try out one of the links I sent you above?
(0006758)
jsantos   
2020-11-16 14:19   
I haven't tried your links but I will do soon. Could you please indicate the exact steps I should follow to reproduce the issue?

And, if you could send me a list or Mac Books where this is happening, we will try to buy the same model.
(0006759)
NirHasson   
2020-11-16 14:44   
To reproduce you have to:
1. Install the app.
2. Register it with the initial steps (select language and region).
3. Login with the credentials I listed above.
4. Skip the pairing screen, you don't need that to reproduce, just click the home button.
5. On the main menu, select the Replay tab, select one of the cycling classes, and hit the Replay button.
6. The step above will trigger the loading of the 3D scene alongside the UI scene and that's where the crash happen.

As for the crashing models:

Device
MacBookPro16,1
Mac OS X 10.15.7
Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
AMD Radeon Pro 5500M

Device
MacBookPro16,1
Mac OS X 10.15.7
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
AMD Radeon Pro 5300M

Device
MacBookPro14,1
Mac OS X 10.15.6
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Intel(R) Iris(TM) Plus Graphics 640
(0006760)
jsantos   
2020-11-16 14:52   
I will try soon, thanks!

Another question, are you using render to texture?
(0006761)
NirHasson   
2020-11-16 16:20   
No, the Noesis view is attached to a dedicated camera. There are no UI elements rendered to a texture, but we use render textures in other parts of the scene.
(0006768)
jsantos   
2020-11-17 16:33   
We bought this model:

Device
MacBookPro14,1
Mac OS X 10.15.6
Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Intel(R) Iris(TM) Plus Graphics 640

Hopefully this will allow me to reproduce the issue.
(0006769)
NirHasson   
2020-11-17 16:36   
Thanks for your efforts to resolve this issue.
Did you manage to run in on your other devices?
(0006770)
jsantos   
2020-11-18 10:51   
Not yet but will do soon, before the Mac Pro arrives.
(0006778)
jsantos   
2020-11-20 10:31   
Ok, the Mac book pro is here and I was able to reproduce the issue. This is everything I need for now. :) I will keep you posted.
(0006779)
NirHasson   
2020-11-20 11:15   
Great news!
Hopefully it will help you resolve all related crashes we had on the Macs!
(0006780)
jsantos   
2020-11-20 12:10   
(Last edited: 2020-11-20 12:10)
I cannot attach Xcode to debug with these builds. Probably because the Unity Development flag is not active? In that case could you provide a development build corresponding to the build 1 (Spivi Custom Theme + Noesis 3.0.7 Release + Camera with Depth Clear)

Thanks!

(0006781)
jsantos   
2020-11-20 13:14   
Also, if you could create a development build with the following patch applied to NoeisView.cs
--- NoesisView.cs	(revision 9719)
+++ NoesisView.cs	(working copy)
@@ -981,6 +981,8 @@
     {
         if (_uiView != null && _visible)
         {
+            ForceRestoreCameraRenderTarget();
+
             _commands.name = "Noesis.Offscreen";
             NoesisRenderer.RenderOffscreen(_uiView, _commands);
             Graphics.ExecuteCommandBuffer(_commands);
(0006782)
NirHasson   
2020-11-20 14:41   
Ok I’ll do that next week.
In the meantime I got another crash report with the noesis debut build.

Thread 49 Crashed:: UnityGfxDeviceWorker
0 libsystem_kernel.dylib 0x00007fff6f10333a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6f1bfe60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff6f08a808 abort + 120
3 UnityPlayer.dylib 0x000000010c2d8452 0x10ba5a000 + 8905810
4 libsystem_platform.dylib 0x00007fff6f1b45fd _sigtramp + 29
5 libsystem_malloc.dylib 0x00007fff6f174057 nanov2_calloc + 81
6 Noesis.dylib 0x000000012285da64 NoesisApp::MTLRenderDevice::SetOnScreenEncoder(id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 164
7 Noesis.dylib 0x0000000122862e8d NoesisApp::MTLFactory::SetOnScreenEncoder(Noesis::RenderDevice*, id<MTLRenderCommandEncoder>, MTLPixelFormat, id<MTLRenderCommandEncoder>, unsigned int) + 61
8 Noesis.dylib 0x0000000122e47513 Noesis::UnityDeviceMTL::BeginRender() + 307
9 Noesis.dylib 0x0000000122e434c8 Noesis_GetRenderOnscreenCallback::$_2::operator()(int, void*) const + 216
10 Noesis.dylib 0x0000000122e433db Noesis_GetRenderOnscreenCallback::$_2::__invoke(int, void*) + 27
11 UnityPlayer.dylib 0x000000010bea747f 0x10ba5a000 + 4510847
12 UnityPlayer.dylib 0x000000010c7ce51c 0x10ba5a000 + 14107932
13 UnityPlayer.dylib 0x000000010bea85d7 0x10ba5a000 + 4515287
14 UnityPlayer.dylib 0x000000010be9e09c 0x10ba5a000 + 4472988
15 UnityPlayer.dylib 0x000000010c23566c 0x10ba5a000 + 8238700
16 libsystem_pthread.dylib 0x00007fff6f1c0109 _pthread_start + 148
17 libsystem_pthread.dylib 0x00007fff6f1bbb8b thread_start + 15
(0006783)
jsantos   
2020-11-20 14:52   
Do you have the Player.log for this one?
(0006784)
jsantos   
2020-11-20 15:04   
(Last edited: 2020-11-20 15:10)
Also, it is weird that there is no line numbers in that callstack, the new noesis.dylib have full debug information. Maybe it is being preprocessed when notarized?

I need the full crash log because I need to see where Noesis.dylib is loaded in memory

(0006787)
NirHasson   
2020-11-22 12:16   
I just built the last configuration (Noesis Based Theme + Noesis 3.0.7 Debug + Camera with Don't Clear flags) with the development build flag active and the ForceRestoreCameraRenderTarget addition and it crashed on my Mac Mini machine as well.
Attached here is the full log.
(0006788)
jsantos   
2020-11-22 14:12   
This makes more sense, the error `Already have uncommitted encoder' should happen in all devices. It is happening here in the MacBook Pro and in the Mac Mini. I am working on that fix.

Are you sure this error was not happening in your Mac Mini before? You activated the 'development build' flag and my 'ForceRestoreCameraRenderTarget' patch. Which one is triggering this?
(0006789)
NirHasson   
2020-11-22 14:23   
It seems like the Noesis Debug library itself.
I created additional builds without the ForceRestoreCameraRenderTarget and without the Development Build and both of them crashed.
(0006790)
NirHasson   
2020-11-22 15:26   
It seems like a change related to 3.0.7, it is not the development build, the code change, or the library itself.
It didn't happen at the 3.0.6
(0006792)
NirHasson   
2020-11-23 17:02   
Do you need anything from our end? Do you still need the debug build?
(0006793)
jsantos   
2020-11-23 17:08   
I have been working on this, I know what's happening and what change in 3.0.7 is causing this. Unfortunately it is a bug in Unity and I need to find a safe way to workaround it (because reporting to unity is going to take forever).

Now that you can reproduce the assert in your Mini, the ideal help would be having a minimal repro scene, for now I am not able to reproduce it in a small project on Unity. But I am not sure that's going to be easy because I think this is happening when dynamically changing the setup of cameras in Unity.

So, if the repro scene is not possible it would help knowing with details how the setup of cameras is configured by code when the crash happens (when the view replay button is clicked). As far as I know you are transitioning from one setup to another, I need those details. How cameras are enabled, how properties are changed by code (for example, if the clearFlags are being manipulated), etc etc.
(0006794)
jsantos   
2020-11-23 17:12   
(Last edited: 2020-11-23 17:12)
I am trying with both Unity 2019.4 and 2020.1, if you could also verify if the assert is still happening in Unity 2020 that would be great.

(0006796)
jsantos   
2020-11-23 17:54   
(Last edited: 2020-11-23 17:54)
Let me understand something, when you say 'scene' do you mean Unity scenes? because as far as I know, you can only have one Unity scene active. In that case, when the scene in 2a is loaded, I assume there is another camera doing the clear right?

Do you know (could you add logs) if the crash is happening when displaying scene 2a or displaying scene 2b ?

(0006797)
NirHasson   
2020-11-23 18:47   
Yes, I mean unity scenes.
You can have only a single active scene, this is the scene that unity uses for lighting settings. However you can have multiple cameras at each scene and they are ordered by the depth value.

In my case once an asynchronous scene load is completed, we make it as the active scene.

I’ll have to check the logs and let you know what’s the exact crash location.
(0006798)
jsantos   
2020-11-23 18:50   
(Last edited: 2020-11-23 19:26)
Understood, so when you say

a. The base scene with the UI camera is being loaded async. This scene has the UI camera that renders at depth 1, don't clear / or clear depth only, uses nothing for culling mask.

There is also a main camera clearing the screen and rendering 3D?

(0006799)
NirHasson   
2020-11-23 18:51   
Also, we have another setup with all of the flow above except that the main camera culling mask is set to nothing. This setup doesn’t crash so my guess is that the crash occurs immediately after the scene with the main camera that renders something is loaded
(0006800)
jsantos   
2020-11-23 18:54   
I will try reproducing this by loading the scene by code, but I am not sure I have all the details.
(0006803)
jsantos   
2020-11-23 19:31   
(Last edited: 2020-11-23 19:44)
I tried loading my scene (composed by a clear camera, 3d camera and UI camera) with

SceneManager.LoadScene("Stacking2", LoadSceneMode.Single);

and it is not triggering the assert.

I will keep testing more combinations.

(0006804)
NirHasson   
2020-11-23 20:22   
I’m using the async version of the load and the additive mode not the single mode
(0006805)
jsantos   
2020-11-23 20:46   
The additive mode is adding the 3D scene to a scene that already has a UI camera, right?
(0006806)
NirHasson   
2020-11-23 20:52   
The additive mode is adding the scene to the loaded scenes stack.
This is the scheme of what’s happening:

1. 1 scene with the the main menu UI
2. 2 scenes, the main menu UI and the core simulation UI.
3. 3 scenes, the main menu UI, the core simulation UI and the 3D scene.
4. 2 scenes, the core simulation UI and the 3D scene.
(0006807)
jsantos   
2020-11-23 21:01   
Thanks Nir!

For now, I am not being lucky. I see that changing the Viewport rect in a a few cameras is doing crazy things (even crashing Xcode when trying to capture the frame). I am investigating that right now.

But I am going to need more information about the provided steps, at what steps the crash is happening, and what the exact scene state (regarding cameras) and that point and the exact details of the scene being added.

If you have a similar flow that is not crashing, could you do changes until it crashes?

Or even better, if you could create a repro scene... That's what I have been trying all day.
(0006808)
jsantos   
2020-11-23 21:25   
(Last edited: 2020-11-23 21:25)
I am observing that the mentioned crazy things about changing viewports in the camera disappear if HDR is disabled in the UI camera.

Not sure if it is also related to your bug, but I would disable HDR in all cameras where it is not needed (UI cameras at least)

(0006811)
NirHasson   
2020-11-24 13:01   
This is really going crazy, I've narrowed it down to a specific script.
The crazy thing is that even if the game object containing the script is disabled the crash occurs.
If I delete this game object all works fine.
Will keep you posted.
(0006812)
jsantos   
2020-11-24 13:08   
Thank you, remember also about the HDR flag I comment above. I am also doing more tests today, let's see if I find more things.
(0006813)
NirHasson   
2020-11-24 13:19   
Yes, I already disabled the HDR but I didn't help.
(0006814)
NirHasson   
2020-11-24 15:16   
Narrowed it down to have a reference to a Text Mesh Pro object in the 3D scene.
Trying to upgrade from 2.0.1 to 2.1.3
(0006815)
NirHasson   
2020-11-24 15:32   
Well, it didn't help but I believe you can create a simple repro scene by just adding an instance of the default Text Mesh Pro object.
In the UI scene, right-click on the Hierarchy -> 3D Object -> Text - TextMeshPro.
It happens on 2.0.1 as well as the latest 2.1.3 of text mesh pro.
(0006816)
NirHasson   
2020-11-24 16:06   
This becomes a very strange situation.
I wanted to create a very simple repro scene so I added an instance of TMP to my splash screen.
The result was a working version, it doesn't crash anymore!
I don't know what happens internally that fixed this issue.
(0006817)
jsantos   
2020-11-24 16:43   
(Last edited: 2020-11-24 16:58)
I will try to reproduce, my bet is TMP has a bug and is leaving the Metal encoder opened, that would explain why Unity is telling us that there is no Metal encoder active. This makes sense if TMP is a native plugin, I am not sure about that right now.

Thanks for this clue!

(0006818)
NirHasson   
2020-11-24 16:56   
Good luck with that :)
Seems to be a very specific scenario that leads to this bug. I don't understand why having it on the first splash scene resolved the issue later but who knows what's going on inside.
(0006827)
jsantos   
2020-11-26 14:19   
Finally, I was able to reproduce the issue! I am working on it right now, will keep you posted.
(0006828)
NirHasson   
2020-11-26 14:42   
Great! Thanks for the update
(0006830)
jsantos   
2020-11-26 15:38   
Could you please try the following patch?

Index: NoesisGUI/Plugins/NoesisRenderer.cs
===================================================================
--- NoesisGUI/Plugins/NoesisRenderer.cs (revision 9719)
+++ NoesisGUI/Plugins/NoesisRenderer.cs (working copy)
@@ -1,4 +1,6 @@
 using System.Runtime.InteropServices;
+using LoadAction = UnityEngine.Rendering.RenderBufferLoadAction;
+using StoreAction = UnityEngine.Rendering.RenderBufferStoreAction;
 
 /// <summary>
 /// In Unity, the render thread is only accesible in C++ using IssuePluginEvent(). This is a helper
@@ -19,6 +21,16 @@
     /// </summary>
     public static void RenderOffscreen(Noesis.View view, UnityEngine.Rendering.CommandBuffer commands)
     {
+        // This a way to force Unity to close the current MTL command encoder
+        // We need to activate a new encoder in the current command buffer for our Offscreen phase
+        if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Metal)
+        {
+            UnityEngine.RenderTexture surface = UnityEngine.RenderTexture.GetTemporary(1,1);
+            commands.SetRenderTarget(surface, LoadAction.DontCare, StoreAction.DontCare, LoadAction.DontCare, StoreAction.DontCare);
+            commands.ClearRenderTarget(false, false, UnityEngine.Color.clear);
+            UnityEngine.RenderTexture.ReleaseTemporary(surface);
+        }
+
         commands.IssuePluginEventAndData(_renderOffscreenCallback, 0, view.CPtr.Handle);
     }
(0006831)
NirHasson   
2020-11-26 15:53   
Yes, that seems to fix this issue - works on my mac mini!
I'll have to create a notarized build next week and send it to our testers.
(0006832)
jsantos   
2020-11-26 16:38   
I just committed the change and a few more refinements that will part of 3.0.8.

Thanks for you awesome feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1842 [NoesisGUI] C# SDK minor always 2020-11-26 00:30 2020-11-26 13:17
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Text in Grid is not trimmed properly
Description: Hi guys,

here is a snippet for XamlToy:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Background="Black">

<Grid Background="White"
      HorizontalAlignment="Left"
      Width="300">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        
        <TextBlock
            Text="Some very long text here"
            Foreground="Red"
            FontSize="24"
            LineHeight="24"                            
            TextWrapping="NoWrap"
            TextTrimming="CharacterEllipsis" 
            HorizontalAlignment="Left" />
  
        <TextBlock
            Grid.Column="1"
            Text="[IMPORTANT]"
            Foreground="Blue"
            FontSize="24"
            LineHeight="24"                            
            TextWrapping="NoWrap"
            TextTrimming="None" 
            HorizontalAlignment="Left" />
    </Grid>
</Grid>


Only (only!) if you replace Auto with * for the first column the text there will be trimmed properly.
My intention is to make the second column primary (as there is some important control) so the first column will trim but I cannot achieve this

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006821)
ai_enabled   
2020-11-26 00:32   
Surprisingly, it's also failing in WPF as I've just tested.
(0006822)
ai_enabled   
2020-11-26 00:48   
The workaround I've found: (works in both NoesisGUI and WPF)
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Background="Black">
    <DockPanel Background="White"
               HorizontalAlignment="Left"
               Width="300">
        <TextBlock
            Text="[IMPORTANT]"
            Foreground="Red"
            FontSize="24"
            LineHeight="24"
            TextWrapping="NoWrap"
            TextTrimming="CharacterEllipsis"
            HorizontalAlignment="Left"
            DockPanel.Dock="Right" />
       
        <TextBlock
            Text="Some very long text here"
            Foreground="Blue"
            FontSize="24"
            LineHeight="24"
            TextWrapping="NoWrap"
            TextTrimming="CharacterEllipsis"
            HorizontalAlignment="Left"
            DockPanel.Dock="Left" />
    </DockPanel>
</Grid>


Interestingly, if I swap elements (while keeping their DockPanel.Dock properties) the issue appears again. It seems the order of TextBlock inside the panel matters!
(0006823)
sfernandez   
2020-11-26 10:14   
In the case of the Grid the behavior is totally expected, you defined the first column to be Auto, allowing the first TextBlock to grow as much as it needs to fit all the text, so no trimming is possible.
And if you change the first column to *, then you have 2 columns of the same size (150 each because the Grid has a fixed 300 width).

In the case of the DockPanel the behavior is also as expected because DockPanel allocates the space required by its children in order.
If first child is positioned to the right, then it will use the remaining space on the left to position the rest of children.
If you change the order and first child is docked to the left, then the remaining space on the right will be used for the rest of children.

You can achieve the same result as with the working DockPanel layout by using a Grid with the second column set to Auto:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Background="Black">

<Grid Background="White"
      HorizontalAlignment="Left"
      Width="300">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        
        <TextBlock
            Text="Some very long text here"
            Foreground="Red"
            FontSize="24"
            LineHeight="24"                            
            TextWrapping="NoWrap"
            TextTrimming="CharacterEllipsis" 
            HorizontalAlignment="Left" />
  
        <TextBlock
            Grid.Column="1"
            Text="[IMPORTANT]"
            Foreground="Blue"
            FontSize="24"
            LineHeight="24"                            
            TextWrapping="NoWrap"
            TextTrimming="None" 
            HorizontalAlignment="Left" />
    </Grid>
</Grid>
(0006825)
ai_enabled   
2020-11-26 12:30   
(Last edited: 2020-11-26 12:32)
Thank you for a great explanation, Sergio!
Your code snippet works great! I've tried it yesterday (among dozens of other ideas) and my mistake was that Grid had HorizontalAlignment="Stretch" so it resulted in the first column being too wide (so the label from the second column appeared too far away from the short text in the first column).
So I've assumed that "Auto" for the first column must trim the text as the grid obviously have a width limitation and the second column should have priority due to * width.
I realize it's a nuance of WPF but heck it's quite a non-intuitive and frustrating one—so much that I've actually created a report this time to check whether it's the correct behavior.
BTW, many other cases when it frustrated me before were when I tried to use horizontal StackPanel to combine text entries (as it's way easier than putting them into a grid and defining columns). WPF has its downsides and only through painful experience I can learn the right way.

You can close this ticket unless you're planning to break WPF compatibility for the good! :-)
Regards!

(0006826)
sfernandez   
2020-11-26 13:17   
We'll stick to WPF behavior :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1539 [NoesisGUI] C++ SDK major always 2019-08-19 18:22 2020-11-25 21:50
Reporter: pgrubyi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: KeyboardNavigation.DirectionalNavigation="None" doesn’t work
Description: KeyboardNavigation.DirectionalNavigation="None" doesn’t work. It is possible to navigate outside of the List with keyboard arrow keys.
Tags: xaml
Steps To Reproduce: In any List control declare KeyboardNavigation.DirectionalNavigation="None", then use Keyboard arrows keys to navigate outside of the List.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1805 [NoesisGUI] C# SDK feature N/A 2020-10-12 15:48 2020-11-24 17:48
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Allow adjusting OffscreenSampleCount at any time
Description: Hi guys,

as I've reported here https://www.noesisengine.com/bugs/view.php?id=1686#c6654 this is pretty much essential:

"The big problem here is that the game allows the player to change MSAA setting on the fly (off/2x/4x/8x). Currently, the Noesis View must be recreated in order to initialize it with new RenderDeviceD3D11 (that has new OffscreenSampleCount). Simply changing OffscreenSampleCount for the existing RenderDeviceD3D11 instance is not enough and I can guess why.

I wish we could change this on the fly as recreating a View object is a big no-no. It causes an issue with a multitude of other systems.
E.g. allowing the call to view.Renderer.Init(renderDeviceD3D11) again after it was already initialized would solve this problem (as I can change device's OffscreenSampleCount and call view.Renderer.Init). Currently, it's not supported as further access to the renderer object results in a memory access violation."

The problem is that the View is already propagated itself to various game systems (for example, we're using it to set up all the menus, recreating them without reloading the whole UI is not possible).

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006819)
ai_enabled   
2020-11-24 17:48   
I still wish to be able to adjust this same as I can adjust RenderFlags. Currently, the whole OffscreenSampleCount feature is just useless (recreating the whole UI is not an option).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1837 [NoesisGUI] C# SDK minor always 2020-11-13 16:08 2020-11-20 14:01
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: PPAA doesn't work / View.Content.PPAAMode has no effect
Description: Hi guys,
I've noticed that in 3.0.6 (have not tried 3.0.7 yet) the PPAA mode doesn't work and change of View.Content.PPAAModel has no effect.
Please check!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006751)
sfernandez   
2020-11-13 19:21   
Did you have PPAA enabled in the View?
view.SetFlags(RenderFlags.PPAA);

How are you using PPAAMode? That enum contains two possible values:
 - Default means it will use whatever you have set in the View (this is the default value for the property).
 - Disabled means PPAA is not used on that element subtree (remark that this property is inheritable).
(0006771)
ai_enabled   
2020-11-18 23:14   
Thank you, Sergio!

You're totally right, I didn't set RenderFlags.PPAA! Somehow I've totally missed this NoesisGUI changelog entry "Removed SetIsPPAAEnabled and GetIsPPAAEnabled from IView. PPAA is now part of RenderFlags enumeration".
I was under impression that the new PPAAMode properly of FrameworkElement is enough.
Oddly enough, it seems the change was done long ago (3.0.0b1) but I've noticed lack of PPAA only few days ago. I swear it worked fine until recently!

By the way, Is there any harm in keeping RenderFlags.PPAA for the View even if I set it to PPAAMode to Disabled for the View's content? Or it's best to set it only when we actually want to apply PPAA?

Regards!
(0006772)
sfernandez   
2020-11-19 10:08   
If you want to disable PPAA you should do it by removing the RenderFlags.PPAA in the View, because even if you set PPAAMode to Disabled in View's content that won't inherit on Popups (they are not children of the content).

It is better to use PPAAMode just for disabling PPAA on parts of the UI where you don't need antialiasing (for example on square/rectangle shapes).
(0006773)
ai_enabled   
2020-11-19 12:41   
Thank you for the explanation, Sergio! It makes perfect sense.
It's worth to mention about this detail in this doc page https://www.noesisengine.com/docs/Gui.Core.AntialiasingTutorial.html

Please close this ticket and sorry for disturbing you!
Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1802 [NoesisGUI] Unity3D tweak always 2020-09-29 14:00 2020-11-20 13:51
Reporter: Noa3 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.8  
Platform: Any
Summary: Changes made to ApplicationResources or its dictionary are not notified to the tree
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2099&p=11695

i repost this out of the Forum,

after setting in the viewmodel

Noesis.GUI.SetApplicationResources(newRes);

the Resources does now reload and there are no changes to the Visibile stuff
Tags: C#, Rendering, ResourceDictionary, Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1833 [NoesisGUI] C++ SDK feature always 2020-11-10 19:36 2020-11-16 10:53
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: Create MessageBox user control
Description: Add a MessageBox user control to our application framework that mimics (as much as possible) the WPF one:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.messagebox?view=net-5.0
https://www.wpf-tutorial.com/dialogs/the-messagebox/
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006755)
sfernandez   
2020-11-16 10:53   
Usage:

#include <NsApp/MessageBox.h>

MessageBox::Show("Save changes to the modified file?", "Close", MessageBoxButton::YesNo,
  [](MessageBoxResult result)
  {
    if (result == MessageBoxResult::Yes) { /* save file */ }
});

using NoesisApp;

MessageBox.Show("Save changes to the modified file?", "Close", MessageBoxButton.YesNo,
  (result) =>
  {
    if (result == MessageBoxResult.Yes) { /* save file */ }
});


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1836 [NoesisGUI] C++ SDK crash always 2020-11-12 12:57 2020-11-12 17:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: Crash clicking a TextBox using a template without valid PART_ContentHost
Description: When using a TextBox with a control template that doesn't contain a valid PART_ContentHost (a ScrollViewer or Decorator element), then interacting with the text box produces a crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1830 [NoesisGUI] C++ SDK feature N/A 2020-11-05 18:28 2020-11-11 19:37
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: Feature Request: Generic notification support within storyboards
Description: Hi guys, this is following on from this thread and our discussion:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2066&p=11532#p11532

So the suggested workaround regarding a float instead of a boolean works for triggering the notification multiple times within a looping storyboard, but it doesn't work if we attempt to trigger a notify a single time multiple times, e.g:

<Storyboard>
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(AudioTrigger.TriggerAudio)" Storyboard.TargetName="AudioTriggerElement" RepeatBehavior="Forever">
            <DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="1.0"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>


It would be nice if there was a supported extension to add triggers within a storyboard. We would use this features in a couple of places:

    1. Triggering Audio / Particle FX
    2. Triggering a callback to do things like change data when we're half-way through an animation such as a level-up animation. Right now we do this with 2 textboxes:

<TextBlock x:Name="OldLevel" Text="{Binding Level, Converter={StaticResource SubtractionConverter}, ConverterParameter=1}" Visibility="Visible" />
<TextBlock x:Name="NewLevel" Text="{Binding Level}" Visibility="Collapsed" />

Then half-way through the storyboard, we change the visibility of the elements so the new value comes through:

<Storyboard>
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="OldLevel">
        <EasingDoubleKeyFrame KeyTime="0" Value="1.0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
    </DoubleAnimationUsingKeyFrames>
    </DoubleAnimationUsingKeyFrames>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)" Storyboard.TargetName="OldLevel">
            <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="Collapsed"/>
    </ObjectAnimationUsingKeyFrames>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Visibility)" Storyboard.TargetName="NewLevel">
            <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="Visible"/>
    </ObjectAnimationUsingKeyFrames>
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="NewLevel">
        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0.0"/>
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

It would be nice to be able to trigger a generic event at time 0.5 seconds in this example where I could update the binding for Level so we only had to have 1 textblock.

Hopefully this makes sense and you can see why we might want the ability to trigger generic notifications.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006714)
sfernandez   
2020-11-06 10:58   
Regarding the limitation you mentioned about triggering the notification multiple times within a looping storyboard, there is way to make it work with only a single key frame.
As I explained in the forums you can set the FillBehavior to "Stop" in the timeline so it resets the value to its default each time it repeats:

<Storyboard x:Key="anim" Duration="0:0:1" RepeatBehavior="3x">
  <DoubleAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="rect" Storyboard.TargetProperty="(local:CustomTrigger.Trigger)">
    <DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
  </DoubleAnimationUsingKeyFrames>
</Storyboard>


In that example, if the default value of CustomTrigger.Trigger property is -1, it will call the property changed callback for 0.5, -1, 0.5, -1, 0.5, -1.
If you only fire the trigger event for values >= 0 I think this approach fits with what you are asking and it is 100% compatible with Blend.

And you can use it for changing the text in the middle of an animation too. For example, you can do:

<Storyboard x:Key="anim" Duration="0:0:1">
  <DoubleAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="text" Storyboard.TargetProperty="(local:CustomTrigger.Trigger)">
    <DiscreteDoubleKeyFrame KeyTime="0:0:0.5" Value="0.5"/>
  </DoubleAnimationUsingKeyFrames>
  ... rest of animations
</Storyboard>
...
<TextBlock x:Name="text">
  <i:Interaction.Triggers>
    <ei:DataTrigger Binding="{Binding (local:CustomTrigger.Trigger), ElementName=text}" Comparison="GreaterThanOrEqual" Value="0">
      <i:InvokeCommandAction Command="{Binding UpdateTextCommand}"/>
    </ei:DataTrigger>
  </i:Interaction.Triggers>


Does that make sense?
(0006715)
steveh   
2020-11-06 17:16   
(Last edited: 2020-11-06 17:16)
Hi Sergio,

Yes that makes sense. I've just given this a test and it works. The only downside is that there is no way to set the fill behaviour via the GUI in Blend, and our artists / designers tend to primarily use the GUI to edit the storyboards. I've spent a little while Googling around and the only way to change the fill behaviour from what I can see is by editing the XAML.

I may be able to set the fillbehavior when we use our custom export tool to convert the xaml source files into our image data, so I can probably programmatically set this property on all animations which affect the CustomTrigger.Trigger property.

Cheers,

-Steven

(0006716)
steveh   
2020-11-06 22:29   
Just to update you on this. So we've almost got it to a place where the audio designers are happy with this. So now I've got 2 DependencyProperties on our trigger:

TriggerProperty which is a bool
RepeatableTriggerProperty which is an int32

The reason we have kept both is that the audio designers like having a checkbox on the GUI instead of having to type in a number. I suggested that I could create an enum so they got a drop down selection, but they didn't like that idea. So we decided to create 2 properties and make the repeatable trigger in the "Advanced" section of the editor so it's hidden by default, but they still have the ability to fire the same trigger multiple times in the same storyboard.

With regards to the FillBehaviour, I added this functionality into our export pipeline and it works great. We have a tool where we feed in the *.xaml files and it writes out a *.xaml file in a slightly different format. This allows us to tag certain parts of the UI and they wont appear in the final build, e.g. we have meta data tags like the following:

<Grid x:Name="foo_console" Sumo.MetaData="Platform=xbox,ps4">
    <!-- stuff -->
</Grid>
<Grid x:Name="foo_pc" Sumo.MetaData="Platform=pc">
    <!-- stuff -->
</Grid>

The first grid will be completely removed from our PC package data, and the second grid will be completely removed from the PS4 and Xbox packages. We use this for a variety of things, but this is just 1 example. If we find a CustomTrigger.Trigger or CustomTrigger.TriggerRepeating as the target property of a storyboard, we automatically add a FillBehaviour Stop attribute in. This doesn't appear in Blend, but it does appear in our package data and it works as expect.

Right now we feel like we have enough workarounds to put this bug to bed. It'd be nice to have a fully supported feature which integrates nicely with Blend, but for now what we have is reasonable and it seems to work in all cases.

Cheers,

-Steven
(0006718)
sfernandez   
2020-11-10 18:50   
Hi Steve, I added a suggestion to Visual Studio feedback to remark FillBehavior cannot be edited using the GUI of Blend:
https://developercommunity2.visualstudio.com/t/Blend-Add-Edit-Fill-Behavior-entry-t/1247283

Do you think we can close this ticket?
(0006719)
steveh   
2020-11-10 18:59   
Hi Sergio, yes, I think our pipeline is much better now and it seems to work great.

I'll await Microsoft's response but I'm not expecting anything any time soon, so for now our programmatic solution to automatically set the fill behaviour property works fine :)

Cheers!
(0006724)
steveh   
2020-11-11 13:24   
Hi Sergio,

Sorry, just reopening this ticket. We've found 1 case this doesn't work:

https://www.noesisengine.com/xamltoy/573cc06a07416b5d38f99392d6122cb8

Every time the value flips between -1 and 1 it'll fire an event internally, and this works great. But if the keyframe is at time 0, i.e:

      <StringAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="Value" Storyboard.TargetProperty="Text" RepeatBehavior="Forever">
        <DiscreteStringKeyFrame KeyTime="0" Value="1" /> <!-- initial keyframe at time 0 -->
        <DiscreteStringKeyFrame KeyTime="0:0:1" Value="1" /> <!-- key frame to loop the sound every 1 second -->
      </StringAnimationUsingKeyFrames>


Then this doesn't seem to have a frame to reset the value, the timeline instantly loops round without stopping and thus resetting the value back to -1. This means that we can't fire audio events on a looping animation from the very first frame.

Is there any way to get WPF to forcibly clear the value as soon as it loops so we always get the dependency changed events through?

Cheers,

-Steven
(0006725)
sfernandez   
2020-11-11 17:44   
(Last edited: 2020-11-11 17:46)
Hi, no problem at all.

Before going with the issue just want to remark you can specify the duration of the animation without adding another KeyFrame:

      <StringAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="Value" Storyboard.TargetProperty="Text" RepeatBehavior="Forever" Duration="0:0:1">
        <DiscreteStringKeyFrame KeyTime="0" Value="1" /> <!-- initial keyframe at time 0 -->
      </StringAnimationUsingKeyFrames>

Yes, it seems KeyFrames placed at time 0 are used when looping without passing through the default value, and I verified that WPF is also doing the same.
Advancing the time of the initial KeyFrame a bit (to 0:0:0.01 for example) allows the animation system to set the default value on each loop, but it seems a bit hacky.

      <StringAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="Value" Storyboard.TargetProperty="Text" RepeatBehavior="Forever" Duration="0:0:1">
        <DiscreteStringKeyFrame KeyTime="0:0:0.01" Value="1" /> <!-- initial keyframe at time ~0 -->
      </StringAnimationUsingKeyFrames>

I found another way of reseting the value for "looping" animations: https://stackoverflow.com/questions/2667836/how-to-trigger-a-event-handler-when-wpf-animation-repeated
The idea is to play the animation just one time instead of Forever, and then listen to the Completed event to fire the animation again:

      <Storyboard x:Key="anim">
        <StringAnimationUsingKeyFrames FillBehavior="Stop" Storyboard.TargetName="Value" Storyboard.TargetProperty="Text" Duration="0:0:1">
          <DiscreteStringKeyFrame KeyTime="0" Value="1" /> <!-- initial keyframe at time 0 -->
        </StringAnimationUsingKeyFrames>
      </Storyboard>
      ...
      <i:Interaction.Triggers>
        <ei:StoryboardCompletedTrigger Storyboard="{StaticResource anim}">
          <ei:ControlStoryboardAction Storyboard="{StaticResource anim}">
        </ei:StoryboardCompletedTrigger>
      <i:Interaction.Triggers>

This way the property is always set to the default value after each iteration.

Any thoughts on this?

(0006726)
steveh   
2020-11-11 18:30   
(Last edited: 2020-11-11 18:31)
Hey, so the duration sounds ideal, unfortunately this trigger object is intended to be used by audio designers who work specifically with the WYSWIG Blend GUI, and I don't think the GUI exposes any of these properties via the interface. This might be one of those cases though where if they need support for it I can write the XAML for them.

With regards to the interaction trigger, that could work, but I feel it might complicate matters, right now animation is being stopped via some external C++ code (this is a countdown animation which loops every second and plays a 'blip' until we stop the animation). We could move all this logic to the XAML but that would require exposing extra properties and additional conditionals to the trigger to ensure that it doesn't continuously loop forever, it only loops whilst we're in the "game ending" phase:

<i:Interaction.Triggers>
    <ei:StoryboardCompletedTrigger Storyboard="{StaticResource anim}">
        <i:Interaction.Behaviors>
            <ei:ConditionBehavior>
                <ei:ConditionalExpression>
                    <!-- Extra Property to prevent it from looping when we set it -->
                    <ei:ComparisonCondition LeftOperand="{Binding InGameEndingPhase}" Operator="Equal" RightOperand="True" />
                </ei:ConditionalExpression>
            </ei:ConditionBehavior>
        </i:Interaction.Behaviors>
        <ei:ControlStoryboardAction Storyboard="{StaticResource anim}">
    </ei:StoryboardCompletedTrigger>
    <!-- And data trigger to stop the storyboard when we exit the phase -->
    <ei:DataTrigger Binding="{Binding InGameEndingPhase}" Value="False">
        <ei:ControlStoryboardAction Storyboard="{StaticResource anim}" ControlStoryboardOption="Stop">
    </ei:DataTrigger>
</i:Interaction.Triggers>

This just seems quite a bit more complex than the C++ code which just does something like this:

void OnPhaseChanged(EPhase ePhase)
{
    if (ePhase != GameEndPhase)
        m_pAnimation->Stop();
}

And it also doesn't get around the issue of having a nice simple interface for audio designers to go in and just drag and drop these triggers in, this still requires code support to expose this data and setup all the bindings.

I'll keep these solutions in mind for the future. Right now we've gone with the solution of just triggering the audio at 0.01 seconds like you mentioned. This is a solution that audio designers can do without editing the XAML and it also doesn't require additional code to expose extra properties to data bind to.

(0006727)
sfernandez   
2020-11-11 18:39   
I think you can still Stop the storyboard from code only because that will prevent the Completed event to be triggered so it won't loop again.
You won't need any extra property or write the extra condition in the StoryboardCompletedTrigger.
Anyway, you know better what option fits better for your designers and workflow.
(0006728)
steveh   
2020-11-11 18:49   
Ah, I wasn't aware of that, I thought Stopping via code would still trigger the completed trigger, I don't know why I thought that.

If that's the case then I think the looping in XAML could be a solution for us.

Thank you for your help and suggestion Sergio! I'm sorry thinks aren't as simple as they usually are as we have artists and designers using Blend and they're used to flashy editors like Unreal and the Adobe suite :)
Personally I like XAML and I'm happy to avoid Blend completely.

I think we can re-close this now, I think I have enough to go on and we have workarounds for the looping issue. Cheers!
(0006729)
sfernandez   
2020-11-11 19:37   
It is good to have these conversations because one of our goals is to make life easier for designers and avoid as much as possible the intervention of programmers for designing the UI.
So knowing all these situations helps us improve our product.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1834 [NoesisGUI] C++ SDK minor always 2020-11-11 12:00 2020-11-11 16:48
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Any
Summary: Button Click event not raised when pressing Gamepad_A if Alt key is pressed
Description: Button should raise Click event with Gamepad even if the Alt key is pressed (that should only affect the Space key because that key combination [Alt+Space] was intended to show the system menu).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1817 [NoesisGUI] Unity3D tweak always 2020-10-24 20:36 2020-11-03 16:39
Reporter: Armitage1982 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.8  
    Target Version: 3.0.8  
Platform: Windows
Summary: RadioButton Gallery example throw ArgumentException in Unity Editor Mode & Builds
Description: Using the **Gallery** Example in a Unity 2020.1.10f1 in Editor Mode OR Windows / WebGL Build
the **Basic input** => **RadioButton** => **GroupName** example throw this Unity ArgumentException when selecting any radio button :

<code>

ArgumentException: Object of type 'System.String' cannot be converted to type 'Noesis.Brush'.
System.RuntimeType.CheckValue (System.Object value, System.Reflection.Binder binder, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Reflection.MonoMethod.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Reflection.MonoProperty.SetValue (System.Object obj, System.Object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] index, System.Globalization.CultureInfo culture) (at <9577ac7a62ef43179789031239ba8798>:0)
System.Reflection.PropertyInfo.SetValue (System.Object obj, System.Object value, System.Object[] index) (at <9577ac7a62ef43179789031239ba8798>:0)
NoesisApp.ChangePropertyAction.SetPropertyValue () (at Assets/NoesisGUI/Plugins/API/Interactivity/ChangePropertyAction.cs:173)
NoesisApp.ChangePropertyAction.Invoke (System.Object parameter) (at Assets/NoesisGUI/Plugins/API/Interactivity/ChangePropertyAction.cs:111)
NoesisApp.TriggerAction.CallInvoke (System.Object parameter) (at Assets/NoesisGUI/Plugins/API/Interactivity/TriggerAction.cs:44)
NoesisApp.TriggerBase.InvokeActions (System.Object parameter) (at Assets/NoesisGUI/Plugins/API/Interactivity/TriggerBase.cs:82)
NoesisApp.EventTriggerBase.OnEvent (System.Object parameter) (at Assets/NoesisGUI/Plugins/API/Interactivity/EventTriggerBase.cs:94)
NoesisApp.EventTriggerBase.OnEventImpl (System.Object sender, Noesis.EventArgs eventArgs) (at Assets/NoesisGUI/Plugins/API/Interactivity/EventTriggerBase.cs:207)
NoesisApp.EventTriggerBase+EventWrapper.Invoke (System.Object sender, Noesis.EventArgs e) (at Assets/NoesisGUI/Plugins/API/Interactivity/EventTriggerBase.cs:156)
(wrapper unbox) NoesisApp.EventTriggerBase+EventWrapper.Invoke(object,Noesis.EventArgs)
Noesis.RoutedEventArgs.InvokeHandler (System.Delegate handler, System.IntPtr sender, System.IntPtr args) (at Assets/NoesisGUI/Plugins/API/Proxies/RoutedEventArgs.cs:50)
Noesis.EventManager.InvokeHandler (System.IntPtr routedEvent, System.Delegate handler, System.IntPtr sender, System.IntPtr args) (at Assets/NoesisGUI/Plugins/API/Core/Events.cs:586)
Noesis.EventHandlerStore.RaiseRoutedEvent (System.IntPtr cPtrType, System.IntPtr cPtr, System.IntPtr routedEvent, System.IntPtr sender, System.IntPtr e) (at Assets/NoesisGUI/Plugins/API/Core/Events.cs:275)
UnityEngine.Debug:LogException(Exception)
NoesisUnity:OnUnhandledException(Exception) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:167)
Noesis.Error:UnhandledException(Exception) (at Assets/NoesisGUI/Plugins/API/Core/Error.cs:18)
Noesis.EventHandlerStore:RaiseRoutedEvent(IntPtr, IntPtr, IntPtr, IntPtr, IntPtr) (at Assets/NoesisGUI/Plugins/API/Core/Events.cs:280)
Noesis.View:Noesis_View_MouseButtonUp(HandleRef, Int32, Int32, Int32)
Noesis.View:MouseButtonUp(Int32, Int32, MouseButton) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:154)
NoesisView:ProcessEvent(Event, Boolean, Boolean, Boolean) (at Assets/NoesisGUI/Plugins/NoesisView.cs:1133)
NoesisView:OnGUI() (at Assets/NoesisGUI/Plugins/NoesisView.cs:1227)

</code>
Tags:
Steps To Reproduce: Simply try the Gallery Example from https://github.com/Noesis/Tutorials/tree/master/Samples/Gallery/Unity
in Edit mode or inside a unity 2020.1.10f1 Build
Additional Information:
Attached Files:
Notes
(0006704)
sfernandez   
2020-10-26 10:55   
Thanks for the report, this is related to the lack of TypeConverters for some types in C# API.
It turns out that TypeDescriptor.GetConverter() can't find a valid converter for Brush type.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1825 [NoesisGUI] Unity3D minor always 2020-10-30 10:19 2020-10-30 10:20
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Problem creating Unity Render Textures when linear rendering is enabled
Description: When linear rendering is enabled, render textures must have 'R8G8B8A8_SRGB' format but there is no way to use that format when the render texture is created by the editor (Assets->Create->Render Texture). The problem goes away if the render texture is created by code.

We are going to add a new entry (Assets->Create->Noesis Render Texture) to workaround this problem.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1736 [NoesisGUI] C++ SDK crash random 2020-06-24 08:33 2020-10-29 17:56
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Windows
Summary: Crash when calling UpdateView
Description: Noesis occasionally crashed inside UpdateView.
It happens when we switches tabs or buttons quickly. Currently we don't have small environment that can reproduces the problem.

Here is the callstack:


> Noesis.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 536 C++
     [Inline Frame] Noesis.dll!Noesis::ViewLayout::ProcessMeasures() Line 526 C++
     Noesis.dll!Noesis::ViewLayout::ProcessLayout() Line 380 C++
     [Inline Frame] Noesis.dll!Noesis::ViewLayout::Layout(bool) Line 255 C++
     [Inline Frame] Noesis.dll!Noesis::View::UpdateContent() Line 730 C++
     [Inline Frame] Noesis.dll!Noesis::View::InternalUpdate(double) Line 714 C++
     Noesis.dll!Noesis::View::Update(double timeInSeconds) Line 639 C++
     NoesisUtil.dll!NoesisUtil::ZUIImpl::UpdateView() Line 631 C++

I attached the dump file, Noesis.{dll,pdb}, and NoesisUtil.{dll,pdb}. Could you please analyze it and if possible provide a fix ?

# NoesisUtil is our integration layer.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Zpal2_rxcpp.dmp (1,228,419 bytes) 2020-06-24 08:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1255&type=bug
Noesis.dll (4,859,392 bytes) 2020-06-24 08:33
https://www.noesisengine.com/bugs/file_download.php?file_id=1256&type=bug
ClicksAndCrash.gif (2,609,438 bytes) 2020-06-24 09:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1257&type=bug
image (16).png (155,612 bytes) 2020-06-24 09:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1258&type=bug
ClicksAndCrash-2.gif (2,609,438 bytes) 2020-06-24 09:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1259&type=bug
NoesisGUI-win-x86_64sln_HelloWorld.patch (22,639 bytes) 2020-07-01 05:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1267&type=bug
Notes
(0006449)
nikobarli   
2020-06-24 08:36   
Oops, seems that the PDB files are too large.
(0006450)
nikobarli   
2020-06-24 08:44   
Please find the files in my OneDrive here: https://ziokk-my.sharepoint.com/:f:/g/personal/bniko_zio_co_jp/EnREbrAMyN9DjZeUDXL-P2YBiqg8Pxr9G9SRHq0QIMp1Ug?e=Q9BoYY

The link will expire in 2020/8/23.

Thanks
(0006451)
nikobarli   
2020-06-24 09:20   
Hhmmhh the OneDrive link seems to have problem as well.
Please use this one if it is not working:

https://drive.google.com/drive/folders/1w4Q1ot0P3X_0cF94OBWznR2HNj5wZMxk?usp=sharing
(0006452)
nikobarli   
2020-06-24 09:29   
BTW, this is another crash inside UpdateView that we had. The callstack is different from above.
It also happens if we operate on NoesisGUI quickly. In this case, switching tabs quickly.
(0006471)
sfernandez   
2020-06-29 19:03   
Thanks for the info, we'll take a look as soon as possible.
Any chance we can get the TabControl and tabs definition that leads to this crash?
(0006472)
sfernandez   
2020-06-29 19:09   
From the gif video I see there are panels also changing on the background, not only the TabControl contents. If you hide/disable those background panels so only the TabControl changes, does the crash still occurs? I'm just trying to figure out if the problem is related to the TabControl or it could be something more complex.
(0006476)
nikobarli   
2020-06-30 06:50   
The tabs are actually old code that we no longer used. The background panels are ordinary MFC windows that reacts to the Noesis GUI.
We no longer have the code now and we have avoided using tabs (partly due to adjusting to UI design that requires no tab implementation), and use buttons for most of the scenarios.
But we still have the similar exception when calling view->Update().

From the dump core, do you have any idea what may cause this issue ?
(0006477)
sfernandez   
2020-06-30 12:24   
From the dump I see that is crashing when calling or returning from MeasureCore, so I guess the UI element is being destroyed while measuring.
It could help if you can add some logs in the UIElement::Measure() function to determine which control is, something like:
    if (!IsMeasureValid() || availableSize != mPreviousMeasureConstraint)
    {
        NS_LOG_INFO("[Measure] %s (%s): (%gx%g)", GetClassType()->GetName(),
            GetValue<NsString>(FrameworkElement::NameProperty).c_str(),
            availableSize.width, availableSize.height);

        // We want always to arrange after measure
        InvalidateArrange();

       ...


If you make it crash again there, please attach the logs.

After that I would like to test something, in ViewLayout.cpp, in the ProcessMeasures() function use a Ptr to store the current element during its measure:
void ViewLayout::ProcessMeasures()
{
    NS_PROFILE_CPU("Gui/Layout/Measure");

    Ptr<UIElement> current(*mMeasures.begin());

    NS_ASSERT(!current->IsMeasureValid());

    mInsideLayout = true;
    current->Measure(current->GetMeasureConstraint());
    mInsideLayout = false;
}


If with that change you don't get more crashes there, it would mean the object is definitely being destroyed inside its measure.
(0006481)
nikobarli   
2020-07-01 05:15   
Thanks. We will try to patch our code and see if it happens again.

Meanwhile, we found a code that reproduce the crash stack trace in ClicksAndCrash-2.gif (related to animation?) .
Please find the patch below. Just click anywhere inside the window to crash the program.

FYI, we are using Noesis 2.2.6 x64 version.
(0006482)
sfernandez   
2020-07-01 12:26   
Thanks a lot for that xaml, looking into it right now.
(0006484)
sfernandez   
2020-07-01 17:23   
I moved the second crash (the one related to animations) to a new ticket: 0001743
(0006491)
nikobarli   
2020-07-02 10:47   
Thanks, I confirmed that the fix in 1743.

BTW, could you clarify in what condition the crash in that scenario happens ?
We are in final stage of releasing software, and we probably not able to incorporate the fix unless it is really necessary (to avoid risk of side effects).
If we can know the condition that cause the crash, we can check our XAML style to see whether it is likely to happens and decide whether to incorporate the fix.
(0006493)
sfernandez   
2020-07-02 12:23   
It was happening when an ongoing visual transition (MouseOver) animates an object that gets destroyed (because IsChecked changes the Foreground brush object).
In the attached sample you can workaround the bug by using a local brush (instead of the inherited from the Control):
<ContentPresenter x:Name="ContentHost">
  <TextElement.Foreground>
    <SolidColorBrush Color="{Binding Foreground.Color, RelativeSource={RelativeSource TemplatedParent}}"/>
  </TextElement.Foreground>
</ContentPresenter>
(0006541)
nikobarli   
2020-07-22 05:55   
FYI, we added the following fix to our internal Noesis source code for release.
Sorry that we don't have the information yet on which UI element that causes the crash (because we needed to release the software) .

void ViewLayout::ProcessMeasures()
{
    NS_PROFILE_CPU("Gui/Layout/Measure");

    Ptr<UIElement> current(*mMeasures.begin());

    NS_ASSERT(!current->IsMeasureValid());

    mInsideLayout = true;
    current->Measure(current->GetMeasureConstraint());
    mInsideLayout = false;
}


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1686 [NoesisGUI] C# SDK minor always 2020-05-15 20:52 2020-10-29 17:55
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.7  
Platform: Any
Summary: Antialiasing doesn't work when element has DropShadowEffect
Description: Hi guys,

the DropShadowEffect is awesome but I've noticed a little issue with the rounded corners.
See the attached screenshots, pay attention to the rounded labels such as "PvP", "OFFICIAL", etc. I've tested with MSAA and PPAA. Both don't work.

I can remove rounded corners for now but I wish it could be fixed (especially if the fix is straightforward).

Good job on the DropShadowEffect overall as it allows me to add depth into the UI where necessary, and improve the text effects! :-)

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: MSAA_NoShadow.png (839,656 bytes) 2020-05-15 20:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1234&type=bug
MSAA_WithShadow.png (876,752 bytes) 2020-05-15 20:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1235&type=bug
Screenshot at 19-32-15.png (31,361 bytes) 2020-07-02 17:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1275&type=bug
Screenshot at 19-31-59.png (38,955 bytes) 2020-07-02 17:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1276&type=bug
Notes
(0006385)
jsantos   
2020-05-20 10:58   
This is probably a silly thing but we locked 3.0.0, we will solve it in 3.0.1. Thanks for your feedback, as always!
(0006478)
sfernandez   
2020-06-30 13:34   
I've been doing some tests and it looks like PPAA is not disabled when using effects. I created a xamltoy showing it: https://www.noesisengine.com/xamltoy/44de34a2f908121cca23d6d94885474c
I don't remember changing anything related in our latest releases, but could you please check again to confirm you are still having this issue?
(0006495)
ai_enabled   
2020-07-02 17:43   
(Last edited: 2020-07-02 17:45)
It's broken for both PPAA and MSAA as I've just checked.
The screenshot above is without the drop shadow effect and the MSAA works fine there.

(0006498)
sfernandez   
2020-07-03 12:26   
So those images are using MSAA only, PPAA is not enabled when Views are created, right?
I think it makes more sense to me now, what is happening is that offscreen textures are created without the correct MSAA samples.
Can you check if, before initializing the Renderer, you are calling RenderDevice.SetOffscreenSampleCount() to the appropriate number of samples?

Have you considered using PPAA only or do you need MSAA for anything else in your game?
(0006654)
ai_enabled   
2020-09-28 13:47   
(Last edited: 2020-09-28 13:52)
Hi Sergio,
sorry for the late reply.

We utilize MSAA for a few other features in the game. I always prefer MSAA for NoesisGUI as it doesn't have any side effects (thicker lines). PPAA is fine when MSAA is not available or too expensive to use.

I got a chance to work on this. You're 100% right, the issue is with the OffscreenSampleCount.
The big problem here is that the game allows the player to change MSAA setting on the fly (off/2x/4x/8x). Currently, the Noesis View must be recreated in order to initialize it with new RenderDeviceD3D11 (that has new OffscreenSampleCount). Simply changing OffscreenSampleCount for the existing RenderDeviceD3D11 instance is not enough and I can guess why.

I wish we could change this on the fly as recreating a View object is a big no-no. It causes an issue with a multitude of other systems.
E.g. allowing the call to view.Renderer.Init(renderDeviceD3D11) again after it was already initialized would solve this problem (as I can change device's OffscreenSampleCount and call view.Renderer.Init). Currently, it's not supported as further access to the renderer object results in a memory access violation.

Regards!

(0006710)
jsantos   
2020-10-29 17:55   
(Last edited: 2020-10-29 17:55)
I am going to close this, as this is not related to DropShadowEffect.

Let's move the discussion to 0001805



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1824 [NoesisGUI] C++ SDK minor always 2020-10-29 11:48 2020-10-29 17:13
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Character spacing + viewbox does not calculate bounds correctly
Description: Hi guys,

We're just testing out the character spacing which was added in 3.0.4. We have a fixed region that we're rendering to and we want to scale some text down so it never bleeds over the edge. We're doing this by adding a bit of negative character spacing and applying a downonly scale viewbox. This works in most cases but I can get the text to clip outside the viewbox region when we have negative character spacing:

https://www.noesisengine.com/xamltoy/cb9227740574f593af4960effb62db1f

I created an example on XAML toy. Set font size to max and character spacing to around -250.0, you'll see that the "e" in "Change Me" bleeds outisde the viewbox region.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006709)
jsantos   
2020-10-29 17:13   
Fixed in r9707

Will be available in the imminent 3.0.7


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1454 [NoesisGUI] Unity3D feature always 2019-04-24 05:44 2020-10-26 11:19
Reporter: shawn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: custom TypeConverters are not supported in NoesisGUI C# API
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1658&p=9502#p9502
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1818 [NoesisGUI] Unity3D minor always 2020-10-25 17:33 2020-10-25 17:45
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: iOS
Summary: Unity + iOS Build Errors when using only Metal in Graphics APIs
Description: Unity is no longer linking against OpenGLES framework when using only Metal. Noesis library seems to require it.
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2120
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1814 [NoesisGUI] Unity3D crash always 2020-10-19 13:32 2020-10-21 13:49
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Crash closing Unity after compiling scripts while playing
Description: When editing scripts Unity calls OnDisable, compiles the new assembly, and finally calls OnEnable again.
Our NoesisView component register the Renderer (NoesisRenderer.RegisterView(_uiView, _commands)) during OnEnable, but unregisters it (NoesisRenderer.UnregisterView(_uiView, _commands)) during OnDestroy.
So when scripts are compiled a new view+renderer are created and registered in the native library without unregistering the previous one.
This can lead to crashes when closing Unity editor.
Tags:
Steps To Reproduce: - Open QuestLog sample and click Play
- Edit any script (for example QuestLog's ViewModel.cs) and save it
- Go back to Unity
- Stop and close Unity
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1806 [NoesisGUI] Unity3D crash sometimes 2020-10-13 18:06 2020-10-19 17:11
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Crashing when entering play or updating XAMLs
Description: Unity 2019.4.1 lts.

It seems to happen randomly. I think they both are from the same issue, but I attached both one that happened from trying to enter play mode and another when updating an XAML. This was not happening on 3.0.4.
Tags:
Steps To Reproduce: Enter play or update an xaml.
Additional Information:
Attached Files: Crash_2020-10-13_150928463.rar (342,201 bytes) 2020-10-13 18:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1305&type=bug
Crash_2020-10-13_160259425.rar (372,074 bytes) 2020-10-13 18:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1306&type=bug
Crash_2020-10-14_150306115.rar (307,978 bytes) 2020-10-14 17:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1307&type=bug
Crash_2020-10-14_150810669.rar (275,220 bytes) 2020-10-14 17:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1308&type=bug
Crash_2020-10-14_155531998.rar (314,451 bytes) 2020-10-14 17:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1309&type=bug
Crash_2020-10-14_180635802.rar (372,871 bytes) 2020-10-14 20:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1310&type=bug
Crash_2020-10-14_192103864.rar (385,178 bytes) 2020-10-14 21:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1311&type=bug
Notes
(0006661)
sfernandez   
2020-10-13 19:33   
Yes, both crashes point to the same problem.
I'll let you know if I need your help investigating this issue.
(0006663)
asusralis   
2020-10-13 22:35   
This actually happens quite a bit now :( I'm not sure what exactly has changed.
(0006664)
sfernandez   
2020-10-14 11:36   
I need more information to determine the cause of the crash so I generated a debug library with some extra logs:
https://drive.google.com/file/d/10V7MnVrGsDufmS_i_SHVk6zS9osUCCAZ/view?usp=sharing

Could you please try it and also set "Log Verbosity" to "Normal" in NoesisGUI Settings? Once it crashes please send the dump and logs as before.

Thanks for your collaboration.
(0006671)
asusralis   
2020-10-14 17:09   
I'm also now getting another crash just by clicking on any button, but it seems to have started once I put in what you sent me. This seems to be different.
(0006672)
sfernandez   
2020-10-14 17:41   
Latest crash was from one of the asserts I added to check something, please try this new library:
https://drive.google.com/file/d/1q6VMjOoQgV_aD8rUClK0Fxw07cv8gyvG/view?usp=sharing

If it is possible to get a copy of your unity project it would be even better as I can debug it myself faster.
(0006673)
sfernandez   
2020-10-14 19:07   
It seems you didn't enable the "Log Verbosity" = "Normal" in NoesisGUI Settings.
Could you do that so I can see the logs I'm generating to help identify this crash?
It will spam a lot of messages to Unity console but it is just for this tests.
(0006674)
asusralis   
2020-10-14 20:08   
Does this work?
(0006675)
sfernandez   
2020-10-14 20:32   
Sorry, my fault, the verbosity level should have been set to "Binding" :(
Could you please send me the crash dump and logs again with that setting?
(0006676)
asusralis   
2020-10-14 21:23   
This happened when code unrelated to Noesis was compiling.
(0006677)
sfernandez   
2020-10-15 00:33   
One question, what is the type of Empis.Unity.ViewModels.LoginVM.Message property?
That property returns an object that is stored in the LoginVM or it creates a new one?
(0006678)
asusralis   
2020-10-15 00:37   
private NotifyMessage _message;

        public NotifyMessage Message
        {
            get => _message;
            set => Set(ref _message, value);
        }


        public class NotifyMessage
        {
            public string Body { get; }

            public bool IsError { get; }

            public NotifyMessage(string body, bool isError)
            {
                Body = body;
                IsError = isError;
            }
        }
(0006679)
asusralis   
2020-10-15 00:53   
The NotifyMessage class is nested inside LoginVM.
(0006680)
sfernandez   
2020-10-15 12:15   
Hi, could it be possible to get a copy of your Unity project so I can test it directly and make sure the bug is correclty fixed?
You can create a private note to avoid sharing that publicly.
(0006686)
sfernandez   
2020-10-17 03:17   
Hi, I generated a new library with a patch for the crash:
https://drive.google.com/file/d/1QAOaZtCfOICjbzYwAQjx9opM-CYCIHCc/view?usp=sharing

I've been playing with the game a bit and it seems stable.
Please let me know if you find any other issues.
(0006687)
asusralis   
2020-10-17 03:23   
My savior! Thanks, I'll try it out and report back if I find any problems. Sorry again for it being so involved.
(0006688)
asusralis   
2020-10-17 03:23   
Did you still need access to the repo?
(0006689)
asusralis   
2020-10-17 03:25   
Also, I was curious if you could summarize what the problem was? I found it interesting that Noesis was causing crashing in all those different places.
(0006694)
sfernandez   
2020-10-19 10:07   
You're welcome.

If eveything is working fine for you I think you can remove that repo.

The problem was always the same, a binding that was trying to access some destroyed object because of a wrong data context change notification.
(0006696)
sfernandez   
2020-10-19 17:11   
I'll mark this as solved, if you find any other issue you can create a new ticket.
Thanks a lot for you help fixing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1809 [NoesisGUI] C++ SDK minor always 2020-10-14 21:54 2020-10-19 10:53
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Selector doesn't synchonise selected index correctly
Description: HI guys,

I've recently updated to 3.0.6 from 3.0.0 and I'm experiencing a new issue. I have a listbox with ItemsSource bound to an ObservableCollection in code. The XAML binds the SelectedValue to an entry which is set up in the constructor of the data context.

class MyLeafObject{}

class MyStruct
{
public:
    ObservableCollection<MyLeafObject> LeafObjects;
    MyLeafObject SelectedLeaf;
}

class MyDataContext
{
    MyDataContext()
    {
        Entries = MakePtr<ObservableCollection<MyStruct>>();
        Entries->Add(MakePtr<MyStruct>());
        // ...
        CurrentStruct = Entries->Get(0); // Set default selected value
    }
private:
    ObservableCollection<MyStruct> Entries;
    MyStruct CurrentStruct;
}

<ListBox x:Name="MyParentLB" ItemsSource="{Binding Entries}" SelectedValue="{Binding Path=CurrentStruct, Mode=TwoWay}" />
<ListBox x:Name="MyLeafLB" ItemsSource="{Binding CurrentStruct.LeafObjects}" SelectedValue="{Binding Path=CurrentStruct.CurrentLeaf, Mode=TwoWay}" />




This all worked in 3.0.0. When the item container generator generated the listboxitems, it correctly applied the selected state to the entry we set in MyDataContext::MyDataContext.

Since updating to 3.0.6, this no longer happens. From what I can see, the Selector::SelectedIndex / Selector::SelectedValue are correct, but the Selector::mSelectedIndices array never gets populated. I've trace it through the following callstack:

> game.exe!Noesis::Selector::SynchronizeWithCurrent(int currentIndex) Line 774 C++
     game.exe!Noesis::Selector::OnItemsSourceChanged(Noesis::BaseComponent * __formal, Noesis::BaseComponent * __formal) Line 153 C++
     game.exe!Noesis::ItemsControl::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 700 C++
     game.exe!Noesis::Selector::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 584 C++

if (!sync.HasValue())
    {
        // Sync if ItemsSource is a CollectionView
        CollectionView* cv = DynamicCast<CollectionView*>(GetItemsSource());
        if (cv != 0)
        {
            if (GetSelectedIndex() != currentIndex)
            {
                SetSelectedIndex(currentIndex);
            }
            else
            {
                GetItems()->MoveCurrentToPosition(currentIndex);
            }
        }
    }


The ItemsSource is not a CollectionView object, so "if (cv != 0)" does not succeed. So the ItemsSource all looks good, the dependency property code is all bound / initialise correctly, but none of the properties syncrhonise the mSelectedIndices array.

So when we finally get around to generating the containers:

> game.exe!Noesis::Selector::OnContainersGenerated() Line 528 C++
     [Inline Frame] game.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::operator()(Noesis::BaseComponent *) Line 172 C++
     [Inline Frame] game.exe!Noesis::ItemContainerGenerator::SetStatus(Noesis::GeneratorStatus) Line 252 C++
     game.exe!Noesis::ItemContainerGenerator::Stop() Line 616 C++
     game.exe!Noesis::Panel::GenerateChildren() Line 544 C++


It bails out here:

            // Update container IsSelected as specified by selected items list
            int32_t itemIndex = generator->IndexFromContainer(container);
            bool isSelected = Finder::Find(mSelectedIndices, itemIndex);
            if (GetIsSelected(container) != isSelected)
            {
                SetIsSelected(container, isSelected);
            }


The condition fails because isSelected returns false. itemIndex is correctly set to 0, the container is set to our correct ListBoxItem, and GetIsSelected(ListBoxItem) returns false. If mSelectedIndices contained my selected index at this point everything should work fine.

Any idea how I can go about fixing this? I can manually call "->SetSelectedIndex(0)" when the containers are generated, but this just feels like a hack, the bindings should update the selected property ideally.

Sorry for the wall of text,

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006683)
sfernandez   
2020-10-16 11:45   
Thanks a lot for the detailed report, I'm investigating this right now.
(0006695)
sfernandez   
2020-10-19 10:53   
Solved in revision 9677.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1813 [NoesisGUI] C++ SDK crash always 2020-10-17 10:28 2020-10-17 13:41
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Use of deprecated texture2D() in OpenGL 3.1+ shaders
Description: In NoesisGUI 3.0.4 you still got this right, and used `texture()` rather than deprecated `texture2D()` in your GLSL #140 code.

In 3.0.5 / 3.0.6, for an unknown reason, you started using `texture2D()` which is only available in explicit compatbility profiles, but not in standard, forward compatible profiles.
Tags: OpenGL
Steps To Reproduce: Try to use your your 3.0.6 GLRenderDevice with an OpenGL 4.3 CORE context.
Depending on the driver (known to be broken on Intels Windows drivers), shader compilation will now fail:

[OpenGL] Error high : SHADER_ID_COMPILE error has been generated. GLSL compile failed for shader 24, "": ERROR: 2:442: 'function' : is removed in Forward Compatible context texture2D
ERROR: 2:442: 'texture2D' : no matching overloaded function found (using implicit conversion)
ERROR: 2:442: 'texture2D' : function is not known
ERROR: 2:441: '=' : cannot convert from 'const highp float' to '4-component vector of highp float'


2020.10.15 17:03:41:785 [NOESIS] Shader compilation failed: ERROR: 2:442: 'function' : is removed in Forward Compatible context texture2D
ERROR: 2:442: 'texture2D' : no matching overloaded function found (using implicit conversion)
ERROR: 2:442: 'texture2D' : function is not known
ERROR: 2:441: '=' : cannot convert from 'const highp float' to '4-component vector of highp float'
Additional Information:
Attached Files: Shader.140.frag.h (15,949 bytes) 2020-10-17 12:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1313&type=bug
Notes
(0006690)
jsantos   
2020-10-17 12:16   
(Last edited: 2020-10-17 12:18)
Thanks for reporting this, in 3.0.5 we moved away from glsl-optimizer to handcrafted shaders for each version and using glslangValidator for validating. This allow us to generate more efficient shaders, but it seems glslangValidator is not complaining about using texture2D in #version 140 (I even tried #version 150 core) and there is no way to force that warning, I probably should report this.

(0006691)
jsantos   
2020-10-17 12:18   
Please, find attached the fix and let me know if everything is right. This will be available in the imminent 3.0.7.

Thanks for taking care
(0006692)
Ext3h   
2020-10-17 13:27   
Can't validate as I don't have access to an Intel iGPU system myself. Issue was reported by a consumer. I do expect the issue to be resolved though.
(0006693)
jsantos   
2020-10-17 13:41   
Unfortunately, all the machines we have here (including Intel integrated GPU - UHD Graphics 620 - ) render correctly with texture2D.

I am committing this change right now though.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1798 [NoesisGUI] C++ SDK major always 2020-09-24 08:17 2020-10-15 18:45
Reporter: satorp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Windows
Summary: Memory leak when using ContextMenuService.PlacementTarget
Description: Specifying context menu placement target to owner element seems to cause memory leak (reported by Noesis memory check and CRT memory leak report). Possibly caused by circular reference?
Tags:
Steps To Reproduce: Sample XAML (TextBlock is irrelevant, also reproducible on other elements):

<TextBlock x:Name="MyText" ...
      ContextMenuService.Placement="Center"
      ContextMenuService.IsEnabled="True"
      ContextMenuService.PlacementTarget="{Binding ElementName=MyText}">
   <TextBlock.ContextMenu>...</TextBlock.ContextMenu>
</TextBlock>

Display the context menu and close application.
Additional Information:
Attached Files:
Notes
(0006660)
satorp   
2020-10-09 02:36   
This issue seems not reproducible in previous versions. Is it specific to Noesis 3.0?
(0006662)
sfernandez   
2020-10-13 19:51   
It seems this leak was introduced in 3.0.4 version, we'll fix it for next release.
Anyway, in this case you don't need to set the PlacementTarget property, because by default a ContextMenu uses its owner as placement target.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1810 [NoesisGUI] C++ SDK minor always 2020-10-15 14:09 2020-10-15 14:15
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: BringIntoView ignores target rectangle
Description: When passing a target rectangle to BringIntoView function it is ignored and it is using always the element RenderSize.
This makes impossible to scroll into specific coordinates of an element.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1807 [NoesisGUI] C++ SDK minor always 2020-10-14 17:50 2020-10-14 17:57
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: PlayStation4
Summary: PS4 Compile error in 3.0.6
Description: Hi guys,

Just upgrading from 3.0.0 -> 3.0.6 and found a compile error with our PS4 build. It's a simple fix, it's just a missing forward declare.

The error is in FormattedText.h:

void SetOwner(TextBlock* owner);

TextBlock is not forward declared. I simply added "class TextBlock" to the top of the file alongside all other forward declares and it fixed the error. Everything else compiled fine.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1801 [NoesisGUI] C++ SDK major always 2020-09-28 17:15 2020-10-14 14:55
Reporter: Roest Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: GUI stretching/shrinking when mouse over certain gui elements after window resize
Description: After resizing the window the UI shows a weird resizing effect with some gui elements.

Tags: C++
Steps To Reproduce: Don't have a minimal example for that. The game is free on Steam so it's possible to see there. Steps are visible in this example video [url]https://gfycat.com/snivelingbelovedflea[/url]

You can see for yourself on [url]https://store.steampowered.com/app/709240/Ingnomia/[/url] and the code would be on [url]https://github.com/rschurade/Ingnomia[/url]
Additional Information:
Attached Files:
Notes
(0006665)
sfernandez   
2020-10-14 12:18   
Looking at the video it seems related to the drawing of offscreen textures because during that phase we change the active render target and viewport.
Do you restore main render target's Viewport after calling Noesis renderer->RenderOffscreen() and before calling renderer->Render()?
(0006666)
Roest   
2020-10-14 12:50   
I'd say yes. The relevant code is here: https://github.com/rschurade/Ingnomia/blob/master/src/gui/mainwindow.cpp#L561
(0006667)
sfernandez   
2020-10-14 13:34   
Looking at the code, renderer->paintWorld() is not calling glViewport, and I don't see that QOpenGLWindow::makeCurrent calling it either: https://code.woboq.org/qt5/qtbase/src/gui/kernel/qopenglwindow.cpp.html#_ZN13QOpenGLWindow11makeCurrentEv
Could you do a quick test and always call glViewport (with the appropriate sizes) before renderer->paintWorld()?
(0006668)
Roest   
2020-10-14 13:41   
That seems to fix it.
(0006669)
sfernandez   
2020-10-14 13:49   
(Last edited: 2020-10-14 13:50)
Great, so that was the missing piece. It should be enough to call it after makeCurrent:

if ( m_view->GetRenderer()->RenderOffscreen() )
{
    // Restore state managed by QOpenGLWindow
    makeCurrent();
    glViewport(...);
}

Could you confirm it?

(0006670)
Roest   
2020-10-14 13:59   
Well I have to call it at the beginning of paintWorld() but that basically the same location in execution order. So this could be closed. Thanks


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1648 [NoesisGUI] Unity3D major always 2020-04-06 15:27 2020-09-30 20:22
Reporter: kokolihapihvi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Windows
Summary: Possible to delete items by right clicking while dragging in inventory example
Description: It seems that the effect of the drag and drop operation is always set to "MOVE" when you click any mouse button while dragging an item.
Holding down any mouse button while starting a drag operation also permanently deletes the item.
Tags:
Steps To Reproduce: Open the inventory sample unity scene
Start dragging an item
Click any other mouse button
Item will be permanently deleted
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1803 [NoesisGUI] C++ SDK feature N/A 2020-09-30 13:48 2020-09-30 13:50
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.7  
    Target Version: 3.0.7  
Platform: Any
Summary: Implement support for setting the global culture
Description: Right now, StringFormat is using a hardcoded NumerFormatInfo. Expose a function in IntegrationAPI to change the default culture.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1800 [NoesisGUI] C# SDK trivial always 2020-09-25 21:04 2020-09-28 14:18
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: "Virtualization disabled" reporting is not helpful
Description: Hi guys,
firs of all, good job on 3.0.6 patch!

I've noticed that log callback in NoesisGUI sometimes brings redundant information and so makes the feature useless (I just getting the same spam again and again and eventually have to disable the feature).

For example, I have a ListBox that doesn't have a ScrollViewer in its ListBox.Template. Still, I get this warning message:
"Virtualization disabled: items control IsVirtualizing is False"
I've tried to decorate that ListBox with
ScrollViewer.VerticalScrollBarVisibility="Disabled"
VirtualizingStackPanel.IsVirtualizing="False"
but I still get the same warnings.

Regards!

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006653)
sfernandez   
2020-09-28 10:29   
Thanks!

If the ListBox doesn't have a ScrollViewer why is it using a VirtualizingStackPanel?
Shouldn't you change ItemsPanel to a simple StackPanel?

Those messages are there to help identify the situations where VirtualizingStackPanel is not virtualizing anything, so using a StackPanel should fit better.

Maybe we can detect that IsVirtualizing is explicitly set to "False", and don't show the warning in that case.
(0006655)
ai_enabled   
2020-09-28 14:18   
Thanks! I was under impression that I'm not using VirtualizingStackPanel in the base class. Adding custom override for ItemsControl.ItemsPanel to use simple StackPanel for ListBox resolved the issue.

> Maybe we can detect that IsVirtualizing is explicitly set to "False", and don't show the warning in that case.
This idea is good but I can imagine it may be a problem to implement it this way.

I think the suggestion to not use VirtualizingStackPanel is a proper approach in that case. Perhaps you can expand "Virtualization disabled: items control IsVirtualizing is False". I really cannot imagine the case when I need to disable virtualization for an ItemsControl with a VirtualizingStackPanel. I will simply override the Panel property to use regular StackPanel.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1683 [NoesisGUI] C# SDK crash always 2020-05-08 18:31 2020-09-25 17:46
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: SetManipulationContainerHelper Causes Fatal Crash
Description: 0x00007FFE878EB82B (Noesis) ManipulationStartingEventArgs_SetManipulationContainerHelper
0x00007FFE878F2379 (Noesis) ManipulationStartingEventArgs_SetManipulationContainerHelper
0x00007FFE878EC6B4 (Noesis) ManipulationStartingEventArgs_SetManipulationContainerHelper
0x00007FFE878EAB44 (Noesis) ManipulationStartingEventArgs_SetManipulationContainerHelper
0x00007FFE87A16776 (Noesis) Noesis_RegisterLogCallback
0x00007FF60746892E (Unity) GfxDeviceWorker::RunCommand
0x00007FF60747073C (Unity) GfxDeviceWorker::RunExt
0x00007FF607470B28 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF6083046D3 (Unity) Thread::RunThreadWrapper
0x00007FFF3C787BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFF3E3ECE51 (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce: It happens when a starship destroys a building in Stellar Conquest. This is likely some form of user error on my part -- but the game/editor should not crash. I'll provide more information once I learn more.
Additional Information:
Attached Files: Crash_2020-05-08_162809306.zip (565,993 bytes) 2020-05-08 18:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1229&type=bug
Notes
(0006337)
sfernandez   
2020-05-08 22:05   
I generated a debug version of the library to see if hits an assert that could help me understand where the problem is coming from.
https://drive.google.com/file/d/1ncuu7WxGHdKxV5M-esLo1s-pUIPNd8CS/view?usp=sharing

Could you please try it and attach the crash dump?
(0006473)
stonstad   
2020-06-29 20:19   
Hey Sergio -- I haven't seen this bug reoccur -- I think it is likely an issue that was resolved in the beta. I'm good with us closing/resolving this issue. Thank you for your assistance.
(0006475)
sfernandez   
2020-06-29 20:27   
Ok, if you find this error again feel free to reopen it, thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1142 [NoesisGUI] C# SDK minor always 2017-08-28 14:46 2020-09-25 10:52
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Can't disable tooltip animation
Description: To disable NoesisGUI ToolTip animations in VE, we used this XAML resources hack:

        <PopupAnimation x:Key="{x:Static SystemParameters.ToolTipPopupAnimationKey}">None</PopupAnimation>

But in NoesisGUI 2.0.2f2 it throws exception: Enum node can't have attributes.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004796)
sfernandez   
2017-08-30 12:24   
I will check the parsing error. I guess that in Noesis 1.2 that x:Key was ignored or just showing a warning and now we are raising an error. In fact we never supported SystemParameters static class, and x:Static support is very limited too.

Meanwhile you can just set it like:
Popup.PopupAnimation="None"

Or using a setter in a Style:
<Setter Property="PopupAnimation" Value="None"/>


Can't you use that?
(0004798)
ai_enabled   
2017-08-30 12:55   
(Last edited: 2017-08-30 12:56)
Unfortunately, it doesn't work, it's still animated. I've tried to define default styles like that:
   <Style TargetType="{x:Type Popup}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="PopupAnimation" Value="None" />
    </Style>

    <Style TargetType="{x:Type ToolTip}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Popup.PopupAnimation" Value="None" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToolTip}">
                    <Border Background="Yellow">
                        <ContentPresenter />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


(0004799)
sfernandez   
2017-08-30 18:27   
Unfortunately Popup elements cannot have default styles defined in the Theme as they don't override DefaultStyleKey property.
If you want something generic, you can define an implicit style for the Popup in the root of the UI tree.
(0004800)
sfernandez   
2017-08-30 18:38   
Forget it... I just found out that our ToolTip code is setting the Popup animation to Fade always. So there is no way to change this behavior in the xaml right now.
I will investigate how to support this correctly, sorry for the inconveniences.
(0005136)
ai_enabled   
2018-03-15 10:16   
This issue is still not resolved.
I can't find a way to disable the popup animation...
(0006651)
asusralis   
2020-09-24 20:30   
Was this ever fixed? I'm not sure how to disable the fade animation for tooltips.
(0006652)
sfernandez   
2020-09-25 10:51   
(Last edited: 2020-09-25 10:52)
Since 3.0 version Popups tries to use the following animations in ApplicationResources if they exist:
- Anim.Popup.Fade
- Anim.Popup.Slide
- Anim.Popup.Scroll

Our NoesisTheme defines them like this:
  <Storyboard x:Key="Anim.Popup.Fade" Storyboard.TargetProperty="Opacity">
    <DoubleAnimationUsingKeyFrames>
      <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
      <EasingDoubleKeyFrame KeyTime="0:0:0.150" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
  </Storyboard>
  <Storyboard x:Key="Anim.Popup.Slide" Storyboard.TargetProperty="Opacity">
    <DoubleAnimationUsingKeyFrames>
      <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
      <EasingDoubleKeyFrame KeyTime="0:0:0.150" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
  </Storyboard>
  <Storyboard x:Key="Anim.Popup.Scroll" Storyboard.TargetProperty="Opacity">
    <DoubleAnimationUsingKeyFrames>
      <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
      <EasingDoubleKeyFrame KeyTime="0:0:0.150" Value="1"/>
    </DoubleAnimationUsingKeyFrames>
  </Storyboard>

You can change that in your application as you want.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1707 [NoesisGUI] C++ SDK feature N/A 2020-05-28 11:37 2020-09-24 16:38
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Feature request: Identify and notify the user about cyclic references
Description: Hi guys,

I've recently been looking at cleaning up our shutdown code and I've fixed a few issues where a child holds a ref counted pointer to a parent object in the hierarchy. This ultimately creates a cyclic dependency between the two objects and prevents them from being cleaned up. I've attached 2 examples of code which might do this, the first is setting a DataContext to a parent object, and another is setting the TargetName on a GoToStateAction to a parent object.

It would be extremely helpful to try and detect these cases. Perhaps in debug you could assert if the TargetName or DataContext are trying to be set to a parent object in the hierarchy when you set the pointer. Or perhaps a better way is to try and find these cyclic references in shutdown if we've detected that we've leaked memory. Essentially any further information to help track these issues down would be extremely beneficial!

Cheers.
Tags:
Steps To Reproduce: 1. Use the attached XAML files in the ApplicationLauncher Noesis sample.
2. Close the application launcher.
3. The application will leak and halt if attached in the debugger in Noesis::Shutdown

        if (GetAllocatedMemory() > 0)
        {
            NS_LOG_WARNING("Memory leaks detected: %d bytes", GetAllocatedMemory());

            #if defined(NS_DEBUG) && defined(NS_PLATFORM_WINDOWS)
                if (IsDebuggerPresent()) { NS_DEBUG_BREAK; }
            #endif
Additional Information:
Attached Files: DataContext.xaml (571 bytes) 2020-05-28 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1246&type=bug
GoToStateAction.xaml (1,489 bytes) 2020-05-28 11:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1247&type=bug
Notes
(0006428)
jsantos   
2020-06-08 14:04   
(Last edited: 2020-06-08 14:05)
A high-level leak detector with extra information like class name is definitely a good idea. I will try this with your scenario (cyclic dependencies when setting DataContext) to see how useful it is.

Thanks for the suggestion!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1796 [NoesisGUI] C# SDK minor always 2020-09-23 21:16 2020-09-24 16:36
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: Collection.Move doesn't keep the bound selected item
Description: Hi guys,
As 0001550 is implemented now, I've tried Collection.Move with ListBox and ObservableCollection and noticed that it works now (no more "unsupported" message from NoesisGUI) but the bound selected item is getting changed.

I have a feeling that the selected item is linked to the SelectedIndex property somehow even though I'm using SelectedItem binding only.

E.g. I'm selecting an entry in position #3 in the ListBox. Then I'm moving some entries with Collection.Move and the selection index is still kept at #3 even though there is a different entry now.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006647)
ai_enabled   
2020-09-23 21:18   
Unfortunately, a workaround is a problem as the SelectedItem change happens during the next Noesis.Update so it's not immediate and I cannot simply save the selected item manually, invoke Collection.Move, and then restore the selected item. Probably I could do this with a "invoke this after 1 frame" but it's a very unreliable approach.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1799 [NoesisGUI] C# SDK major always 2020-09-24 12:43 2020-09-24 13:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: KeyTrigger not working if ModifierKeys property not set
Description: Interactivity KeyTrigger not working properly in C# or Unity unless both Key and ModifierKeys are set.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1797 [NoesisGUI] C# SDK major always 2020-09-24 01:28 2020-09-24 11:33
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: Brush foreground opacity animation no longer applies to the text
Description: Hi guys,
after updating to 3.0.5 I've noticed an issue with the chat entries text not getting zero opacity in Hidden state as it should.

The Storyboard applies (I can see that it adjusts Background.Opacity properly) but doesn't have any effect on Foreground.Opacity.
I've tried using a constant color value for the Foreground property (in the example code below it's set to "Red") just to see whether the issue is binding related—no success, the foreground opacity animation still doesn't apply to the red color brush.
Tags:
Steps To Reproduce: Example code:

        <TextBlock x:Name="TextBlock"
                   HorizontalAlignment="Stretch"
                   VerticalAlignment="Top"
                   Style="{StaticResource ChatLogTextBlockStyle}"
                   Foreground="Red"
                   Padding="2,2,7,2">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="VisualStateGroup">
                    <VisualStateGroup.Transitions>
                        <VisualTransition From="Default" GeneratedDuration="0:0:0.5" To="Hidden" />
                    </VisualStateGroup.Transitions>
                    <VisualState x:Name="Default" />
                    <VisualState x:Name="Hidden">
                        <Storyboard>
                            <DoubleAnimationUsingKeyFrames
                                Storyboard.TargetProperty="Foreground.Opacity">
                                <EasingDoubleKeyFrame Value="0" KeyTime="0" />
                            </DoubleAnimationUsingKeyFrames>
                            <DoubleAnimationUsingKeyFrames
                                Storyboard.TargetProperty="Background.Opacity">
                                <EasingDoubleKeyFrame Value="0" KeyTime="0" />
                            </DoubleAnimationUsingKeyFrames>
                        </Storyboard>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
        </TextBlock>
Additional Information:
Attached Files:
Notes
(0006648)
sfernandez   
2020-09-24 10:27   
I think it is related to a problem we introduced in the last version that we already notice and fix.
I'll take a look to verify.
(0006649)
sfernandez   
2020-09-24 11:33   
I verified it is related to the bug fixed for issue #1794, it will be solved for next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1791 [NoesisGUI] C++ SDK minor always 2020-09-16 16:34 2020-09-24 10:47
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: TextBox Foreground is sometimes ignored
Description: Using the following TextBox template in Noesis:
<ControlTemplate x:Key="txt" TargetType="TextBox">
  <ScrollViewer x:Name="PART_ContentHost"/>
</ControlTemplate>


Then TextBox.Foreground property is ignored because the inner TextBoxView is inheriting the value from ScrollViewer control.

In WPF the Foreground property of the ScrollViewer inside TextBox template is not used by TextBoxView, and it always renders using TextBox.Foreground as expected.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1795 [NoesisGUI] C++ SDK minor always 2020-09-23 12:16 2020-09-23 21:35
Reporter: tension_andreas Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: When calling focus on a textbox the caret isn't showing and you can't write to the textbox
Description: So I have a toggle button that toggles visibility of a TextBox between Visible and Collapsed
At the same time that i set the textbox to visible I also call Focus on it so you can immediately write in it on windows and on Android/iOS the keyboard should pop up.

This worked in 2.2.4 but since upgrading to noesis 3.0.4 this stopped working.
In 3.0.4 The textbox appears but it doesn't seem to be focused and the Caret i missing, On Android/iOS the keyboard isn't showing.

It only happens during the first toggle, the second time i shows the textbox with the caret as intended.

Has been happening on Windows, Android and iOS
Tags: Caret, Focus, TextBox
Steps To Reproduce: Have a togglebutton toggle a textbox like this
toggle->Click() += [this, toggle](BaseComponent*, const RoutedEventArgs&)
    {
        TextBox* searchBar = FindName<TextBox>("searchBar");
        if (toggle->GetIsChecked().GetValueOrDefault())
        {
            searchBar->SetVisibility(Visibility_Visible);
            searchBar->Focus();
        }
        else
        {
            searchBar->SetVisibility(Visibility_Collapsed);
        }
    };

A easy workaround for now is to call "UpdateLayout()" on the textbox before calling "Focus()"
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1792 [NoesisGUI] C++ SDK major always 2020-09-18 08:31 2020-09-23 16:33
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: Context Menu ignores keyboard keys (arrow keys)
Description: Context menu seems to ignore keyboard keys (arrow keys). This behavior is not compatible with WPF.
I attached a patch to your sample code to demonstrate the issue (just a simple patch to create a context menu).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: HelloWorld_MainWindow.xaml.patch (1,223 bytes) 2020-09-18 08:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1302&type=bug
Noesis3.0_ContextMenu_Bug.png (6,901 bytes) 2020-09-23 12:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1303&type=bug
Notes
(0006644)
nikobarli   
2020-09-23 12:45   
Hi Sergio,

It seems that the fix is not complete.

When opening a submenu, pressing up-down keys can move beyond the submenu (i.e. the selection move to the parent items). Then we can open another submenu while the first submenu is still open.
(0006645)
nikobarli   
2020-09-23 12:45   
I attached the screen shot here:
(0006646)
sfernandez   
2020-09-23 13:48   
Ok, I was able to reproduce it. Thanks for the feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1595 [NoesisGUI] Unity3D crash random 2019-12-05 20:02 2020-09-22 19:56
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: DispatcherObject_GetStaticType Access Violation
Description: Read from location 0000000000000010 caused an access violation.

Stack Trace of Crashed Thread 9840:
0x00007FFCF2217EB6 (Noesis) DispatcherObject_GetStaticType
0x00007FFCF22159BD (Noesis) DependencyObject_GetStaticType
0x00007FFCF224BA12 (Noesis) DataObjectPastingEventArgs_GetDataObjectHelper
0x00007FFCF24035A8 (Noesis) ContentControl_ToStringHelper
0x000002A09760910C (Assembly-CSharp) Noesis.NoesisGUI_PINVOKE.ContentControl_ToStringHelper()
0x000002A097608EF3 (Assembly-CSharp) Noesis.ContentControl.ToStringHelper()
0x000002A097608DAB (Assembly-CSharp) Noesis.ContentControl.ToString()

I believe Visual Studio's debugger called ToString() on a content control, which resulted in this crash.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-12-05_185745060.zip (1,361,624 bytes) 2019-12-05 20:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1131&type=bug
Notes
(0006041)
sfernandez   
2019-12-18 14:49   
Could you please provide a bit of scope to understand what could be happening?
I see the crash originates from [SkillsScreen.cs:249] StellarConquest.Presentation.Unity.UI.SkillsScreen:Build().
What Noesis code is being called there? because the crash dump says a ContentControl instance representing a null object is being used, and that makes no sense to me.
(0006042)
stonstad   
2019-12-18 15:52   
(Last edited: 2019-12-18 15:52)
This crash happened while execution was paused. I had breakpoints set and I was reviewing code in Visual Studio. I was in this code block:

   public override void OnUpdate()
        {
            _SkillPointsTextBlock.Text = SessionState.Instance.Player.AvailableSkillPoints + " Points";

            _WrapPanel.Children.Clear();
            List<BaseSkill> skills = Starpedia.Skills.OrderBy(a => a.TypeName).ToList();
            for (int i = 0; i < skills.Count; i++)
            {
                BaseSkill skill = skills[i];
                bool isSkillLearned = false;
                if (SessionState.Instance.Player.Skills.TryGetValue(skill.TypeId, out BaseSkill playerSkill))
                {
                    isSkillLearned = true;
                    skill = playerSkill;
                }

                Grid rootGrid = new Grid();

                rootGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Auto) });
                rootGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
                rootGrid.Margin = new Thickness(5, 5, 5, 5);
                rootGrid.Width = 400;

                Image containerImage = new Image() { Width = 96, Height = 96 };
                containerImage.Margin = new Thickness(10, 0, 20, 0);
                containerImage.VerticalAlignment = VerticalAlignment.Top;
                containerImage.Source = UIUtility.GetImageSource(_Root, "skill_image_container");
                rootGrid.Children.Add(containerImage);
                Grid.SetColumn(containerImage, 0);

                if (isSkillLearned)
                {
                    Image trainedImage = new Image() { Width = 96, Height = 96 };
                    trainedImage.Margin = new Thickness(10, 0, 20, 0);
                    trainedImage.VerticalAlignment = VerticalAlignment.Top;
                    trainedImage.Source = UIUtility.GetImageSource(_Root, "skill_image_trained");
                    rootGrid.Children.Add(trainedImage);
                    Grid.SetColumn(trainedImage, 0);
                }

                Image bwImage = new Image() { Width = 96, Height = 96 };
                bwImage.Margin = new Thickness(10, 0, 20, 0);
                bwImage.VerticalAlignment = VerticalAlignment.Top;
                bwImage.Source = UIUtility.GetImageSource(_Root, skill.ThumbImageUrl + "_bw");
                rootGrid.Children.Add(bwImage);
                Grid.SetColumn(bwImage, 0);
                if (isSkillLearned)
                    bwImage.Visibility = Visibility.Collapsed;

                Image colorImage = new Image() { Width = 96, Height = 96 };
                colorImage.Margin = new Thickness(10, 0, 20, 0);
                colorImage.VerticalAlignment = VerticalAlignment.Top;
                colorImage.Source = UIUtility.GetImageSource(_Root, skill.ThumbImageUrl);
                rootGrid.Children.Add(colorImage);
                Grid.SetColumn(colorImage, 0);
                if (!isSkillLearned)
                    colorImage.Visibility = Visibility.Collapsed;


                Grid rightColumnGrid = new Grid();
                rightColumnGrid.Margin = new Thickness(0, 0, 0, 10);
                rightColumnGrid.HorizontalAlignment = HorizontalAlignment.Stretch;
                rightColumnGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
                rightColumnGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
                rightColumnGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) }); // title
                rightColumnGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) }); // description
                rightColumnGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) }); // modifier
                rootGrid.Children.Add(rightColumnGrid);
                Grid.SetColumn(rightColumnGrid, 1);

                TextBlock title = new TextBlock();
                title.Margin = new Thickness(0, 5, 0, 0);
                title.Style = (Style)_Root.FindResource("Heading5Primary");
                title.Text = skill.TypeName;
                rightColumnGrid.Children.Add(title);
                Grid.SetRow(title, 0);
                Grid.SetColumn(title, 0);

                if (isSkillLearned && skill.Levels > 0)
                {
                    StackPanel skillLevelStackPanel = new StackPanel();
                    skillLevelStackPanel.VerticalAlignment = VerticalAlignment.Top;
                    skillLevelStackPanel.LayoutTransform = new ScaleTransform(0.5f, 0.5f);
                    skillLevelStackPanel.Margin = new Thickness(0, 0, 9, -8);
                    skillLevelStackPanel.Orientation = Orientation.Horizontal;
                    rightColumnGrid.Children.Add(skillLevelStackPanel);
                    Grid.SetRow(skillLevelStackPanel, 0);
                    Grid.SetColumn(skillLevelStackPanel, 1);

                    for (int j = 1; j <= skill.Levels; j++)
                    {
                        Image image = new Image();
                        image.ToolTip = "Level [" + skill.Level.ToString() + " / " + skill.Levels.ToString() + "]";
                        if (skill.Level >= j)
                        {
                            image.Source = UIUtility.GetImageSource(_Root, "skill_level_on");
                            image.Width = 22;
                            image.Height = 47;
                        }
                        else
                        {
                            image.Source = UIUtility.GetImageSource(_Root, "skill_level_off");
                            image.Margin = new Thickness(4, 4, 4, 4);
                            image.Width = 14;
                            image.Height = 39;
                        }

                        skillLevelStackPanel.Children.Add(image);
                    }

                }

                TextBlock description = new TextBlock();
                description.VerticalAlignment = VerticalAlignment.Top;
                description.Margin = new Thickness(0, 5, 0, 0);
                description.Style = (Style)_Root.FindResource("Heading5Secondary");
                if (!string.IsNullOrEmpty(skill.TypeDescription))
                    description.Text = skill.TypeDescription;
                description.TextWrapping = TextWrapping.Wrap;
                rightColumnGrid.Children.Add(description);
                Grid.SetRow(description, 1);
                Grid.SetColumnSpan(description, 2);

                if (isSkillLearned && !string.IsNullOrEmpty(skill.ModifierDescription))
                {
                    TextBlock modifier = new TextBlock();
                    modifier.VerticalAlignment = VerticalAlignment.Top;
                    modifier.Margin = new Thickness(0, 5, 0, 0);
                    modifier.Style = (Style)_Root.FindResource("Heading5Secondary");
                    modifier.Text = skill.ModifierDescription + " " + skill.ModifierValueString;
                    modifier.TextWrapping = TextWrapping.Wrap;
                    rightColumnGrid.Children.Add(modifier);
                    Grid.SetRow(modifier, 2);
                    Grid.SetColumnSpan(modifier, 2);
                }


                rootGrid.Margin = new Thickness(0, 8, 0, 8);
                ItemControl button = new ItemControl();
                button.Tag = skill.Category;
                button.Name = skill.TypeName;
                button.Add(rootGrid);

                button.Button.Click += (sender, e) =>
                {
                    IActionProvider actionProvider = skill as IActionProvider;
                    UIUtility.ShowActions(_Root, actionProvider);
                };

                _WrapPanel.Children.Add(button);
            }

            ApplyFilter();
        }

Not 100% certain, but I believe I was inspecting the children property of WrapPanel. I see that this code was executed -- Noesis.ContentControl.ToString().

(0006643)
stonstad   
2020-09-22 19:40   
Sergio -- I am not seeing this error. Granted, I don't open the VS inspector on Noesis object hierarchies very often. Please feel free to close on account of it no longer happening.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1744 [NoesisGUI] Unity3D crash random 2020-07-01 23:02 2020-09-22 19:46
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.6  
    Target Version: 3.0.6  
Platform: Any
Summary: MouseEventArgs_MiddleButton_get(), Noesis.dll Access Violation
Description: Noesis 3.0.1.

Noesis.dll caused an Access Violation (0xc0000005)
  in module Noesis.dll at 0033:064dc178.

Error occurred at 2020-07-01_155616.
C:\Users\stons\Source\StellarConquest\StellarConquest.Builds\StellarConquest.PC\Stellar Conquest.exe, run by stons.

67% physical memory in use.
32481 MB physical memory [10457 MB free].
8712 MB process peak paging file [8464 MB used].
4206 MB process peak working set [4094 MB used].
System Commit Total/Limit/Peak: 35452MB/39683MB/35638MB
System Physical Total/Available: 32481MB/10457MB
System Process Count: 296
System Thread Count: 4011
System Handle Count: 140254
Disk space data for 'C:\Users\stons\AppData\Local\Temp\Stellar Conquest\Stellar Conquest\Crashes\Crash_2020-07-01_205614424\': 160426635264 bytes free of 493602467840 total.

Read from location FFFFFFFF00000018 caused an access violation.

Context:
RDI: 0x00000000295d2827 RSI: 0x0000024c6f9bf658 RAX: 0xffffffff00000000
RBX: 0x00000057a42fa630 RCX: 0x0000024c6f9bf658 RDX: 0x00000057a42fa5b8
RIP: 0x00007ff8064dc178 RBP: 0x0000000000000200 SegCs: 0x0000005700000033
EFlags: 0x0000000000010202 RSP: 0x00000057a42fa510 SegSs: 0x000000570000002b
R8: 0x0000000000000200 R9: 0x0000000000000200 R10: 0x00000000000007ff
R11: 0x8080808080808080 R12: 0x00000057a42fad08 R13: 0x0000024be21ec1e0
R14: 0x0000000000000200 R15: 0x00000057a42fad20


Bytes at CS:EIP:
ff 50 18 48 8b 06 48 8d 54 24 50 48 8b ce ff 50

No mono DLL path set. This app is either running IL2CPP, or the crash occurred before mono was initialized.


Stack Trace of Crashed Thread 10780:
0x00007FF8064DC178 (Noesis) MouseEventArgs_MiddleButton_get
0x00007FF8064DC3EF (Noesis) MouseEventArgs_MiddleButton_get
0x00007FF8067188B3 (Noesis) UnityPluginUnload
0x00007FF806717E03 (Noesis) Noesis_RegisterLogCallback
0x00007FF80658ECB3 (Noesis) QueryContinueDragEventArgs_GetKeyStatesHelper
0x00007FF806775CD0 (Noesis) FreeString
0x00007FF80650492B (Noesis) BindingExpression_UpdateSource
0x00007FF8065885A6 (Noesis) ViewBase_PrepareItem
0x00007FF8065875CA (Noesis) Noesis_GetPlatformID
0x00007FF8065EFF61 (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF8065EFBDA (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF8065EE7C2 (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF8065EC272 (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF8065E9800 (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF8065E9A6B (Noesis) ManipulationStartingEventArgs_Mode_get
0x00007FF806717271 (Noesis) Noesis_RegisterLogCallback
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFFFEB61144)
0x00007FFFFEB61144 (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFFFEB6701D)
0x00007FFFFEB6701D (UnityPlayer) (function-name not available)
ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFFFEB670F8)
0x00007FFFFEB670F8 (UnityPlayer) (function-name not available)
0x00007FFFFEE88B78 (UnityPlayer) UnityMain
0x00007FF88E287BD4 (KERNEL32) BaseThreadInitThunk
0x00007FF88F9ECE51 (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce: Fast switching between XAML/Noesis UI screens in Stellar Conquest. Encl. Crash dump.
Additional Information:
Attached Files: Crash_2020-07-01_205614424.zip (52,755 bytes) 2020-07-01 23:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1271&type=bug
Crash_2020-07-01_210633473.zip (52,192 bytes) 2020-07-01 23:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1272&type=bug
Notes
(0006487)
stonstad   
2020-07-01 23:05   
(Last edited: 2020-07-01 23:06)
Reproducibility is random when ANY screen is shown. Within Unity no errors are shown. Only happens with compiled/built binary of game.

(0006488)
stonstad   
2020-07-01 23:07   
The stack trace above (MouseEventArgs_MiddleButton_get) is very suspect. At no point am I pressing the middle button. From experience, the IL2CPP compiled build stack traces are garbage stack traces.
(0006489)
stonstad   
2020-07-01 23:10   
This log and dump is more brief. The crash happens in first 30 seconds of gameplay which yields a shorter log.
(0006490)
stonstad   
2020-07-01 23:15   
(Last edited: 2020-07-01 23:17)
I checked the Stellar Conquest code base and the only code which calls NoesisGUI_PINVOKE.MouseEventArgs_MiddleButton_get is Noesis class MouseEventArgs in get accessor MouseEventArgs.MiddleButton. However, this C# property has 0 references in our code. I don't know why the stack trace references this property prior to the crash/access violation in Noesis!

(0006500)
sfernandez   
2020-07-06 10:47   
Without symbols the names of the functions don't usually correspond to the real callstack. In this case the crash is not related to MouseEventArgs at all, it happens when trying to load a Unity texture, its native pointer seems to be invalid.

I will prepare a library with some extra logs to try get more information.

I also noticed that In both dumps the logs contains this just before crashing:
WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - All passes removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
ERROR: Shader Hidden/Nature/Terrain/Utilities shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
Shader 'Nature/Terrain/Diffuse': dependency 'Details2' shader 'Hidden/TerrainEngine/Details/BillboardWavingDoublePass' not found
(0006501)
sfernandez   
2020-07-06 14:00   
Please try this library with "Log Verbosity" set to "Normal" in Noesis Settings:
https://drive.google.com/file/d/1r0fGHOEtkmvcQTaYI04dKS9hx_xE2aEd

Attach the dump and logs when it crashes again.

Thanks for your collaboration.
(0006584)
stonstad   
2020-08-17 22:10   
Thank you for the response. I haven't been able to test Stellar Conquest but hope to return to it soon.
(0006642)
stonstad   
2020-09-22 19:39   
Sergio, I haven't seen this error in over a month of active development. I think it is resolved by a subsequent release, and I'm good with us closing.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1793 [NoesisGUI] C++ SDK block always 2020-09-21 15:31 2020-09-22 11:53
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Compile Warning in Noesis 3.0.5, C4263
Description: NoesisGUI\NsGui\FrameworkElement.h(825,17): error C4263: 'void Noesis::FrameworkElement::OnQueryCursor(Noesis::BaseComponent *,const Noesis::EventArgs &)': member function does not override any base class virtual member function

https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4263?view=vs-2019

OnQueryCursor seems to be defined with different parameters in UIElement.

We specifically have this warning treated as an error, blocking me from updating to 3.0.5. Either way I think this was just an oversight.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006633)
sfernandez   
2020-09-21 16:10   
Hi Joren,

The changeset 9596 removed lots of static functions in the public headers, including that OnQueryCursor.
Version 3.0.5 corresponds to changeset 9610, so you shouldn't have that function as part of FrameworkElement.

Could you please verify you are using the correct revision number?
(0006634)
Joren   
2020-09-21 16:20   
Hi, I'm on 9579. Which is the latest I can see in my checkout. My checkout is pointed at Noesis/NoesisSDK/trunk/Native.

I see Noesis/NoesisSDK/tags/3.0.5 exists, so I will try this one.
(0006635)
jsantos   
2020-09-21 16:36   
Yes, please, make sure you are using

svn://svn.noesisengine.com/Noesis/NoesisSDK/tags/3.0.5

trunk is right now a preview of 3.1
(0006636)
Joren   
2020-09-22 11:51   
Yea, this works. Thanks.

It seems a new crash got introduced, I opened a separate ticket for that (0001794)

Feel free to close this one.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
925 [NoesisGUI] Unity3D major always 2016-06-29 08:29 2020-09-21 11:32
Reporter: ivan_b Platform:  
Assigned To: jsantos OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 1.2.6f4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: UI rendering problem on iPad
Description: The user interface on the iPad at some point gets streched like in the uploaded picture. The entire user inteface is on the left of the screen. The model is an iPad 4.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: IMG-20160628-WA0000.jpg (130,080 bytes) 2016-06-29 08:29
https://www.noesisengine.com/bugs/file_download.php?file_id=688&type=bug
Notes
(0004050)
jsantos   
2016-06-30 17:00   
Are you able to reproduce the issue someway?
(0004051)
ivan_b   
2016-06-30 17:09   
On the two iPads that I tested I could not reproduce this problem.
I can ask our user to reproduce it and then get the logs from the application if that helps?
(0004053)
jsantos   
2016-06-30 17:16   
Yes, please!
(0004055)
ivan_b   
2016-06-30 18:14   
(Last edited: 2016-06-30 18:14)
Can I get the instrumented version of Noesis for the iPad because with the current version in the logs I don't see anything?

(0004059)
jsantos   
2016-07-04 23:38   
Sorry for the delay about this, tomorrow I will prepare you the instrumented version.
(0004063)
jsantos   
2016-07-05 20:43   
Instrumented library: https://drive.google.com/file/d/0Bwxw0RW0LwyIbEpLeTE3TkktRFE/view?usp=sharing

This version generates a noesis.log file that I would like to inspect. I will also need the log generated by Unity (I think you need to generate a Developer version for this).
(0004066)
ivan_b   
2016-07-07 08:54   
Here is the link for the logs
https://www.dropbox.com/s/f1bgt66i4kv2m3y/appocation_logs.log?dl=0
Both unity logs and noesis logs are in the same file.
(0004067)
jsantos   
2016-07-07 09:18   
1. Why in the same file? How can I split them?
2. I am missing the Unity log there. I see a few messages at the beginning that are not from our logs but they are not definitely the Unity log. Was this a development build?
3. Could you also paste an image with the UI in normal state?
4. Is the problem being reproduced doing always the same thing? If affirmative, could you describe the steps?

Thanks a lot!
(0004068)
ivan_b   
2016-07-07 09:38   
(Last edited: 2016-07-07 09:39)
1.The first part is our log and the second is from noesis.
I have removed our logs from the file. You can redownload the file only with the noesis logs
2.This is a development build. This is the only log form Unity that I can get.
I am attaching an even handler to the log messages and then upload the messages to our server because we don't have access to this iPad.
3. https://www.dropbox.com/s/wdf63piy4ancu94/Screenshot_2.png?dl=0
4.The problem always appears and can be reproduced in two ways. First, at the beginning we have a listbox and after you select an item there are some animation that shrinks the listbox and movea the entire listbox to the left and after that the problem happens.
And for the second I don't kow but I can ask. If it would help I could send you the links to the application and create you an account.

(0004069)
jsantos   
2016-07-07 13:17   
I have an account in TestFlight: jesus.de.santos@gmail.com

Is that what you need?
(0004071)
ivan_b   
2016-07-07 13:41   
(Last edited: 2016-07-07 13:50)
We have a subsciption based modes so I have created you an account.
You can login with the email "jesus.de.santos@gmail.com" and the password is "test". Here is the link to the download page
http://www.hockeycoachvision.com/hcvweb/download/coach/?
If it helps the problem occours on the iPad 4.
I have investigated further and found out that some people had some rendering problem with the 5.3 version of unity on iOs, this is the link to the topic
https://community.unity.com/t5/Platforms/3D-Rendering-issues-on-iOS-with-Unity-5-3-1/td-p/2526665
Is it possible that some settings on the camera triggers that problem?
Could it be a problem with the viewport rectangle of the camera?

(0004075)
jsantos   
2016-07-08 12:21   
"First, at the beginning we have a listbox and after you select an item there are some animation that shrinks the listbox"

You mean for example clicking on "ANIMATIONS" right? When I do that the panel moves to the left with an animation.

I have been testing your application in iPad mini and it works great (iOS 9.3.2). By the way, the application is amazing! Although I see several improvements to the GUI (mainly, adding more animations) it is a really great work. If you want, you can publicize the application in the ShowCase section (http://www.noesisengine.com/forums/viewforum.php?f=12). Also if you want we can retweet you from our Twitter account.

Yes, the problem is related to the viewport of the camera. I added several logs in the instrumented version but what I see seems to be right. Really suspicious that it works fine in an iOS device and fails in another one, our code is exactly the same...

(0004076)
ivan_b   
2016-07-08 15:46   
You have to click on the animation an then the listbox shows
(if you want some content there is a large button at the bottom of the application, after you click on it tehre is a "Purchuased" package, click on that package and then you can download some content).
After that you click on an item and then the details of the item gets displayed, and this is the place where the problem occours.

Thanks. I would be glad to hear any suggestion for the improvement of the GUI.
I will add it to the Showcase section as soon as I find time ( probably in a few days ). No problem, you can retweet about our application.

I have sent to our user a version that logs the viewport rectangle of the camera. If the viewport has been changed I will send a bug report to unity.
(0004077)
jsantos   
2016-07-08 20:22   
One fast question, when you open an animation and play it showing the movement of the players? That part is not Noesis, is it? (I mean the Tactic perspective, no the 1st person one that is Unity for sure)
(0004078)
ivan_b   
2016-07-08 20:36   
It is not, i think this is implemented only with unity.
(0006626)
jsantos   
2020-09-14 01:46   
Is this still an issue?
(0006631)
ivan_b   
2020-09-19 18:51   
No, it is not an issue any more.
(0006632)
jsantos   
2020-09-21 11:32   
Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
962 [NoesisGUI] C++ SDK feature N/A 2016-10-17 07:44 2020-09-18 01:29
Reporter: theinapurola Platform: All  
Assigned To: jsantos OS: All  
Priority: normal OS Version: All  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: WPF style TouchPoint class
Description: It would be really useful if you could implement the TouchEventArgs.GetTouchPoint function along with the TouchPoint class. We are mostly interested in knowing the action that was actually performed on the touch event.

Ref: https://msdn.microsoft.com/en-us/library/system.windows.input.toucheventargs.gettouchpoint(v=vs.110).aspx
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1760 [NoesisGUI] C++ SDK block always 2020-07-27 03:53 2020-09-17 11:08
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: [TSF] When used in tablet, tapping any part of the window makes keyboard appear
Description: When used in tablet, tapping any part of the window (not only text boxes and password boxes) makes touch keyboard appears.

Tags:
Steps To Reproduce: Create any XAML (<grid background="white"></grid> is sufficient). Tap on any part of it -> touch keyboard appears

It seems that TSF still considered it is focusing on a document even after gThreadMgr->SetFocus(gDisabledDocumentMgr) is called.
gDisabledDocumentMgr seems not considered disabled.
Additional Information:
Attached Files: TSF.cpp (41,944 bytes) 2020-09-14 14:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1301&type=bug
Notes
(0006591)
sfernandez   
2020-08-25 10:25   
I wanted to take a look on this and want to make sure I have all the information. Is this happening when using a windows device with our TSF implementation, right?
What kind of device are you using? I don't have now a touch enabled device with windows around and might need to buy one.
Or is this possible to reproduce by manually injecting touch events to the view?
(0006592)
nikobarli   
2020-08-27 08:43   
Hi Sergio,

Yes, it is happening when using a windows device with the TSF implementation.
You can use a touch screen to reproduce it. Just attach a touch screen monitor to your windows PC, and touch on any Noesis application window with TSF enabled.
(0006593)
nikobarli   
2020-08-27 08:54   
Another way to reproduce the problem is using your iPad or Android tablets, and use Microsoft RDP client to RDP to your windows PC. Then run Noesis application on your windows PC and operate from the iOS/Android tablet.
(0006594)
sfernandez   
2020-08-27 12:23   
Thanks for the tip, unfortunately I installed Microsoft RDP on my Android phone and I'm not able to reproduce the problem.

Could you please enable trace logging in TSF.ccp (uncomment first two define lines) and attach here the logs generated until touch keyboard appears, I want to follow which events are happening in that case.

Thanks for your help.
(0006596)
nikobarli   
2020-08-27 14:24   
Hi, here is the logs:

[NOESIS][] MoveWindow(hWnd=0000000000A51F4A) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1551)
NoesisUtil::ZUIImpl::Render: Render() took 30 ms
[NOESIS][] ActivateWindow(hWnd=0000000000A51F4A) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1529)
[NOESIS][] MoveWindow(hWnd=0000000000A51F4A) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1551)
[NOESIS][] MoveWindow(hWnd=00000000000617F0) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1551)
[NOESIS][] DeactivateWindow(hWnd=0000000000A51F4A) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1543)
[NOESIS][] ActivateWindow(hWnd=00000000000617F0) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1529)
[NOESIS][] MoveWindow(hWnd=00000000000617F0) (G:\Athene_Noesis3.0\libz\Noesis\Native\Src\Packages\App\Win32Display\Src\TSF.cpp:1551)

Note that it doesn't reproduce if you tap at buttons. I tap at an empty grid to reproduce it.
Please check the video here (the touch keyboard appears at the end of the video) : https://drive.google.com/file/d/1hUE7mTo8g-Mywg9GurF1dVeMliilz7Oc/view?usp=sharing
(0006613)
sfernandez   
2020-09-03 10:52   
One more question, is this only happening when you spawn new windows on the same application? I mean, if you try it with a single window application like our samples does the virtual keyboard also appear when clicking anywhere in the window?
(0006616)
nikobarli   
2020-09-05 06:09   
Yes, I tried with your RSS Reader sample app. It happens as well.
Please see the video here: https://drive.google.com/file/d/1Wx_ZGwsgYeKHlkML34bSHgOBALAyflkp/view?usp=sharing
(0006629)
sfernandez   
2020-09-14 14:09   
I may have found a way to solve this and did some changes to TSF code.
Could you please give a try with the attached file and verify this is fixed and IME works as it should?
(0006630)
nikobarli   
2020-09-15 07:10   
(Last edited: 2020-09-15 07:11)
Hi Sergio,

Yes, it seems to work fine !
Japanese input is working as before, and the problem I reported here disappeared.

Thank you.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1221 [NoesisGUI] Unity3D minor always 2018-01-18 01:59 2020-09-16 17:37
Reporter: mingingmingler Platform: PC  
Assigned To: jsantos OS: Windows 10  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0b15  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Noesis renders top to bottom gradients the wrong way round in Textblock's Foreground
Description: When a Textblock's Foreground property is set to use a gradient brush with a start point of 0,0 and an endpoint of 0,1, the gradient is rendered the wrong way around.

Attached screenshot shows: Noesis rendering (top) and Wpf rendering (bottom)
Tags:
Steps To Reproduce: - Add a Textblock to the scene and set some test text
- Set the Textblock's Foreground to be a LinearGradientBrush with points 0,0 and 0,1
- Add two gradient stops with offsets 0 and 1
- Observe how Noesis renders the gradients the opposite way to Wpf
Additional Information: <Grid>
        <Viewbox>
            <Grid Width="1920" Height="1080">
                <TextBlock Text="Sample text" FontSize="128">
                    <TextBlock.Foreground>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="Red" Offset="0" />
                            <GradientStop Color="Green" Offset="1" />
                        </LinearGradientBrush>
                    </TextBlock.Foreground>
                </TextBlock>
            </Grid>
        </Viewbox>
    </Grid>
Attached Files: gradientwrong.png (22,108 bytes) 2018-01-18 01:59
https://www.noesisengine.com/bugs/file_download.php?file_id=871&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1549 [NoesisGUI] Unity3D crash random 2019-08-28 09:40 2020-09-14 01:56
Reporter: bungarra Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Noesis 2.2.3 - 2.2.4 Crash, Editor and builds
Description: This is the crash log of unity, We are sure that it is being caused by noesis. as it is across both 2.2.4 and 2.2.3,

we have also only been experiencing crashes in unity while only NoesisView is present.
Using unity 2019.2.2f, and HDRP by unity, with our own workaround.

we changed the rendering to be at the end of the frame

        UnityEngine.Rendering.RenderPipelineManager.beginFrameRendering += BeginCameraRendering;
        UnityEngine.Rendering.RenderPipelineManager.endFrameRendering += EndCameraRendering;

This, however, does not affect the GPUreadback. I have attached our version of NoesisView


0x00007FFA4BB39A9D (ntdll) RtlEnterCriticalSection
0x00007FFA1003ADE3 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\image.c:2723] mono_image_alloc
0x00007FFA1000FD31 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\class.c:2438] mono_class_setup_methods
0x00007FFA1000A534 (mono-2.0-bdwgc) [c:\build\output\unity-technologies\mono\mono\metadata\class.c:9250] mono_class_get_methods
0x00007FF6CB9D312B (Unity) scripting_class_get_method_from_name_filter
0x00007FF6CB9D2F0E (Unity) scripting_class_get_method_from_name
0x00007FF6CB9C9E83 (Unity) ScriptingInvocation::ScriptingInvocation
0x00007FF6CB1526BE (Unity) AsyncGPUReadbackManagedBuffer::InvokeScriptingCallback
0x00007FF6CB15099D (Unity) `AsyncGPUReadbackManager::InitializeClass'::`2'::EarlyUpdateUpdateAsyncReadbackManagerRegistrator::Forward
0x00007FF6CB496CA8 (Unity) ExecutePlayerLoop
0x00007FF6CB496D89 (Unity) ExecutePlayerLoop
0x00007FF6CB49BBFB (Unity) PlayerLoop
0x00007FF6C9A6F1EB (Unity) PlayerLoopController::UpdateScene
0x00007FF6C9A6CCEC (Unity) Application::TickTimer
0x00007FF6CA2FC7E0 (Unity) MainMessageLoop
0x00007FF6CA2FF1FF (Unity) WinMain
0x00007FF6CCF92742 (Unity) __scrt_common_main_seh
0x00007FFA49847974 (KERNEL32) BaseThreadInitThunk
0x00007FFA4BB9A271 (ntdll) RtlUserThreadStart
Tags: C#, Unity
Steps To Reproduce: sit in any scene with noesis view with generic buttons, with styles and triggers.
Additional Information:
Attached Files: NoesisView.cs (44,719 bytes) 2019-08-28 09:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1102&type=bug
crash.zip (333,518 bytes) 2019-08-29 02:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1103&type=bug
Notes
(0005942)
jsantos   
2019-08-28 12:04   
The changes you made to NoesisView are not safe and even if they work they are not going to be very efficient if you have more than one camera active at the same time. I assume, you only use one camera right?

I also assume that this is only happening with HDRP right? HDRP is still quite unstable in Unity and the API is still being changed (https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1669). We recommend doing the changes in the HDRP code itself, because that's the way it will work in the final version (right now, they are not invoking the callbacks).

Regarding crashes, the callstack is not as useful as a minidump, could you please attach it? (for 2.2.4)
(0005945)
bungarra   
2019-08-29 02:43   
We have attached the crash dump
(0006625)
jsantos   
2020-09-14 01:42   
This should be fixed in 3.0.X, please reopen again if you still observe the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
871 [NoesisGUI] C++ SDK crash always 2016-04-20 16:03 2020-09-14 01:55
Reporter: ZanAlex Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Crash when using Clang
Description: The application is properly compiled and linked using Clang, but at start Noesis throws the following error:

NoesisSDK/Src/Packages/Core/Kernel/Src/ReflectionRegistryImpl.cpp (l. 163): Reflection TypeId 'Visibility' for type 'is::Gui::Visibility]' already used to register type 'Noesis::Gui::Visibility]'

The error is thrown when calling Noesis::Gui::GUI::InitOpenGL.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003827)
jsantos   
2016-04-21 13:08   
Which version of clang and in which platform?

We use clang in XCode, but gcc in Linux for now.
(0006627)
jsantos   
2020-09-14 01:47   
This should be fixed in 3.0.X, please reopen again if needed


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1618 [NoesisGUI] Unity3D major always 2020-01-13 16:32 2020-09-14 01:40
Reporter: Toaster Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: macOS
Summary: Unity with Metal(MacOS) shows black screen in game mode when the camera background type is set to solid color.
Description: Using Unity 2019.2.17f1 and NoesisGUI 2.2.6 a black screen appears when switching to the game tab or when pressing play. Everything works fine if you switch the background type property of the camera to skybox. Switching to OpenGL the GUI also renders as expected even if the background type of the camera is set to Solid Color.
Tags: C#, Unity, Unity LWRP
Steps To Reproduce: 1. Load the NoesisGUI asset bundle into unity's default LWRP project template.
2. Open up the Hello World sample or any other sample.
3. Press play
4. Verify black screen shows up and no UI.
5. Switch background type property of the unity camera to be "skybox"
6. Press play
7. Verify that the NoesisGUI shows up as expected.
8. Switch camera background back to "Solid Color".
9. Change unity's rendering API from Metal to OpenGL.
10. Press Play
11. Verify NoesisGUI shows up as expected.
Additional Information:
Attached Files:
Notes
(0006069)
jsantos   
2020-01-13 17:07   
Thanks for the report. Could you please verify is this is also happening in 2.2.5 ?

https://drive.google.com/open?id=1j9BX_ofyqLsNOr5sSeTkG9tXsMS8jyA6
(0006070)
Toaster   
2020-01-13 17:20   
I can verify that it is also an issue in (2.2.5).
(0006071)
jsantos   
2020-01-13 17:22   
Thanks for the information. I see, you are also using LWRP, does the issue happen in a clean Unity project with default fixed pipeline?
(0006072)
Toaster   
2020-01-13 17:30   
I tested as suggested, and it appears to work fine with the fixed pipeline.
(0006073)
jsantos   
2020-01-13 17:41   
Thanks for reporting. Almost for sure, this is a bug in Unity. When the 3D scene is empty (including the skybox) they think there is nothing to paint, but one more time the forgot about native plugins... So basically, they are not calling us and we don't have the chance to paint.

We will try to find a workaround. Thanks again.
(0006074)
Toaster   
2020-01-13 17:42   
I'll try it out with the LWRP and a render texture! I think that should probably work.
(0006075)
jsantos   
2020-01-13 17:44   
For now, as a workaround I would try using a Skybox or just having a fake geometry in the scene. That should work.
(0006624)
jsantos   
2020-09-14 01:40   
This should be fixed in 3.0.X, please reopen again if you still observe the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1787 [NoesisGUI] C++ SDK trivial always 2020-09-09 09:33 2020-09-10 20:16
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Differing header files between Linux and Win distribution
Description: There are some sections of code in the Linux distribution in tags like `<xbox_one>` or `<ps4>`. In the Windows distribution, these section have been stripped from code.

Not really a big issue, but headers being not binary identical is a minor annoyance when debugging.

I expect these should had not been included in the public Linux distribution either?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006618)
jsantos   
2020-09-09 12:02   
Thanks for reporting this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1785 [NoesisGUI] Unity3D minor always 2020-09-08 18:34 2020-09-09 16:11
Reporter: real_mikhail Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Some duration formats are not supported by xaml parser
Description: I'm getting following error on importing xaml in Unity:

[noesis] Assets/Root/UI/PotionEffectUserControl.xaml(19): Unable to convert '0:0:.5' to a valid value for property DoubleAnimation.Duration.
UnityEngine.Debug:LogError(Object)
NoesisUnity:UnityLog(Int32, String) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:141)
Noesis.GUI:Noesis_LoadComponent(HandleRef, String)
Noesis.GUI:LoadComponent(Object, String) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:284)

It works fine in Blend solution though.
Tags: Unity, xaml
Steps To Reproduce: I have following Storyboard in my UserControl's resources:
            <Storyboard x:Key="FadeIn">
                <DoubleAnimation Storyboard.TargetName="Item"
                                 Storyboard.TargetProperty="Opacity"
                                 To="1.0"
                                 Duration="0:0:.5" />
            </Storyboard>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1703 [NoesisGUI] Unity3D crash random 2020-05-27 10:55 2020-08-31 19:21
Reporter: asusralis Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Unity editor crashes during play
Description: From forum thread https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1981

 	Noesis.dll!NoesisApp::D3D11RenderDevice::WrapTexture(ID3D11Texture2D * texture, unsigned int width, unsigned int height, unsigned int levels, bool isInverted) Line 445	C++
>	Noesis.dll!NoesisApp::D3D11Factory::WrapTexture(ID3D11Texture2D * texture, unsigned int width, unsigned int height, unsigned int levels, bool isInverted) Line 28	C++
     [Inline Frame] Noesis.dll!Noesis_WrapD3D11Texture(const void *) Line 124	C++
     Noesis.dll!Noesis::UnityDeviceD3D11::WrapTexture(void * texture, int width, int height, int numLevels) Line 130	C++
     Noesis.dll!`anonymous namespace'::TextureProviderUnity::LoadTexture(const char * filename, Noesis::RenderDevice * __formal) Line 615	C++
     Noesis.dll!Noesis::VGLContext::CreateImage(const char * filename) Line 359	C++
     Noesis.dll!Noesis::BitmapImageProxy::CreateImage(Noesis::RenderTree * tree) Line 45	C++
     Noesis.dll!Noesis::ImageSourceProxy::GetImage(Noesis::RenderTree * tree) Line 34	C++
     Noesis.dll!Noesis::RenderTreeHelper::DrawCommands(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, Noesis::DrawingCommandsProxy * drawCommands, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, unsigned int bitmapScalingMode) Line 269	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderDraw(Noesis::RenderNode *) Line 684	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     [Inline Frame] Noesis.dll!Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode *) Line 701	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2<float> & transform, const Noesis::Matrix4<float> & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 644	C++
     Noesis.dll!Noesis::RenderTreeHelper::Render(Noesis::RenderNode * node, float x, float y, float width, float height, bool flipY) Line 128	C++
     Noesis.dll!Noesis::RenderTree::Render(float x, float y, float width, float height, bool flipY) Line 309	C++
     Noesis.dll!Noesis::Renderer::Render(bool flipY) Line 209	C++
     Noesis.dll!Noesis_GetRenderOnscreenCallback::__l2::<lambda>(int flipY, void * data) Line 454	C++
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: CrashDump.7z (355,044 bytes) 2020-05-27 10:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1241&type=bug
Crash_2020-06-02_181836586.rar (325,535 bytes) 2020-06-02 20:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1248&type=bug
Crash_2020-05-31_141149363.rar (271,599 bytes) 2020-06-02 23:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1249&type=bug
Notes
(0006393)
sfernandez   
2020-05-27 10:58   
This was using 2.2.6 version, could you please try latest 3.0 and let us know if you get the same kind of crashes?
(0006394)
asusralis   
2020-05-27 11:06   
Hello. Sorry, I was going to create an issue but I became busy. Is 2.2.6 not going to be supported for bug fixes?
(0006410)
jsantos   
2020-05-28 11:22   
(Last edited: 2020-05-28 11:22)
Yes, but right now the priority is 3.0. If you could verify if this was fixed in 3.0 that would help us a lot. Besides, the callstack is not enough, I wonder if you have repro steps that could help us to reproduce this consistently.
Thanks!

(0006419)
asusralis   
2020-06-02 20:23   
(Last edited: 2020-06-02 20:24)
Here it is on 3.0.1. It seems to happen often after Unity compiles changes, but I think it has happened in the past a few plays after changes have complied as well. I have no repo steps as it didn't really start at a particular time. Is there any other way to help?

(0006420)
jsantos   
2020-06-02 20:31   
Thanks for the dump! For now this is enough, I will write here again once I have more information.
(0006421)
asusralis   
2020-06-02 23:54   
Looking into it, maybe that was caused by something else? This is also in 3.0.1 and it seems closer to what I sent you before.
(0006609)
jsantos   
2020-08-31 18:19   
Is this still happening in 3.0.4?
(0006610)
asusralis   
2020-08-31 18:47   
I don't think so.
(0006612)
jsantos   
2020-08-31 19:21   
Ok, I am going to close it for now. Please, reopen if you see this again in the upcoming 3.0.5


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1756 [NoesisGUI] C++ SDK minor always 2020-07-17 12:44 2020-08-31 18:30
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Nothing renders when setting Canvas.Left/Top to -FLT_MAX
Description: Having the following xaml:

<ItemsControl ItemsSource="{Binding yourDataList}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <Canvas/>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemContainerStyle>
    <Style TargetType="ContentPresenter">
      <!-- position "over head" -->
      <Setter Property="Canvas.Left" Value="{Binding Position.X}"/>
      <Setter Property="Canvas.Top" Value="{Binding Position.Y}"/>
    </Style>
  </ItemsControl.ItemContainerStyle>
  ...
</ItemsControl>


Then put 1 of the elements in the ItemsSource on Noesis::Point(-FLT_MAX, -FLT_MAX), the canvas will expand to -FLT_MAX*2 but be capped on -FLT_MAX and it'll move x and y to -FLT_MAX so outside of the screen.
This will result in nothing being rendered to the screen.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1779 [NoesisGUI] Unity3D crash have not tried 2020-08-13 12:16 2020-08-31 18:17
Reporter: asusralis Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Crash rendering offscreen effects
Description: From crash dump at issue https://www.noesisengine.com/bugs/view.php?id=1776#c6579

Crash callstack:
 	Noesis.dll!Noesis::BaseVector<float>::operator[](unsigned int i=4) Line 134	C++
>	Noesis.dll!Noesis::VGLContext::DrawGPUBatches() Line 3324	C++
     Noesis.dll!Noesis::VGLContext::Flush(bool endOfFrame=false, bool flipY=false) Line 1464	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderOffscreenNodes() Line 683	C++
     Noesis.dll!Noesis::RenderTreeHelper::RenderOffscreen(Noesis::RenderNode * node=0x0000019aeb9b4118, const Noesis::Matrix4 & projection={...}) Line 96	C++
     Noesis.dll!Noesis::RenderTree::RenderOffscreen(const Noesis::Matrix4 & projection={...}) Line 277	C++
     Noesis.dll!Noesis::Renderer::RenderOffscreen(const Noesis::Matrix4 & projection={...}) Line 171	C++
     Noesis.dll!Noesis::Renderer::RenderOffscreen() Line 149	C++
     Noesis.dll!Noesis_GetRenderOffscreenCallback::__l2::<lambda>(int eventId=0, void * data=0x0000019b00ff0980) Line 420	C++
     Noesis.dll!void <lambda>(int, void *)::<lambda_invoker_cdecl>(int eventId=0, void * data=0x0000019b00ff0980) Line 422	C++
     Unity.exe!GfxDeviceWorker::RunCommand(class ThreadedStreamBuffer &)	Unknown
     Unity.exe!GfxDeviceWorker::RunExt(class ThreadedStreamBuffer &)	Unknown
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker(void *)	Unknown
     Unity.exe!Thread::RunThreadWrapper(void *)	Unknown
     kernel32.dll!BaseThreadInitThunk()	Unknown
     ntdll.dll!RtlUserThreadStart()	Unknown
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006581)
asusralis   
2020-08-13 12:21   
It happens consistency when clicking on a button in an itemscontrol. it seems the first mouse click does not register with the button, and the second click crashes unity.
(0006582)
sfernandez   
2020-08-13 12:31   
>> It happens consistency when clicking on a button in an itemscontrol.
Are you using effects (DropShadowEffect or BlurEffect) on that project? Maybe animating effect parameters when clicking the button?

>> it seems the first mouse click does not register with the button, and the second click crashes unity.
Do you mean that first click is not being executed?
(0006583)
asusralis   
2020-08-13 12:41   
I'm using drop shadows, but not on that button or itemscontrol.

Well, just a minute ago it was requiring two clicks. Now it just crashes on the first click. This creates the same error as above, not sure if this helps: https://files.catbox.moe/2u13qu.mp4
(0006589)
asusralis   
2020-08-21 19:32   
Hey, did you need any more information for this?
(0006590)
jsantos   
2020-08-24 13:30   
Not for now, thanks! I will be working on this (and hopefully fixing it) this week. I will write again if I need more information.
(0006597)
jsantos   
2020-08-28 15:04   
(Last edited: 2020-08-28 15:05)
Is there by any chance the possibility of getting a working executable where this error is being reproduced? Better if it is standalone, not Unity editor.

(0006604)
jsantos   
2020-08-31 12:58   
Right now, this is the main blocker for releasing 3.0.5
(0006605)
asusralis   
2020-08-31 13:09   
You want a debug build where the crash is not happening? So on 3.0.3?
(0006606)
jsantos   
2020-08-31 13:13   
Using the same version as the crash reported (the one provided by sergio https://www.noesisengine.com/bugs/view.php?id=1776#c6579)

https://drive.google.com/file/d/1oEzPaSbXd406urlja1294mMtdpdTUvmR

A standalone build where the crash is happening, that way I can debug with Visual Studio, because the minidump is not giving enough information and I am not able to reproduce the issue.
(0006608)
jsantos   
2020-08-31 18:17   
(Last edited: 2020-08-31 18:17)
Thanks for this! I was able to reproduce it and fix it.

By the way, we detected also a Canvas with Left set to Infinite in your game. That's not allowed in WPF, we are going to detect that and raise error in that case.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1766 [NoesisGUI] C# SDK minor always 2020-08-03 23:15 2020-08-31 12:23
Reporter: samc Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Windows
Summary: Unity SceneView shows UI inverted
Description: Not sure if this is something we're doing; when playing our game, the UI looks great, but if you switch to Scene View the UI still renders, but it's upside down (see attached screen shot).
Tags: Unity
Steps To Reproduce: 1) Play in Unity Editor
2) Switch to Scene Mode tab
Additional Information:
Attached Files: Noesis_SceneView_Bug.png (222,640 bytes) 2020-08-03 23:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1283&type=bug
Notes
(0006603)
jsantos   
2020-08-31 12:23   
It seems that UI is being rendered in HDRP and it shouldn't (as in legacy pipeline or URP). I have disabled it in 3.0.5, with these changes:

Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 9558)
+++ NoesisView.cs	(revision 9559)
@@ -537,12 +537,18 @@
 
     private void BeginFrameRendering(ScriptableRenderContext context, Camera[] cameras)
     {
-        RenderOffscreen();
+        if (cameras[0].cameraType == CameraType.Game)
+        {
+            RenderOffscreen();
+        }
     }
 
     private void EndFrameRendering(ScriptableRenderContext context, Camera[] cameras)
-    {
-        RenderOnscreen();
+    {        
+        if (cameras[0].cameraType == CameraType.Game)
+        {
+            RenderOnscreen();
+        }
     }
 #endif


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1781 [NoesisGUI] Unity3D feature always 2020-08-22 11:47 2020-08-29 23:43
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.5  
Platform: Any
Summary: Support Continuos Rendering flag when rendering to main camera
Description: As explained here

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2076

having support for this can save a lot of battery in games that only render UI
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006602)
jsantos   
2020-08-29 23:40   
(Last edited: 2020-08-29 23:43)
I am going to close this without changes because they are not needed. The API already supports all scenarios. When NoesisGUI is being rendered to a main camera, as explained in the documentation, 'NeedsRendering' must be used with a manually repainted camera. Manually repainted cameras must be disabled (the Camera component, not the gameobject) and Render must be invoked when needed, for example attaching the following component:

public class Redraw : MonoBehaviour
{
    void Update()
    {
        NoesisView view = gameObject.GetComponent<NoesisView>();
        Camera camera = gameObject.GetComponent<Camera>();

        if (view.NeedsRendering)
        {
            camera.Render();
        }
    }
}

NOTE: I did a minimal change, 'Continuous Rendering' inspector property is now only visible when rendering to texture.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1769 [NoesisGUI] C++ SDK crash always 2020-08-04 14:42 2020-08-28 23:03
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.5  
Platform: Any
Summary: Crash inside event handler
Description: We are in the process of testing Noesis 3.0 with our codes.
Currently we are experiencing crashes inside our event handlers (which worked back in 2.2.6).
Debugging the problem reveals that something bad happen when inside a MouseDown handler, we are attaching another MouseDown handler.

# Internally there seems to be conversion from SingleDelegate to MultiDelegate ? Not sure ...

It's difficult for us to create a repro for this bug, but we happened to be able to avoid the crash with the attached Delegate.inl.patch.

Could you please check if the patch makes sense ? It seems that mVector->v may be replaces inside the handler, so it's not safe to use the expression for (Delegate& d: mVector->v) ?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Delegate.inl.patch (1,202 bytes) 2020-08-04 14:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1285&type=bug
Notes
(0006551)
jsantos   
2020-08-05 11:17   
Hi Niko! I don't see how the proposed patch can be fix the problem because it is just using a reference, not copying the vector. And in fact, that vector cannot be destroyed because it is a ref counted object and one extra reference is being kept at the beginning of the method.

Are you sure this patch fixes your crash? Could you please double check?
(0006553)
nikobarli   
2020-08-06 05:42   
Hi Jesus,

Yes, I am pretty sure that the problem goes away with the patch. But, yes it may just be the symptom that went away, not the real bug.

I bundled two set of binaries here:

https://drive.google.com/drive/folders/1fdxot2XLzqIBg9y01k6k78c5cRQvgEo6?usp=sharing

Debug.NoPatch.zip is the binary with the original Noesis.
Debug.Patched.zip is the binary with the patched Noesis.

Please unzip the first one, and run NoesisTutorial.exe. When the window appears, click "Reactive Input" button. Then click anywhere inside the new window. The application will crash. I included the pdb files for Noesis.dll and NoesisApp.dll so that you can attach a debugger to the binary.
(0006554)
nikobarli   
2020-08-06 06:30   
Forgot to say that you'll need VS2019 runtime to use the binary (because it is compiled with VS2019 16.4.8)
(0006556)
jsantos   
2020-08-06 11:13   
Thanks for this Niko, having the PDBs will allow me to investigate further
(0006598)
jsantos   
2020-08-28 19:48   
(Last edited: 2020-08-28 19:48)
Hi Niko, I am playing with this right now. The font seems to be missing though, maybe you are using a japanese system font? Could you please attach it here?

Anyway, let's see if I can crash it trying all the sections. :)

(0006599)
jsantos   
2020-08-28 20:06   
Ok, I am being able to crash it, it is the 10th button from below.
(0006600)
jsantos   
2020-08-28 20:10   
I am getting the crash inside NoesisUtil.dll. Could you also provide the associated pdb?

     NoesisUtil.dll!00007ffa2501829f()	Unknown
     NoesisUtil.dll!00007ffa250225ab()	Unknown
     Noesis.dll!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::RoutedEventArgs & <args_1>, const void * param, bool(*)(const void *) abort) Line 185	C++
>	Noesis.dll!Noesis::UIElement::NotifyHandlers(const Noesis::RoutedEventArgs & args) Line 2633	C++
     Noesis.dll!Noesis::UIElement::BubblingEvent(const Noesis::RoutedEventArgs & args) Line 2685	C++
     Noesis.dll!Noesis::UIElement::RaiseEvent(const Noesis::RoutedEventArgs & args) Line 1162	C++
     Noesis.dll!Noesis::Mouse::RaiseButtonDownEvents(Noesis::UIElement * element, Noesis::MouseButton button, unsigned int clickCount) Line 332	C++
     Noesis.dll!Noesis::Mouse::ButtonDown(int x, int y, Noesis::MouseButton button) Line 364	C++
     Noesis.dll!Noesis::View::MouseButtonDown(int x, int y, Noesis::MouseButton button) Line 492	C++
(0006601)
jsantos   
2020-08-28 23:03   
Nevermind, your patch was good! The problem was with the range-based loop, it was not compatible with the vector memory being reallocated in the middle of the loop.

Thanks a lot for taking your time and proposing a patch


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1770 [NoesisGUI] Unity3D major always 2020-08-04 15:22 2020-08-27 12:59
Reporter: JinFox Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.5  
Platform: Any
Summary: PowerVR GPU issues with fragment shader on Android
Description: Hello,

We are experiencing an issue on some Android device where Noesis Fragment Shader isn't found:

[noesis] Link failed
Link Error: Fragment shader was not succes

Devices who have the issue have all PowerVR GPU and it seems to be the common factor. For example:
vivo y83 pro
Vivo y81
oppo a5s
leagoo m12

Can you please have a look.
Thank you very much


Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006585)
jsantos   
2020-08-19 18:33   
(Last edited: 2020-08-20 00:18)
Hi!

I wanted to verify that the patch was correct so we ordered a device a few weeks ago and it arrived today. But unfortunately I am not able to crash Noesis on this mobile (a LG K40S with PowerVR GE8320). I wonder if you could give me access to the APK of your game for testing.

(If you attach it here, make sure to mark the answer as private).

(0006586)
jsantos   
2020-08-19 18:34   
Just for the record, this is the device info
08-19 18:30:05.084 12943 12963 D Noesis  : Creating GL render context
08-19 18:30:05.094 12943 12963 D Noesis  :  EGL Version: 1.4 Android META-EGL
08-19 18:30:05.095 12943 12963 D Noesis  :  PixelFormat: C24A8 D24S8 1x
08-19 18:30:05.112 12943 12963 D Noesis  :  Version:  3.2 (OpenGL ES 3.2 build 1.10@5130912)
08-19 18:30:05.112 12943 12963 D Noesis  :  Vendor:   Imagination Technologies
08-19 18:30:05.112 12943 12963 D Noesis  :  Renderer: PowerVR Rogue GE8320
(0006587)
JinFox   
2020-08-20 11:26   
Hello Jesus,

I have sent you requested APK through email as you requested.

Best regards
(0006595)
jsantos   
2020-08-27 12:59   
Although I was not able to verify this crash in our new device, I verified our shaders against all offline shader compilers available (PowerVR, Mali...) and found two potential issues. I also improved the information reported when a shader is not compiling.

For now, I am going to mark this as solved, please reopen it again if the problem persists.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1782 [NoesisGUI] C++ SDK minor N/A 2020-08-25 10:33 2020-08-26 16:33
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Currently ignoring metadata overrides for DependencyObject type
Description: As described in:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2085
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1611 [NoesisGUI] Unity3D minor have not tried 2019-12-28 15:06 2020-08-24 11:18
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Windows
Summary: TemplateBinding Converter does not work
Description: TemplateBinding.Converter seems to not be implemented.
Tags:
Steps To Reproduce: Using the XAML below in a custom control will make Noesis log the following error message: Unknown property TemplateBinding.Converter, or object to assign is incompatible


                        <Grid Margin="{TemplateBinding StrokeThickness, Converter={StaticResource DoubleToThicknessConverter}}">
                            <ContentPresenter x:Name="PART_ContentPresenter" Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}"/>
                        </Grid>

Changing the XAML to a 'normal' binding with RelativeSource set to TemplatedParent as shown below does work.

                        <Grid Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=StrokeThickness, Converter={StaticResource DoubleToThicknessConverter}}">
                            <ContentPresenter x:Name="PART_ContentPresenter" Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}"/>
                        </Grid>
Additional Information:
Attached Files:
Notes
(0006588)
ttermeer   
2020-08-20 16:45   
I can confirm issue still present with Noesis 3.0.4 with the Unity SDK


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1748 [NoesisGUI] Unity3D major always 2020-07-07 03:52 2020-08-24 11:18
Reporter: SrdjanMaksimovic021 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Windows
Summary: Scrollbar doesn't appear inside the unity window
Description: While implementing a window that uses a scrollbar, I noticed the scrollbar didn't appear inside unity. The scrollbar would appear normally inside blend or inside unity with earlier version of NoesisGUI (2.2.6).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006507)
sfernandez   
2020-07-07 11:38   
Are you using our default theme (NoesisTheme.DarkBlue) in Noesis Settings as Application Resources or your own?
Our new ScrollViewer style hides scroll bars until you move mouse over the control, showing a thin rectangle that animates to the actual ScrollBar when it is hovered. The effect is very similar to what you see in UWP applications.
Is that what you are seeing?
(0006531)
SrdjanMaksimovic021   
2020-07-12 14:17   
@sfernandez I am using custom resources for the scrollbar and to answer the second question, it does not appear when hovered.
(0006532)
sfernandez   
2020-07-13 10:47   
Could you please attach the style+template used for your ScrollViewer and ScrollBar controls?
I'll try to reproduce the problem to determine what is happening.
(0006540)
SrdjanMaksimovic021   
2020-07-17 15:00   
(Last edited: 2020-07-18 16:11)
ok, here is everything:

 <UserControl.Resources>
        <ResourceDictionary>
            <Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Grid x:Name="Grid">
                                <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto"
                                           Height="Auto" Fill="Transparent"/>
                                <Border x:Name="Rectangle1" CornerRadius="7 7 7 7" HorizontalAlignment="Stretch"
                                        VerticalAlignment="Stretch" Width="Auto" Height="Auto"
                                        Background="{TemplateBinding Background}"/>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Tag" Value="Horizontal">
                                    <Setter TargetName="Rectangle1" Property="Width" Value="Auto"/>
                                    <Setter TargetName="Rectangle1" Property="Height" Value="7"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

            <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
                <Setter Property="Foreground" Value="#56CBFF"/>
                <Setter Property="Background" Value="Transparent"/>
                <Setter Property="Width" Value="10"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ScrollBar}">
                            <Grid x:Name="GridRoot" Width="10" Background="{x:Null}">
                                <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="False">
                                    <Track.Thumb>
                                        <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}"
                                               Style="{DynamicResource ScrollThumbs}"/>
                                    </Track.Thumb>
                                    <Track.IncreaseRepeatButton>
                                        <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="1" Focusable="False" Width="4" BorderBrush="Transparent" Background="#FFCDCDCD"/>
                                    </Track.IncreaseRepeatButton>
                                    <Track.DecreaseRepeatButton>
                                        <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="1" Focusable="False" Width="4" BorderBrush="Transparent" Background="#FFCDCDCD"/>
                                    </Track.DecreaseRepeatButton>
                                </Track>
                            </Grid>

                            <ControlTemplate.Triggers>
                                <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true">
                                    <Setter Value="#FF98D9F6"
                                            TargetName="Thumb" Property="Background"/>
                                </Trigger>
                                <Trigger SourceName="Thumb" Property="IsDragging" Value="true">
                                    <Setter Value="#FF98D9F6" TargetName="Thumb" Property="Background"/>
                                </Trigger>

                                <Trigger Property="IsEnabled" Value="false">
                                    <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed"/>
                                </Trigger>
                                <Trigger Property="Orientation" Value="Horizontal">
                                    <Setter TargetName="GridRoot" Property="LayoutTransform">
                                        <Setter.Value>
                                            <RotateTransform Angle="-90"/>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter TargetName="PART_Track" Property="LayoutTransform">
                                        <Setter.Value>
                                            <RotateTransform Angle="-90"/>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="Width" Value="Auto"/>
                                    <Setter Property="Height" Value="10"/>
                                    <Setter TargetName="Thumb" Property="Tag" Value="Horizontal"/>
                                    <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand"/>
                                    <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ResourceDictionary>
    </UserControl.Resources>

.
.
.

<ScrollViewer x:Name="ScrollView" HorizontalAlignment="Stretch" BorderThickness="2" Margin="4,0" VerticalAlignment="Stretch" Background="#00000000"/>

(0006542)
sfernandez   
2020-07-27 11:23   
Our ScrollViewer template plays with MinWidth/MinHeight of its scroll bars to achieve some effects. You can add <Setter Property="MinWidth" Value="10"/> to your ScrollBar style to make them visible, but the ScrollViewer style still fades in/out the scroll bars, so my recomendation is you define your own style/template to get the result you want, something like this:

  <ControlTemplate x:Key="Template.ScrollViewer" TargetType="ScrollViewer">
    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{DynamicResource Corner.Border0}">
      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="*"/>
          <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*"/>
          <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <ScrollContentPresenter Grid.RowSpan="2" Grid.ColumnSpan="2" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" CanContentScroll="{TemplateBinding CanContentScroll}" Margin="{TemplateBinding Padding}"/>
        <ScrollBar x:Name="PART_HorizontalScrollBar" Grid.Column="0" Grid.Row="1" Orientation="Horizontal" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Minimum="0" Maximum="{TemplateBinding ScrollableWidth}"/>
        <ScrollBar x:Name="PART_VerticalScrollBar" Grid.Column="1" Grid.Row="0" Orientation="Vertical" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Minimum="0" Maximum="{TemplateBinding ScrollableHeight}"/>
      </Grid>
    </Border>
  </ControlTemplate>
  <Style TargetType="ScrollViewer" BasedOn="{StaticResource {x:Type ContentControl}}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Template" Value="{StaticResource Template.ScrollViewer}"/>
  </Style>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1778 [NoesisGUI] C++ SDK feature N/A 2020-08-12 13:53 2020-08-20 13:21
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: ScrollIntoView for Combobox
Description: ScrollIntoView for Combobox extension as discussed in https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2068
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1780 [NoesisGUI] Unity3D minor always 2020-08-17 11:20 2020-08-17 18:22
Reporter: blafollette Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Windows
Summary: Native type is not registered error when calling FindName("myName") as ResourceDictionary
Description: I've got a big collection of flags that are stored in a <ResourceDictionary x:Name="myName"> in xaml. I wrote an IValueConverter that takes an input string from an item property in a collection and returns the svg resource. The code behind for the xaml exposes a ResouceDictionary property that I use in the IValueConverter to reference the dictionary and return values by key.

This is all working great in WPF, but in Unity when I call FindName("myName") to manually assign the ResourceDictionary to the accessor property, it throws an exception "System.InvalidOperationException: Native type is not registered".
Tags: C#, ResourceDictionary, Unity, xaml
Steps To Reproduce: 1. Create a xaml page with a ResourceDictionary and define a name for it using the x:Name attribute
2. In the page's code-behind, define an accessor property of type ResourceDictionary
3. in the definition for InitializeComponent(), assign the above property the value of the named ResourceDictionary using FindName()
4. FindName should throw the "Native type is not registered" exception
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1776 [NoesisGUI] C++ SDK crash sometimes 2020-08-11 16:50 2020-08-13 12:19
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Access violation when scrolling in an ItemsControl.
Description: This seemed to have started after going from 3.0.3 -> 3.0.4. It happens when I continuously scroll down or up in an ItemsControl.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2020-08-11_144423920.rar (437,598 bytes) 2020-08-11 16:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1290&type=bug
Crash_2020-08-12_145613208.7z (312,683 bytes) 2020-08-12 16:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1291&type=bug
Crash_2020-08-12_155939901.7z (311,498 bytes) 2020-08-12 18:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1292&type=bug
Crash_2020-08-12_203423724.rar (344,636 bytes) 2020-08-12 22:36
https://www.noesisengine.com/bugs/file_download.php?file_id=1293&type=bug
Notes
(0006570)
sfernandez   
2020-08-12 12:52   
I found something that can be the cause of the crash, could you please try the following debug library that includes a fix?
https://drive.google.com/file/d/1He5jnBkFqITuIYvN2KWKd_8Dvmu19NKo
(0006571)
asusralis   
2020-08-12 16:36   
When replacing the .dll at /NoesisGUI/Plugins/Libraries/Windows/x86_64 and restarting my editor results in this error when trying to run:

DllNotFoundException: Noesis
Noesis.Texture.WrapTexture (System.Object texture, System.IntPtr nativePointer, System.Int32 width, System.Int32 height, System.Int32 numLevels) (at Assets/NoesisGUI/Plugins/NoesisTexture.cs:17)
Noesis.TextureSource..ctor (UnityEngine.Texture2D texture) (at Assets/NoesisGUI/Plugins/NoesisTextureSource.cs:12)
(0006572)
sfernandez   
2020-08-12 16:41   
Probably a dependency not found with the debug CRT, let me generate a new library.
(0006573)
sfernandez   
2020-08-12 16:47   
Please try again with this one: https://drive.google.com/file/d/1GVpCeqI85DgpYiMZ6WrnPm8HrzCYGLiu
(0006574)
asusralis   
2020-08-12 16:59   
Okay, that worked. It actually crashed this time right after the control was created, so I'm not sure if this is the same problem or not. Before it was crashing only when I was scrolling up and down.
(0006575)
sfernandez   
2020-08-12 17:47   
Last crash was because of an assert, please use this one:
https://drive.google.com/file/d/19Ub965DwtUeY30S8MK1wvDm-czu9jwBf
(0006576)
asusralis   
2020-08-12 18:02   
Okay, this one crashed at the right time.
(0006577)
sfernandez   
2020-08-12 18:58   
Thanks a lot for the feeback, it helped me identify the problem.

This library should fix it: https://drive.google.com/file/d/1oEzPaSbXd406urlja1294mMtdpdTUvmR
(0006578)
asusralis   
2020-08-12 22:28   
That fixed it, thanks.
(0006579)
asusralis   
2020-08-12 22:36   
(Last edited: 2020-08-12 22:36)
Actually, playing a bit with my game resulted in another crash; it seems related to the itemscontrol. I think it happened as I was clicking an item in it, or it was possibly scrolling.

(0006580)
sfernandez   
2020-08-13 12:19   
Last crash was related to the rendering of effects, I created a new ticket to investigate that: 0001779

Marking this one as solved in relation to the ItemsControl scrolling and shared size groups.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1764 [NoesisGUI] C# SDK feature N/A 2020-07-29 18:32 2020-08-12 19:04
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Expose memory usage stats (instrumentation API)
Description: Hi guys,
please expose memory usage stats (instrumentation API) in C# SDK.

Ideally, we want to know how much of the unmanaged memory and how much VRAM are used by NoesisGUI.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1774 [NoesisGUI] C# SDK major always 2020-08-11 07:14 2020-08-12 17:55
Reporter: ck_russ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Windows
Summary: Unable to set Storyboard Target in code
Description: A Storyboard's target/targetname set in code is ignored on a call to storyboard.Begin():

-----
            DoubleAnimation d = new DoubleAnimation();
            d.Duration = new Duration(TimeSpan.FromSeconds(2));
            d.To = 200;

            Storyboard sb = new Storyboard();
            sb.Children.Add(d);

            Storyboard.SetTarget(sb, CodeButton);
            Storyboard.SetTargetProperty(sb, new PropertyPath("Width"));
            Storyboard.SetTargetName(sb, "CodeButton");

            Debug.Assert(CodeButton.Name == "CodeButton");
            Debug.Assert(Storyboard.GetTarget(sb) == CodeButton);
            Debug.Assert(Storyboard.GetTargetProperty(sb).Path == "Width");
            Debug.Assert(Storyboard.GetTargetName(sb) == "CodeButton");

            sb.Begin();
-----

In the above code snippet all assertions pass, but the call to Begin() fails with a log output of: ""Cannot Begin Storyboard, Target not found". Manually specifying the target "sb.Begin(CodeButton)" does work.
Tags: C# Storyboard
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1775 [NoesisGUI] C# SDK major always 2020-08-11 07:16 2020-08-12 13:29
Reporter: ck_russ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Storyboard FillBehavior set in XAML is ignored by children
Description: Here is a XAMLToy ready code sample:

<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Rectangle Width="50" Height="50" Fill="DarkSeaGreen">
    <Rectangle.Triggers>
      <EventTrigger RoutedEvent="Grid.Loaded">
        <BeginStoryboard>
          <Storyboard FillBehavior="Stop" Storyboard.TargetProperty="Width">
            <DoubleAnimation To="200" Duration="0:0:2"/>
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger>
    </Rectangle.Triggers>
  </Rectangle>
</Grid>

In the above sample the animation should be ended after its execution due to FillBehavior=Stop, but it instead will hold it as if its FillBehavior was HoldEnd.
Tags: Storyboard, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1772 [NoesisGUI] Unity3D minor always 2020-08-10 17:30 2020-08-12 10:27
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Going from 3.0.3 -> 3.0.4 has broken certain MouseEnter events.
Description: I see this in two areas -

1): My buttons have stopped changing colors when you put your cursor over them. I define my button like this:

   <Style BasedOn="{StaticResource Style.ButtonBase}" TargetType="Button">
        <Setter Property="Background" Value="{StaticResource Button.Background.Static}" />
        <Setter Property="BorderThickness" Value="3" />
        <Setter Property="BorderBrush" Value="#355C7D" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border
                        Padding="{TemplateBinding Padding}"
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">
                        <ContentPresenter
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                         
                            TextElement.FontSize="{TemplateBinding FontSize}" />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="{StaticResource Button.Background.Hovered}" />
            </Trigger>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Background" Value="{StaticResource Button.Background.Pressed}" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Background" Value="{StaticResource Button.Background.Disabled}" />
                <Setter Property="BorderBrush" Value="{StaticResource Button.Background.Disabled}" />
            </Trigger>
        </Style.Triggers>
    </Style>

2): I also use MoseOver directly in some controls, and they have stopped working as well:


        protected override bool ConnectEvent(object source, string eventName, string handlerName)
        {
            if(eventName == "MouseEnter" && handlerName == "Status_MouseEnter")
            {
                ((FrameworkElement)source).MouseEnter += Status_MouseEnter;
                return true;
            }

            return false;
        }

private void Status_MouseEnter(object sender, MouseEventArgs args)
        {
            // Is not invoked.
        }

The only change has been updating to 3.0.4; everything works correctly on 3.0.3.

edit: I don't get any errors or crashes, so I'm not sure how to reproduce this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006566)
sfernandez   
2020-08-10 17:45   
Is it possible you have "Emulate Touch" enabled in your NoesiView component?
We did a change there to mimic the events generated when using touch devices, that is, avoid sending TouchMove/MouseMove if no finger is pressed.
(0006567)
asusralis   
2020-08-10 17:50   
(Last edited: 2020-08-10 18:15)
Yes, that does seem to be the problem. This change actually will benefit me as well, but is there any way way to have both as an option? It's really nice to be able to drag your mouse to go down lists while on a desktop. I would only want to turn this off when testing for mobile.

(0006568)
sfernandez   
2020-08-11 12:58   
I don't think it would be the expected behavior to scroll lists by dragging the mouse.
That flag is meant to test the experience of touch devices using the mouse, and you can always switch that flag while playing if you need to test drag scrolling using the mouse.

Do you think we can close this issue?
(0006569)
asusralis   
2020-08-11 14:21   
ok


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1714 [NoesisGUI] C# SDK minor always 2020-06-09 11:16 2020-08-11 19:18
Reporter: ck_russ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Default display for a databound enum in XAML is its numeric value instead of its string value
Description: This is an inconsistency between WPF and Noesis which can result in some unexpected output in cases where enums are directly output.
Tags: xaml
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006543)
sfernandez   
2020-07-27 16:45   
Can you provide a test sample where you can reproduce this?

I tried with the following code and xaml and it shows the string value of the enum:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <TextBlock Text="{Binding State}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>

public enum EnumState
{
    First,
    Second,
    Third
}

public class EnumViewModel
{
    public EnumState State { get; set; }
}

public class EnumDisplayBehavior : MonoBehaviour
{
    void Start()
    {
        NoesisView view = GetComponent<NoesisView>();
        view.Content.DataContext = new EnumViewModel { State = EnumState.Second };
    }
}
(0006545)
ck_russ   
2020-07-29 08:56   
It does seem to work with TextBlocks. The problem appears in other controls:

    <Grid>
        <StackPanel>
            <Button Content="{Binding State}"/>
            <ContentControl Content="{Binding State}"/>
            <TextBlock Text="{Binding State}"/>
            <TextBox Text="{Binding State,Mode=OneTime}"/>
        </StackPanel>
    </Grid>

In WPF this results in:
Second
Second
Second
Second

In Noesis this results in:
1
1
Second
[*no value displayed*]
(0006546)
sfernandez   
2020-07-29 11:34   
Thanks for the repro steps.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1767 [NoesisGUI] C# SDK major random 2020-08-04 11:19 2020-08-11 12:51
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: System.InvalidOperationException: Queue empty.
Description: We are intermittently seeing this exception when try to save an image (this is where we render part of the visual tree to a bitmap), any idea what might cause that?

 
System.InvalidOperationException: Queue empty.

   at System.Collections.Generic.Queue`1.ThrowForEmptyQueue()
   at System.Collections.Generic.Queue`1.Dequeue()
   at Noesis.Dispatcher.ProcessQueue()
   at Noesis.View.Update(Double timeInSeconds)
   at NoesisApp.Window.Render(Double time)
   at NoesisApp.Application.<>c__DisplayClass39_0.<Run>b__0(Display d)
   at NoesisApp.Win32Display.EnterMessageLoop(Boolean runInBackground)
   at NoesisApp.Application.Run()
   at UIShell.App.Main(String[] args) in C:\Users\307010312\Source\Repos\sbc_sw\src\ExecUICore3\UiShell\App.cs:line 204
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1773 [NoesisGUI] Unity3D minor always 2020-08-10 23:06 2020-08-11 12:47
Reporter: real_mikhail Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Signature mismatch of RoutedEventArgs constructor
Description: I'll upload 2 screenshots:
1st shows expected arguments in Wpf/Blend
2nd shows expected arguments in Noesis/Unity
Tags: C#, Unity
Steps To Reproduce:
Additional Information:
Attached Files: WpfBlend.png (15,629 bytes) 2020-08-10 23:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1288&type=bug
UnityNoesis.png (6,450 bytes) 2020-08-10 23:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1289&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1768 [NoesisGUI] Unity3D crash always 2020-08-04 11:22 2020-08-10 17:41
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Updating from 3.0.3 -> 3.0.4 results in Unity crashing.
Description: I attached the crash files. It seems to consistently happen when showing a specific usercontrol, but it is fairly large to show. No crashes on 3.0.3.

I was so excited to get 3.0.4 - four of my issues were resolved in it!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2020-08-04_091440632.zip (422,075 bytes) 2020-08-04 11:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1284&type=bug
Crash_2020-08-10_140244225.rar (322,698 bytes) 2020-08-10 16:05
https://www.noesisengine.com/bugs/file_download.php?file_id=1287&type=bug
Notes
(0006552)
jsantos   
2020-08-05 11:18   
I am so sorry about this :(
Let's see if we can release a new version next week. Thanks for the dump!
(0006555)
asusralis   
2020-08-06 08:39   
No problem, thanks for the help :D
(0006558)
sfernandez   
2020-08-10 12:24   
The crash is related with the new Grid SharedSizeGroup feature, are you using it in that particular UserControl?
Is there any chance you can attach the xaml so I can try to reproduce it myself to find the source of the problem?
(0006559)
asusralis   
2020-08-10 12:43   
(Last edited: 2020-08-10 12:54)
Oh, I actually am. I tried using it ages ago but found it wasn't implemented in Noesis, so it stayed dormant. Removing those does stop it from crashing, but I can send you the xaml either way. I also found I'm also getting a separate error, so I'll make a new issue for that.

edit: the error was actually from a fix that came with 3.0.4 about a property now properly becoming read-only, so it isn't an issue.

(0006561)
sfernandez   
2020-08-10 13:34   
Thanks for the xaml, unfortunately I can't make it crash here.
I generated a debug version of our library with some asserts that could help me idenitfy the problem.

https://drive.google.com/file/d/1ALKTKOZqkd5LGm3n-oq_Da4nVTJ54Yri

Could you please try to use that library in your project with the UserControl that produces the crash?
(0006562)
asusralis   
2020-08-10 16:05   
Does this work?
(0006563)
sfernandez   
2020-08-10 17:02   
Yes, that was helpful, I was able to reproduce the bug.
We'll fix it for next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1771 [NoesisGUI] Unity3D major always 2020-08-04 18:52 2020-08-10 17:36
Reporter: real_mikhail Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.5  
    Target Version: 3.0.5  
Platform: Any
Summary: Noesis doesn't allow to use "custom UserControl" in xaml
Description: Currently for each UI's code behind I have following code:
```
#if UNITY_5_3_OR_NEWER
#define NOESIS
using Noesis;
#else
using System.Windows.Controls;
#endif

    public partial class Testing : UserControl
    {
        public Testing()
        {
            InitializeComponent();
        }

#if NOESIS
        private void InitializeComponent()
        {
            Noesis.GUI.LoadComponent(this, "Assets/Root/UI/Testing.xaml");
        }
#endif
    }
```

I wanted to avoid that, and for that I've created my custom UserControl class:
```
#if UNITY_5_3_OR_NEWER
#define NOESIS
#endif

namespace Alchemy.UI.Misc
{
    public class UserControl :
#if NOESIS
        Noesis.UserControl
#else
        System.Windows.Controls.UserControl
#endif
    {
#if NOESIS
        protected void InitializeComponent()
        {
            var filepath = $"Assets/Root/UI/{GetType().Name}.xaml";
            Noesis.GUI.LoadComponent(this, filepath);
        }
#endif
    }
}
```

And this way I don't have to use #if directives in my UIs. Xaml in that case looks following:
```
<misc:UserControl x:Class="Alchemy.UI.Testing"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:Alchemy.UI"
             xmlns:misc="clr-namespace:Alchemy.UI.Misc"
             mc:Ignorable="d"
             d:DesignHeight="1080"
             d:DesignWidth="1920"
             d:DataContext="{d:DesignInstance {x:Type local:TestingViewModel}}">
    <Grid>
    </Grid>
</misc:UserControl>
```

And that works perfectly in WPF (in blend solution). But in Unity (in Noesis) I'm getting following error:
```
[noesis] Assets/Root/UI/Testing.xaml(1): Unknown type 'Alchemy.UI.Misc.UserControl'.
UnityEngine.Debug:LogError(Object)
NoesisUnity:UnityLog(Int32, String) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:141)
Noesis.GUI:Noesis_LoadXaml(String)
Noesis.GUI:LoadXaml(String) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:244)
NoesisXaml:Load() (at Assets/NoesisGUI/Plugins/NoesisXaml.cs:30)
NoesisPostprocessor:ImportXaml(String, Boolean, Boolean, Boolean&) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:372)
NoesisPostprocessor:ImportXaml(String, Boolean, Boolean) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:299)
NoesisPostprocessor:ImportAssets(String[], Boolean, UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:78)
```
Tags: xaml
Steps To Reproduce:
Additional Information:
Attached Files: CustomRoot.unitypackage (4,360 bytes) 2020-08-10 12:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1286&type=bug
Notes
(0006557)
sfernandez   
2020-08-10 12:02   
Hello, I might be missing something because in the attached test I made it is working as expected (using NoesisGUI 3.0.4).
Do you have anything different in your project?
(0006564)
real_mikhail   
2020-08-10 17:13   
Hm... I cannot reproduce it anymore. Might be my bad - there was a compilation error in another script (ambiguous reference to UserControl) and because of that Noesis failed to process/import xaml with this custom UserControl. As soon as I fixed this C# error -- importing was successful. Sorry for troubles.
(0006565)
sfernandez   
2020-08-10 17:36   
That makes sense, if assembly was not compiled the parser wouldn't be able to find your custom type and failed.
Closing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1763 [NoesisGUI] C++ SDK crash sometimes 2020-07-29 17:45 2020-07-31 19:41
Reporter: PNettleship Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Windows
Summary: FormattedText::UnregisterBrush() Crash
Description: Applying a stroke to a TextBlock on a popup, using a binding on the colour can lead to a crash.

This occurs when displaying the TextBlock multiple times, with a different colour.
The value of StrokeColour would alternate between "Red" and "Yellow".

noesis:Text.Stroke="{Binding StrokeColour}"
noesis:Text.StrokeThickness="12"

My application has an error popup that applies a different Foreground and Stroke to a TextBlock. The value of the Binding is based on the popup's context.
Changing the colour of the stroke eventually causes a crash in FormattedText::UnregisterBrush(), as the brush being referenced is null. No null check is performed before checking if the brush is not frozen.

Tags: C++, xaml
Steps To Reproduce: Setup a TextBlock to colour a stroke using a Binding.
Display the TextBlock in something generic, like a popup.
Change the value of the binding to change the colour of the stroke.
Display the TextBlock again.
After changing the colour of a stroke multiple times, the application will eventually crash in FormattedText::UnregisterBrush()
Additional Information:
Attached Files: StackTrace.txt (1,179 bytes) 2020-07-29 17:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1281&type=bug
StackTrace-2.txt (1,179 bytes) 2020-07-29 17:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1282&type=bug
Notes
(0006547)
sfernandez   
2020-07-30 10:43   
Is it possible you are still using 3.0.2 or an older version?
We fixed in 3.0.3 a problem in FormattedText::UnregisterBrushes() that could be the same you are experiencing.
(0006548)
PNettleship   
2020-07-30 16:48   
Thanks for the response.

I've just confirmed we're using version 3.0.0
We're going to look into integrating the changes made to FormattedText on 9th July 2020.
And possibly upgrade to 3.0.3 in a suitable milestone.
(0006550)
PNettleship   
2020-07-31 14:46   
We have integrated the changes made to FormattedText on 9th July 2020 in version 3.0.3

The crash no longer occurs.
We'll look into fully integrating version 3.0.3, when it safe to do so.

Thank you.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1500 [NoesisGUI] C# SDK feature N/A 2019-06-19 23:26 2020-07-31 17:56
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: TextBlock Character Spacing Extension
Description: This is a request for a TextBlock character spacing property via an extension. Custom character spacing is available in Unity's UI system but it cannot be done in Noesis today.

https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.textblock.characterspacing

Thanks,
Shaun
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1593 [NoesisGUI] C# SDK minor always 2019-12-05 06:51 2020-07-31 13:21
Reporter: Inuyasha12 Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Unity3D cannot use the mouse click control when displaying multiple screens
Description: When Unity is running on multiple screens, I can't hit the control with the mouse.
Because Unity will display these screens as a whole when displaying multiple screens at the same time, your mouse coordinates are the coordinates in this large screen.
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006031)
jsantos   
2019-12-05 13:30   
A proposed patch can be found at

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1865


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1678 [NoesisGUI] Unity3D feature always 2020-05-01 21:46 2020-07-30 20:05
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: WebGL Build Produces Different XAML Colors
Description: In the Unity editor and x86 builds, XAML themes and colors behave as expected. However, for WebGL builds I am seeing red colors appear 'washed out'. Like a linear vs gamma color space issue, or something else. The red color is defined in a resource dictionary. There are no apparent errors accessing the resource dictionary or the associated color.

Editor.png. This is how the color appears in the editor and x86 player builds.
WebGL.png. This is how the color appears in WebGL builds.

You can try it, here: https://customerselectunitysvcs.blob.core.windows.net/test/WebGL/index.html?projectid=f8ce5ffa-a2db-40d4-b4f5-deaea653353a&revision=22


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Editor.PNG (205,373 bytes) 2020-05-01 21:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1225&type=bug
WebGL.PNG (218,115 bytes) 2020-05-01 21:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1226&type=bug
Notes
(0006313)
stonstad   
2020-05-04 18:51   
I've ruled out XAML not loading properly. This is a color issue.
(0006314)
jsantos   
2020-05-04 18:54   
This is related to linear rendering. It is not implemented in OpenGL/WebGL. If you disable linear rendering in Unity it should work.
(0006315)
stonstad   
2020-05-04 19:05   
According to Unity it is supported: https://blogs.unity3d.com/2017/07/17/linear-rendering-support-with-webgl-2-0/ Are you saying that Noesis does not support it?
(0006316)
jsantos   
2020-05-04 19:07   
Yes, sorry, I was talking about Noesis. I will see if I can have this for final 3.0.0. If that's not possible it will be in 3.0.1
(0006327)
jsantos   
2020-05-07 12:53   
I am marking this as a feature and moving in to the 3.0 roadmap.
(0006336)
stonstad   
2020-05-08 16:23   
Re: deprecation. They are continuing to make investments in WebGL. i.e. new features in 2020.1, 2020.2.
(0006370)
stonstad   
2020-05-18 17:33   
Noesis licensee, MBI, has identified this as a critical issue because it prevents release of their product to the web.
(0006371)
jsantos   
2020-05-18 17:36   
Thanks for the feedback! 3.0.0 is locked now but we will add this feature to 3.0.1
(0006486)
stonstad   
2020-07-01 19:38   
Just reaching out to see if there are any updates around this? We are unable to release to WebGL w/ Linear rendering, as Gamma changes color and post processing significantly.
(0006496)
jsantos   
2020-07-02 19:19   
(Last edited: 2020-07-02 19:19)
Hi! I have been working on this but it is taking more time than expected. If we can't finish this for 3.0.3 I will try to provide you a hotfix. Sorry for the inconvenience.

(0006503)
stonstad   
2020-07-06 16:35   
Thank you -- much appreciated!
(0006544)
jsantos   
2020-07-28 22:27   
We just committed a fix for this. A preview can be downloaded from here. It should be compatible with 3.0.3, but I haven't checked

https://drive.google.com/file/d/16A9ZfXMoROggaF2_GcmkCIrFbkuLIwKG/view?usp=sharing


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1688 [NoesisGUI] C# SDK crash always 2020-05-19 03:25 2020-07-30 20:03
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: View.Noesis_View_Update() Hangs Built Player
Description: In player builds, View.Update -> Noesis_View_Update(CPtr, timeInSeconds) enters an endless loop. It is consistent but random. The process runs but Unity stops updating because method Noesis_View_Update never returns. This is in a headless player process.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006372)
stonstad   
2020-05-19 03:54   
(Last edited: 2020-05-19 17:49)
Circling back for more detail. I launch a headless unity process to generate and save render target textures. The problem with the above method is that it works sometimes, but not all the time. Either it should fail completely or work completely -- and never get stuck in a blocking loop. This was very hard to identify because it only happens in compiled builds.

(0006373)
jsantos   
2020-05-19 10:43   
This is definitely related to having Unity in headless mode. How are you configuring that? Let's see if we can detect this easily.
(0006374)
jsantos   
2020-05-19 11:30   
I assume that checking against SystemInfo.graphicsDeviceID == 0 should be enough right?
(0006375)
jsantos   
2020-05-19 11:48   
(Last edited: 2020-05-19 11:49)
Please, try the following patch

Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 9298)
+++ NoesisView.cs	(working copy)
@@ -840,9 +840,14 @@
     private int _pendingUpdates = 0;
 #endif
 
+    bool IsHeadless()
+    {
+        return SystemInfo.graphicsDeviceType == GraphicsDeviceType.Null;
+    }
+
     void LateUpdate()
     {
-        if (_uiView != null && _visible)
+        if (_uiView != null && _visible && !IsHeadless())
         {
 
 #if UNITY_EDITOR


(0006376)
stonstad   
2020-05-19 17:42   
I'm working to produce a reproduction project for you. Headless in this scenario does not mean no graphics card. Maybe my terminology is incorrect. Unity calls it 'batch' mode. Render targets are acquired and used but not displayed. I suspect a layout loop issue due to indeterminate size of containers within a XAML hierarchy. Everything works 98% of the time without a change in code -- but the remaining 2% is when something triggers Noesis_View_Update to hang.
(0006377)
stonstad   
2020-05-19 17:44   
If I give you a player built in development mode -- which reproduces the behavior when clicked, is this sufficient? It would be about 150MB unzipped, which is easier than a source project.
(0006380)
jsantos   
2020-05-19 18:57   
The problem is, Unity is not rendering and Noesis enqueues updates that need to be processed, if they are not processed Update waits and lock for ever if there no render happening. For now I don't need a project repro beacuse I am sure this is what's happening. I need to understand more about your 'headless' to setup. Do you need noesis components enabled in that mode?
(0006381)
stonstad   
2020-05-19 19:57   
The graphics card is initialized and MonoBehaviour.Update() fires. Noesis components are instantiated and all component Awake, Start, and Update as expected. In this scenario, View.Noesis_View_Update() sometimes hangs, but not consistently. In other words, the application *can* render Noesis Views but sometimes a freeze occurs.

<<Download Link in Private Note >>

Reproduction steps:

1) Unzip to folder and click batchmode.bat
2) A pop-up shows to optionally connect a debugger. Connect a managed debugger or just click OK.
3) A number of PNG files will be generated in the folder. The quantity may vary depending on when the error occurs.
4) The process eventually hangs on View.Noesis_View_Update().

A note on restarting -- make sure that all MBI.CustomerSelect.Unity.PC.exe and Debug (title in task manager) processes are killed before each run.

The log file generated in C:\Users\USER\AppData\LocalLow\Morton Buildings, Inc\ shows entry and exit statements for the aforementioned method.

Log File shows 1) Device Creation:

fxDevice: creating device client; threaded=0
Direct3D:
    Version: Direct3D 11.0 [level 11.1]
    Renderer: NVIDIA GeForce GTX 1650 (ID=0x1f91)

and 2) Entry/Exit statements for Noesis_View_Update

ENTER Noesis_View_Update 0.819999992847443
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Noesis.View:Update(Double)
NoesisView:LateUpdate()
 
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

EXIT Noesis_View_Update 0.819999992847443 False
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Noesis.View:Update(Double)
NoesisView:LateUpdate()

The last statement in the log file is always an ENTER statement.
(0006427)
jsantos   
2020-06-08 13:57   
So in this 'headless' or 'batch' mode can't you disable Noesis component? As far as I understand you are not rendering anything...
(0006441)
stonstad   
2020-06-16 23:54   
It is possible. I render a UI overlay to display a compass. The problem that I see here is that the behavior is inconsistent. It works as expected until it doesn't -- but why?
(0006448)
stonstad   
2020-06-23 23:07   
I came across this logic that was recently added, re: pendingUpdates. I'm wondering if this behavior might be fixed now?
(0006470)
jsantos   
2020-06-29 18:33   
In '-batchmode', Unity, sometimes does not execute render commands. I do not understand why. I think a workaround would be enabling 'manual' rendering of noesis, for scenarios like this, where you need to manually invoke 'render' in the component.

What do you think?
(0006474)
stonstad   
2020-06-29 20:20   
Sure -- I'd be happy to do this. Which method should I manually call to avoid the freeze scenario?
(0006497)
jsantos   
2020-07-02 19:28   
(Last edited: 2020-07-02 19:28)
There is no method for that right now, I am working on a way to expose that in the API.

Meanwhile, could you please try the following patch (it is similar to the one already posted above but I want to make sure it doesn't work)

Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 9298)
+++ NoesisView.cs	(working copy)
@@ -840,9 +840,14 @@
     private int _pendingUpdates = 0;
 #endif
 
+    bool IsHeadless()
+    {
+        return Application.isBatchMode;
+    }
+
     void LateUpdate()
     {
-        if (_uiView != null && _visible)
+        if (_uiView != null && _visible && !IsHeadless())
         {
 
 #if UNITY_EDITOR




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1750 [NoesisGUI] C++ SDK crash random 2020-07-07 13:45 2020-07-30 20:01
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Windows
Summary: Random crash in complex scenes
Description: Nested ItemsControl (StackPanel, not virtualized, vertical then horizontal), rendering a total of 200 times 45 buttons. Depending on the complexity of the templates, actual numbers may need to be increased.

Expected behavior:
It's slow to compute the layout.

Actual behavior:
It's slow to compute the layout, followed by various callstacks ending up with a write access violation in these top 3 frames:

     vcruntime140.dll!memcpy() Line 243
     Noesis.dll!Noesis::DragDrop::GetClassType() + 4657 bytes
     Noesis.dll!00007ffda806bce4()
     ...
     IView::Update()

The cause is not entirely clear, but it appears to happen whenever scene complexity approaches ~30k allocations.
The system is still far from going out-of-memory (just 200MB used reported by Noesis itself), and it doesn't appear to be dependent on effective render resolution either.

Attached is a minidump for one of the crahes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: complex.dmp (89,650 bytes) 2020-07-07 13:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1277&type=bug
Notes
(0006533)
jsantos   
2020-07-13 13:35   
Thanks for this, the dump contains all the information we need. There is an internal overflow in our command queue.
(0006549)
jsantos   
2020-07-30 20:01   
Thanks for the feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1762 [NoesisGUI] C++ SDK minor always 2020-07-27 21:17 2020-07-27 21:20
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Attributes with d: prefix not ignored if defined before mc:Ignorable attribute
Description: As described in forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2054
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1761 [NoesisGUI] C++ SDK major always 2020-07-27 09:59 2020-07-27 20:21
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Compile error due to 'double' to 'float' conversion in VS2019
Description: I am not sure if it happens in VS2015, but when building r9469 from branch 3.0 with VS2019, there are several build errors inside OcculusVR project. The errors are due to 'double' to 'float' conversion.

I attached a patch that fixes the errors in my environment.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Double2Float.patch (2,083 bytes) 2020-07-27 09:59
https://www.noesisengine.com/bugs/file_download.php?file_id=1280&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1754 [NoesisGUI] C# SDK major always 2020-07-10 11:54 2020-07-24 18:37
Reporter: ck_russ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Databindings within triggers in a template element not functioning
Description: Forum description here: https://www.noesisengine.com/forums/viewtopic.php?p=11423

XamlToy ready example of issue (databinding to blue fails):

<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <ContentControl>
    <ContentControl.Content>
      <Color>#ff0000ff</Color>
    </ContentControl.Content>
    <ContentControl.ContentTemplate>
      <DataTemplate>
        <Grid>
          <Rectangle Name="SomeRect" Width="200" Height="200" Fill="Pink">
            <Rectangle.Triggers>
              <EventTrigger RoutedEvent="Rectangle.Loaded">
                <EventTrigger.Actions>
                  <BeginStoryboard>
                    <Storyboard>
                      <ColorAnimation
                                      Duration="0:0:5"
                                      From="Green"
                                      To="{Binding}"
                                      AutoReverse="True" RepeatBehavior="Forever"
                                      Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)"
                                      Storyboard.TargetName="SomeRect">
                      </ColorAnimation>
                    </Storyboard>
                  </BeginStoryboard>
                </EventTrigger.Actions>
              </EventTrigger>
            </Rectangle.Triggers>
          </Rectangle>
        </Grid>
      </DataTemplate>
    </ContentControl.ContentTemplate>
  </ContentControl>
</Grid>
Tags: xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1759 [NoesisGUI] Unity3D minor always 2020-07-24 17:16 2020-07-24 18:36
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Template resources defined in visual tree are incorrectly being shared
Description: When defining resources inside a Template as part of visual tree, those resources should be different instances for each control instance as it happens in WPF:

From forum topic: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2057
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <ControlTemplate x:Key="btnTemplate" TargetType="Button">
      <Grid>
        <Grid.Resources>
          <SolidColorBrush x:Key="bgBrush" Color="{Binding Background.Color, RelativeSource={RelativeSource TemplatedParent}}"/>
        </Grid.Resources>
        <Border Background="{StaticResource bgBrush}" BorderBrush="Black" BorderThickness="1"/>
      </Grid>
    </ControlTemplate>
  </Grid.Resources>
  <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
    <Button Template="{StaticResource btnTemplate}" Background="Red" Width="200" Height="50"/>
    <Button Template="{StaticResource btnTemplate}" Background="Green" Width="200" Height="50" Margin="0,2"/>
    <Button Template="{StaticResource btnTemplate}" Background="Blue" Width="200" Height="50"/>
  </StackPanel>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1758 [NoesisGUI] C++ SDK minor always 2020-07-20 18:16 2020-07-20 18:18
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Can't set Row/Column of items within an ItemsControl with Grid items host
Description: As described here: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2051
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1757 [NoesisGUI] C++ SDK minor always 2020-07-19 16:20 2020-07-20 13:55
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: HorizontalOffset/VerticalOffset to move ToolTip does not work.
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2049

Remark also that PlacementTarget property should be updated to the ToolTip (ContextMenu) owner when popup opens.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1479 [NoesisGUI] C++ SDK feature always 2019-05-30 10:56 2020-07-16 12:33
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Define MenuItem role resource keys and use them in default style
Description: WPF defines a set of resource keys to be used for the template definition of the different MenuItem roles:
 - <ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="MenuItem">
 - <ControlTemplate x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}" TargetType="MenuItem">
 - <ControlTemplate x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" TargetType="MenuItem">
 - <ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="MenuItem">

So they can be used in MenuItem style definition and allow restyling several roles of MenuItem without having to restyle all of the control:
<Style TargetType="{x:Type MenuItem}">
    <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
    <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
    <Setter Property="Template" Value="{DynamicResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/>
    <Style.Triggers>
        <Trigger Property="Role" Value="TopLevelHeader">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderBrush" Value="Transparent"/>
            <Setter Property="Foreground" Value="{StaticResource Menu.Static.Foreground}"/>
            <Setter Property="Template" Value="{DynamicResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/>
            <Setter Property="Padding" Value="6,0"/>
        </Trigger>
        <Trigger Property="Role" Value="TopLevelItem">
            <Setter Property="Background" Value="{StaticResource Menu.Static.Background}"/>
            <Setter Property="BorderBrush" Value="{StaticResource Menu.Static.Border}"/>
            <Setter Property="Foreground" Value="{StaticResource Menu.Static.Foreground}"/>
            <Setter Property="Template" Value="{x:Static MenuItem.TopLevelItemTemplateKey}}"/>
            <Setter Property="Padding" Value="6,0"/>
        </Trigger>
        <Trigger Property="Role" Value="SubmenuHeader">
            <Setter Property="Template" Value="{DynamicResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
        </Trigger>
    </Style.Triggers>
</Style>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1552 [NoesisGUI] C# SDK major always 2019-09-09 14:16 2020-07-16 11:50
Reporter: lupod Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Windows
Summary: Sharing column or row sizes between grids with BaseDefinition.ShareSizeGroup does not work.
Description: Columns (or rows) in different grids can sync their sizes using the ShareSizeGroup attribute. This requires the Grid.IsSharedSizeScope property on any ancestor to be set to true.
An example where this is useful (and actually quite critical) is displaying items with multiple columns in an ItemsControl. This could be a list of key value pairs where we want all the values aligned in a common column. We cannot use one common grid for all items because the templates for the ItemsPanel and the Items itself are defined separately.

The ShareSizeGroup attribute has no effect and the official example, which works in Blend, does not work in Noesis (see below).

The feature is described in this article from the .NET docs: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/how-to-share-sizing-properties-between-grids
Tags: C#, Unity, xaml
Steps To Reproduce: Try the example from the .NET docs, it does not work: (https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/how-to-share-sizing-properties-between-grids)

Here is a simplified version of the code sample from the link above, but with the (in Noesis unsupported) Grid.ShowGridLines removed. And I removed the toggling logic.
This code does work flawlessly in Blend (design and runtime) but the same code does not work in Noesis for Unity.

Expected Result: The columns and row of the right grid should be resized to the corresponding sizes in the left grid.
Actual Result: No size sharing is happening when running in unity.

    <DockPanel Name="dp1" Grid.IsSharedSizeScope="True" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10">

        <StackPanel Orientation="Horizontal" DockPanel.Dock="Top">

            <Grid Margin="0,0,10,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="FirstColumn"/>
                    <ColumnDefinition SharedSizeGroup="SecondColumn"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" SharedSizeGroup="FirstRow"/>
                </Grid.RowDefinitions>

                <Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0" Width="200" Height="100"/>
                <Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0" Width="150" Height="100"/>

                <TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">First Column</TextBlock>
                <TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Second Column</TextBlock>
            </Grid>

            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="FirstColumn"/>
                    <ColumnDefinition SharedSizeGroup="SecondColumn"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" SharedSizeGroup="FirstRow"/>
                </Grid.RowDefinitions>

                <Rectangle Fill="Silver" Grid.Column="0" Grid.Row="0"/>
                <Rectangle Fill="Blue" Grid.Column="1" Grid.Row="0"/>

                <TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold">First Column</TextBlock>
                <TextBlock Grid.Column="1" Grid.Row="0" FontWeight="Bold">Second Column</TextBlock>
            </Grid>

        </StackPanel>
        
    </DockPanel>
Additional Information:
Attached Files: expected.png (3,379 bytes) 2019-09-09 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1105&type=bug
actual.png (3,603 bytes) 2019-09-09 14:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1106&type=bug
Screenshot at 07-41-02.png (869,286 bytes) 2020-07-14 05:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1279&type=bug
Notes
(0005957)
jsantos   
2019-09-09 20:49   
Thanks for the awesome report!
(0006439)
ai_enabled   
2020-06-15 10:18   
@jsantos, hello! I wonder if you can consider including this in 3.0.3?
(0006443)
sfernandez   
2020-06-18 13:12   
Ok, we will study this feature and see if we can include it in the next version.
(0006537)
ai_enabled   
2020-07-14 05:45   
I've implemented a hacky version of this feature with the attached property. It's a nightmare ha-ha! :-) I wish to see a proper support of this feature in NoesisGUI but now I know how much pain it is to do something like this. :-)

By the way, I've attached a screenshot to demonstrate where this feature is useful in our case. All the columns are properly aligned but in fact, this is a composition of several independent grids. Different weapons have different sets of stats that are defined in different XAML files with a ton of visibility binding and conditions...

Regards!
(0006538)
sfernandez   
2020-07-16 11:50   
We didn't have time to include it in 3.0.3 but it is finally finished for our next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1460 [NoesisGUI] C# SDK minor always 2019-05-04 19:43 2020-07-14 01:29
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version:  
Platform: Any
Summary: Line height support for TextBox
Description: Hi guys,
there is a known workaround to enable line height for TextBox. Alas, it doesn't work with NoesisGUI
https://social.msdn.microsoft.com/Forums/vstudio/en-US/563a8558-fe84-486d-8f40-9a5494884f25/controlling-lineheight-for-textboxes?forum=wpf

Please let me know if there is any other workaround or you could make it work in the future versions.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005662)
sfernandez   
2019-05-06 10:41   
I verified that LineHeight property is applied to the TextBox, but I see that the caret (and selection) is also affected by that property and that is not correct, we will fix it.
(0005663)
ai_enabled   
2019-05-06 17:17   
Hmm, I cannot make it work in 2.2.2... still the same line height.
I'm using this style:

<Style x:Key="ChatTextBoxStyle" TargetType="{x:Type TextBox}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Height" Value="Auto" />
        <Setter Property="Padding" Value="2,0,2,3" />
        <Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}" />
        <Setter Property="FontWeight" Value="Normal" />
        <Setter Property="FontSize" Value="12.5" />
        <Setter Property="TextBlock.LineHeight" Value="13" />
        <Setter Property="TextBlock.LineStackingStrategy" Value="BlockLineHeight" />
        <Setter Property="AcceptsReturn" Value="False" />
        <Setter Property="AcceptsTab" Value="True" />
        <Setter Property="TextWrapping" Value="Wrap" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Foreground" Value="{StaticResource ChatBrushFromCurrentPlayer}" />
        <Setter Property="Background" Value="{StaticResource ChatEntryBackground}" />
        <Setter Property="Margin" Value="0" />
        <Setter Property="SelectionBrush" Value="{StaticResource BrushColor7}" />
        <Setter Property="CaretBrush" Value="{StaticResource BrushColor7}" />
        <Setter Property="SelectionOpacity" Value="0.5" />
        <Setter Property="ContextMenu">
            <Setter.Value>
                <!-- No context menu -->
                <ContextMenu IsEnabled="False" />
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">
                    <StackPanel Orientation="Vertical"
                                Background="{TemplateBinding Background}">
                        <Control Style="{StaticResource ControlHorizontalSeparator}"
                                 Height="4"
                                 Margin="0"
                                 VerticalAlignment="Center" />
                        <Border BorderThickness="{TemplateBinding BorderThickness}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                Padding="{TemplateBinding Padding}">
                            <ScrollViewer Margin="0" x:Name="PART_ContentHost" />
                        </Border>
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
(0005665)
sfernandez   
2019-05-08 13:26   
I found that LineStackingStrategy property was not inherited, so that setter didn't work. That made setting a line height smaller than the default one didn't affect the effective height of the line. It worked for bigger LineHeight values like 40, though.

Anyway, I fixed the inheritance problem in LineStackingStrategy and line height will work fine in next release.
(0005666)
ai_enabled   
2019-05-08 15:20   
Awesome! Thank you, Sergio!

Regards!
(0005757)
ai_enabled   
2019-06-21 14:01   
Fixed in 2.2.3, thanks!
Please close this ticket.
(0006536)
ai_enabled   
2020-07-14 01:20   
Please close this ticket :-)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1738 [NoesisGUI] C# SDK minor always 2020-06-26 20:02 2020-07-13 13:58
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.4  
    Target Version: 3.0.4  
Platform: Any
Summary: Path Stroke rendering issue
Description: Hi guys,
please see the attached picture and the XamlToy code below.

Regards!
Tags:
Steps To Reproduce: XamlToy code:

<Grid
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Path
            Data="M 4.8403662,3.183192 V 2.2637157 C 4.8403662,1.0156578 3.8251687,0 2.5766505,0 1.3285926,0 0.3129349,1.0156578 0.3129349,2.2637157 V 3.183192 C 0.1343779,3.220468 0,3.3792365 0,3.568378 v 3.4459653 c 0,0.217214 0.1767161,0.39347 0.3939298,0.39347 h 4.3649813 c 0.2172136,0 0.3939298,-0.176717 0.3939298,-0.39347 V 3.568378 c 0,-0.1891415 -0.1343779,-0.3479099 -0.3129349,-0.385186 M 4.0525066,3.1749084 H 1.1003342 V 2.2637157 c 0,-0.8140909 0.6622255,-1.4758561 1.4758561,-1.4758561 0.8140909,0 1.4758561,0.6622254 1.4758561,1.4758561 z"
            Width="960"
            Height="960"
            Stretch="Uniform"
            Fill="#AABB2222"
            Stroke="#88000000"
            StrokeThickness="40" />
</Grid>
Additional Information:
Attached Files: Screenshot at 22-00-28.png (283,490 bytes) 2020-06-26 20:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1265&type=bug
path.png (34,935 bytes) 2020-07-13 13:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1278&type=bug
Notes
(0006465)
jsantos   
2020-06-26 20:05   
Thanks for the isolated xaml! :)
(0006534)
sfernandez   
2020-07-13 13:41   
It turns out that WPF (kaxaml) also renders that glitch in the path, it doesn't seem a bug in Noesis (see attached image).
(0006535)
ai_enabled   
2020-07-13 13:45   
Thank you, Sergio!
The issue is with the SVG, I see now.
Please close this ticket.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1753 [NoesisGUI] C++ SDK major random 2020-07-09 17:33 2020-07-13 13:25
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: XboxOne
Summary: Assert in GlyphCache::GetGlyph
Description: Hi guys, we're seeing a rare assert only on Xbox and fairly infrequent. It seems to be going down in GlyphCache::GetGlyph when inserting a new glyph into the hash set:

        return (Glyph*)&*mCache.Insert(MoveArg(glyph)).first;

I don't have a dump to go on, I only have logs / callstack. I'm in the process of adding some additional logging to try and trap this. So the assert ultimately comes from the hash map insert:

HashMapImpl<Bucket>::InsertIntoBucket


It's going down on the last assert:

    NS_ASSERT(!bucket->IsEmpty());


So, it has a valid bucket, it's tried to insert the entry, but it still thinks the bucket is empty. It looks like the GlyphCache uses a custom key info struct:



    struct GlyphKeyInfo
    {
        static bool IsEmpty(const Glyph& k) { return k.x == 0xffff; }
        static void MarkEmpty(Glyph& k) { k.x = 0xffff; }
    // ...
     }

So it thinks the bucket is empty if the "x" property of the Glyph element is 0xffff. So I went back to the function and there's a few things I noticed.


First, there's some macros in the CPP at the top:


#define MARK_GLYPH_EMPTY(g) ((g)->width = 0xffff)
#define IS_GLYPH_EMPTY(g) ((g)->width == 0xffff)

#define MARK_GLYPH_UNLOADED(g) ((g)->width = 0xffff - 1)
#define IS_GLYPH_UNLOADED(g) ((g)->width == 0xffff - 1)


These macros use the width property. Neither of these affect the x property at all. Then going back to the original function GetGlyph:


On line 497 it constructs a new glyph on the stack, at this point all properties are uninitialised. If it's a free type font, I don't see where the x / y properties of the glyph will be initialised, it looks like it only ever initialises the layers array in the glyph, would this just not randomly assert depending on the memory of the x / y properties which is undefined behaviour?

In the GlyphCache::RenderSDF, it looks like it will only ever initialise the x / y values of the glyph if there are some contours of the outline, otherwise it'll call MARK_GLYPH_EMPTY(..) which will initialise the width, but not the x parameter. Again, isn't this undefined behaviour?

This potential undefined behaviour certainly seems to line up with what we're seeing with fairly rare random asserts. Is the GlyphKeyInfo supposed to read from the width property instead of the x property?
Tags:
Steps To Reproduce: 1. Render text
2. Rarely, the game will assert when trying to build the glyph cache for the font
Additional Information:
Attached Files:
Notes
(0006528)
jsantos   
2020-07-09 18:11   
Hi Steve, thanks for reporting this. Another client already reported a similar thing and I am working on it. For now, I don't need more information or dumps because I think I understand what's happening.

Will provide a fix ASAP.
(0006529)
jsantos   
2020-07-09 18:12   
And, as always, thanks for the detailed report. There are many useful things there that will help me.
(0006530)
jsantos   
2020-07-10 12:18   
(Last edited: 2020-07-10 18:41)
Hi Steve, effectively there is a bug in the code, in some cases the x property is not properly initialized and we are using the special value 0xffff to mark empty buckets in the hashmap (unfortunately we are using the term empty here to mean two things, an empty bucket and a glyph without outlines, we should improve this to avoid confusion but for now I am not changing it).

Could you please try the following patch?

Index: GlyphCache.cpp
===================================================================
--- GlyphCache.cpp	(revision 9396)
+++ GlyphCache.cpp	(working copy)
@@ -32,10 +32,10 @@
 
 #define TILE_SIZE 512
 
-#define MARK_GLYPH_EMPTY(g) ((g)->width = 0xffff)
+#define MARK_GLYPH_EMPTY(g) (g)->x = 0; (g)->width = 0xffff
 #define IS_GLYPH_EMPTY(g) ((g)->width == 0xffff)
 
-#define MARK_GLYPH_UNLOADED(g) ((g)->width = 0xffff - 1)
+#define MARK_GLYPH_UNLOADED(g) (g)->x = 0; (g)->width = 0xffff - 1
 #define IS_GLYPH_UNLOADED(g) ((g)->width == 0xffff - 1)
 
 #ifdef NS_PROFILE




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1755 [NoesisGUI] C# SDK minor always 2020-07-10 12:42 2020-07-10 16:27
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Interactivity TargetedTriggerActions not executing sometimes
Description: The following xaml demonstrates the issue:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions">
  
  <Grid.Resources>
    <SolidColorBrush x:Key="greenBrush" Color="#FF0A9F26" />
    <SolidColorBrush x:Key="purpleBrush" Color="#FF8E0795"/>
    <SolidColorBrush x:Key="orangeBrush" Color="#FF913B00" />

    <ControlTemplate x:Key="temp" TargetType="ContentControl">
        <Canvas Width="200" Height="100">
            <i:Interaction.Triggers>
                <ei:DataTrigger Binding="{Binding Offset}" Value="1">
                    <ei:ChangePropertyAction TargetName="bd" PropertyName="Background" Value="{StaticResource purpleBrush}"/>
                </ei:DataTrigger>
                <ei:DataTrigger Binding="{Binding Offset}" Value="2">
                    <ei:ChangePropertyAction TargetName="bd" PropertyName="Background" Value="{StaticResource orangeBrush}"/>
                </ei:DataTrigger>
            </i:Interaction.Triggers>
            <Border Name="bd" Background="{StaticResource greenBrush}" Padding="20,10">
                <TextBlock Text="{Binding Color, FallbackValue=#FF0A9F26}" FontSize="32"/>
            </Border>
        </Canvas>
    </ControlTemplate>
    
    <GradientStop x:Key="ctx1" Offset="1" Color="#FF8E0795"/>
    <GradientStop x:Key="ctx2" Offset="2" Color="#FF913B00"/>
  </Grid.Resources>
  
  <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
    <ContentControl Template="{StaticResource temp}"/>
    <ContentControl Template="{StaticResource temp}" DataContext="{StaticResource ctx1}"/>
    <ContentControl Template="{StaticResource temp}" DataContext="{StaticResource ctx2}"/>
  </StackPanel>
  
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1752 [NoesisGUI] C++ SDK feature always 2020-07-09 14:08 2020-07-09 14:08
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.1  
Platform: Any
Summary: Can't assign property to abstract class 'Color'
Description: Specifying value types like Color as xaml nodes is not supported by Noesis xaml parser:
<Rectangle>
  <Rectangle.Fill>
    <SolidColorBrush>
      <SolidColorBrush.Color>
        <Color A="255" R="255" G="0" B="0"/>
      </SolidColorBrush.Color>
    </SolidColorBrush>
  </Rectangle.Fill>
</Rectangle>


This produces error: "Can't assign property to abstract class 'Color'"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1751 [NoesisGUI] C# SDK major always 2020-07-07 14:40 2020-07-09 13:54
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: TabControl selection issue
Description: Hi guys,

I have an odd bug with TabControl that took me over 2 hours to investigate.
It seems when I change the active tab by ANY way (e.g. tabControl.SelectedIndex, or SelectedItem, or through tabItem.IsSelected Binding), visually everything is changed as expected. However, the previously selected tab cannot be clicked. No effect until I manually click on any other tab to move the select, then I'm able to click on the previously selected tab. It seems there is something odd going on in the TabControl internal state. See the steps to reproduce.

Regards!
Tags:
Steps To Reproduce: 1. create tab control with two tabs
2. make that second tab is selected programmatically by some action
3. start application, select first tab. Perform action to select second tab.
4. try to select the first tab. Selection doesn't change!

I guess TabControl internal state assumes that the first tab is still selected.
A workaround is simple and 100% efficient—just reset the visual state of the tab control when its selected tab is changed:
this.tabControl.Visibility = Visibility.Collapsed;
this.tabControl.UpdateLayout();
this.tabControl.Visibility = Visibility.Visible;

Additional Information:
Attached Files:
Notes
(0006517)
sfernandez   
2020-07-08 18:09   
Maybe I'm missing something, but the tests I'm doing using bindings are working: https://www.noesisengine.com/xamltoy/e6d84aa593deb24eaf275bd77c38dc6b
Anything different from your scenario in that test?
(0006518)
ai_enabled   
2020-07-08 18:13   
(Last edited: 2020-07-08 18:16)
I'm not sure if it's possible to reproduce this bug only with XAML.
The issue involves programmatically (in C# codebehind) changing the selected tab (either via TabControl SelectedIndex or by TabControl SelectedItem, or by changing TabItem IsSelected property) as I've mentioned in the steps to reproduce.

(0006519)
ai_enabled   
2020-07-08 18:17   
I can also reproduce the issue with MVVM data binding but I was able to isolate it to just C# codebehind code that changes SelectedIndex of the tab control.
I've investigated whether it might be style/template-related but it seems to be not the case.
(0006520)
sfernandez   
2020-07-08 18:36   
Do the tabs need to be generated from data to reproduce the issue, or can they be TabItems defined in the xaml?
(0006522)
ai_enabled   
2020-07-08 19:53   
(Last edited: 2020-07-08 19:53)
The TabItems are defined in XAML.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1749 [NoesisGUI] Unity3D crash always 2020-07-07 10:58 2020-07-09 11:15
Reporter: jamieh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Crash in View.Update after upgrading to 3.0
Description: From forum post https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2039

Crashes happen in Unity Editor and also on Android standalone:

2020/07/07 00:08:32.285 24130 24151 Error CRASH *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020/07/07 00:08:32.285 24130 24151 Error CRASH Version '2019.3.15f1 (59ff3e03856d)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a'
2020/07/07 00:08:32.285 24130 24151 Error CRASH Build fingerprint: 'samsung/gta3xlwifixx/gta3xlwifi:9/PPR1.180610.011/T510XXS3ATB4:user/release-keys'
2020/07/07 00:08:32.285 24130 24151 Error CRASH Revision: '4'
2020/07/07 00:08:32.285 24130 24151 Error CRASH ABI: 'arm'
2020/07/07 00:08:32.285 24130 24151 Error CRASH Timestamp: 2020-07-07 00:08:32-0500
2020/07/07 00:08:32.285 24130 24151 Error CRASH pid: 24130, tid: 24151, name: UnityMain >>> com.DesignDepot.DynastyClient <<<
2020/07/07 00:08:32.285 24130 24151 Error CRASH uid: 10158
2020/07/07 00:08:32.285 24130 24151 Error CRASH signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x28
2020/07/07 00:08:32.285 24130 24151 Error CRASH Cause: null pointer dereference
2020/07/07 00:08:32.285 24130 24151 Error CRASH r0 bed8c780 r1 00000000 r2 00000000 r3 00000008
2020/07/07 00:08:32.285 24130 24151 Error CRASH r4 c4abd680 r5 bed8c720 r6 cf86e534 r7 cf86e560
2020/07/07 00:08:32.285 24130 24151 Error CRASH r8 00000000 r9 00000000 r10 c4abd680 r11 c1c97c40
2020/07/07 00:08:32.285 24130 24151 Error CRASH ip 00000007 sp cf86e530 lr c347ea7b pc c347ea7e
2020/07/07 00:08:32.285 24130 24151 Error CRASH
2020/07/07 00:08:32.285 24130 24151 Error CRASH backtrace:
2020/07/07 00:08:32.285 24130 24151 Error CRASH #00 pc 001d6a7e /data/app/com.DesignDepot.DynastyClient-B5R_FCxbfqD_oQWxROoGAA==/lib/arm/libNoesis.so
2020/07/07 00:08:32.285 24130 24151 Error CRASH
2020/07/07 00:08:32.285 24130 24151 Error CRASH managed backtrace:
2020/07/07 00:08:32.285 24130 24151 Error CRASH #00 (wrapper managed-to-native) Noesis.View:Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)
2020/07/07 00:08:32.286 24130 24151 Error CRASH #01 Noesis.View:Update (double) <0x57>
2020/07/07 00:08:32.286 24130 24151 Error CRASH #02 NoesisView:LateUpdate () <0xa7>
2020/07/07 00:08:32.286 24130 24151 Error CRASH #03 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
2020/07/07 00:08:33.006 24130 24151 Error CRASH Tombstone written to: /storage/emulated/0/Android/data/com.DesignDepot.DynastyClient/files/tombstone_01
0001/01/01 00:00:00.000 -1 -1 Info --------- beginning of crash
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime FATAL EXCEPTION: UnityMain
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Process: com.DesignDepot.DynastyClient, PID: 24130
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Version '2019.3.15f1 (59ff3e03856d)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a'
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Build fingerprint: 'samsung/gta3xlwifixx/gta3xlwifi:9/PPR1.180610.011/T510XXS3ATB4:user/release-keys'
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Revision: '4'
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime ABI: 'arm'
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Timestamp: 2020-07-07 00:08:32-0500
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime pid: 24130, tid: 24151, name: UnityMain >>> com.DesignDepot.DynastyClient <<<
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime uid: 10158
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x28
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime Cause: null pointer dereference
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime r0 bed8c780 r1 00000000 r2 00000000 r3 00000008
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime r4 c4abd680 r5 bed8c720 r6 cf86e534 r7 cf86e560
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime r8 00000000 r9 00000000 r10 c4abd680 r11 c1c97c40
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime ip 00000007 sp cf86e530 lr c347ea7b pc c347ea7e
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime backtrace:
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime #00 pc 001d6a7e /data/app/com.DesignDepot.DynastyClient-B5R_FCxbfqD_oQWxROoGAA==/lib/arm/libNoesis.so
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime managed backtrace:
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime #00 (wrapper managed-to-native) Noesis.View:Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime #01 Noesis.View:Update (double) <0x57>
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime #02 NoesisView:LateUpdate () <0xa7>
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime #03 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime at libNoesis.0x1d6a7e(Native Method)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime at Noesis.View.Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)(Native Method)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime at Noesis.View.Update (double)(0x57:87)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime at NoesisView.LateUpdate ()(0xa7:167)
2020/07/07 00:08:33.008 24130 24151 Error AndroidRuntime at System.Object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)(Native Method)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006506)
sfernandez   
2020-07-07 11:09   
When Unity crashes it creates a crash report and shows a dialog to send it to Unity, there you can find where crash data is stored in your HD, usually at C:\Users\<username>\AppData\Local\Temp\Unity\Editor\Crashes.

If that fails you can try to attach a Visual Studio instance to debug Unity (Debug > Attach to Process...). Then you can play the game in the editor and when it crashes it should stop in Visual Studio, allowing you to save a minidump (Debug > Save Dump As...).

Anyway, I will try to get the crash information from the android callstack, which version were you using, 3.0.2?
(0006512)
jamieh   
2020-07-07 16:46   
(Last edited: 2020-07-07 16:46)
When I have VS attached, I don't get a break on the crash.

I've tried to locate the Unity crash logs, but while I can find the unity stuff in both AppData/Local and AppData/LocalLow, I'm not seeing a crash log.

I am using Noesis 3.0.2 and Unity 2019.3.15f1

The crash seems to happening in a consistent place (at the end of a "turn") so I may be able to do additional work to isolate exactly what is causing the issue. A lot of updates happen there, but I can try to isolate.

(0006513)
sfernandez   
2020-07-07 17:01   
Ok, thanks for your collaboration.

Just want to remark, Unity crashes are placed in AppData/Local/TEMP/Unity/Editor/Crashes, not in AppData/Local/Unity.
And in VS you probably need to change Exception Settings under Debug > Windows > Exceptions Settings. You should toggle Win32 Exceptions, so VS break for all exceptions.
(0006514)
jamieh   
2020-07-08 01:39   
I have not been able to find crash logs, but I did find a .dmp file if that is useful at all.

https://1drv.ms/u/s!AjEAlWO9Yl9unMIrXdmrkMFJKixYRw?e=SWiUQY
(0006515)
jamieh   
2020-07-08 02:05   
As far as I can tell, it is crashing right after updating a class that is being tracked via PropertyChanged and triggers a bunch of buttons to enable/disable and change text. Seems pretty harmless.

I don't know that that is the cause of the crash, but that seems to be the last thing that happens before it.
(0006516)
sfernandez   
2020-07-08 11:23   
Thanks for the dump, I think I have an idea on what could be happening.
I generated a new library with the possible fix, could you please try it and let me know if it worked?

https://drive.google.com/file/d/1wfiuIfIQr2P6_EW4IhzCW4qSYtKtXW3A
(0006521)
jamieh   
2020-07-08 18:47   
I'm only seeing a pdb file in the zip. Was that intended?
(0006523)
sfernandez   
2020-07-08 21:14   
Sorry, my bad, I uploaded the incorrect file :)
Here your are: https://drive.google.com/file/d/1zusZQX4jFdJP_iGgtuV9KBZykdBTvdzh
(0006524)
jamieh   
2020-07-08 22:26   
From just very quick testing, I'm not getting the crash in the editor, at least not nearly as fast as I was before. I couldn't go through more than about 1.5 innings before without hitting it, and I just went through 4 without a problem.

I'm assuming your DLL will only fix Windows/Editor and the fix would need to be propagated to Android etc.? I tried firing up the Android build and I was still seeing the crash there.
(0006525)
jamieh   
2020-07-09 02:54   
(Last edited: 2020-07-09 05:58)
Yeah, I've played through an entire game now without a crash. Looks like that did fix the issue.

(0006526)
sfernandez   
2020-07-09 11:15   
The library I shared before was only valid for windows, android would require a different one.
The bug is now fixed for next release including all our supported platforms.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1132 [NoesisGUI] C# SDK minor always 2017-08-15 15:15 2020-07-07 16:39
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 10 x64  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version:  
Platform: Any
Summary: Selector.SelectedValue and Selector.SelectedValuePath
Description: Hi guys,

I cannot get working a combobox with custom selected value path.
I found that you wrote in 2014 http://www.noesisengine.com/forums/viewtopic.php?f=3&t=300#p1473 that these properties are not implemented. Is that still so or I'm missing something?

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004780)
sfernandez   
2017-08-21 14:31   
What is the problem you are seeing?
I tried the following sample and it seems to work as expected: https://stackoverflow.com/questions/4902039/difference-between-selecteditem-selectedvalue-and-selectedvaluepath
(0004801)
ai_enabled   
2017-09-01 08:29   
Hi Sergio,
the problem is that the SelectedValue binding works only one way to source and not two way (I explicitly set it to be TwoWay).
I.e. it cannot convert SelectedValue back to SelectedItem. It's simply not implemented or doesn't work.
But on selecting item in combobox it indeed updates SelectedValue property, so the problem is only with the way SelectedValue->SelectedItem.

For example, changing the property in my ViewModel (to which Combobox.SelectedValue is bound) doesn't change the selected item in control (and I'm sure I'm calling NotifyPropertyChanged for this property).
Also, right after loading the ComboBox control displays nothing (i.e. no item is selected) when it should take the SelectedValue via databinding and select according item from the ItemsSource.

Please let me know if you need a sample for that.
(0004802)
sfernandez   
2017-09-01 12:52   
Ok, I understand now the problem.
There is no need for the sample, I was able to reproduce it here, thanks.
(0004896)
ai_enabled   
2017-11-20 12:54   
Hi guys,
any updates regarding this issue?
(0004897)
ai_enabled   
2017-11-20 13:15   
Ok, don't worry :-). I was able to workaround this by binding to SelectedItem and using a custom converter. 100% hack but works perfectly!
Regards!
(0004902)
sfernandez   
2017-11-21 10:41   
Sorry, we still didn't have this issue fixed. Hopefully you have a workaround.

Anyway, we will try to solve it for the next release.
(0005127)
ai_enabled   
2018-03-14 09:21   
Hi,
I hope we will see the fix planned for the next patch release...
It's a really painful bug as every time we need to use a workaround.
(0005133)
sfernandez   
2018-03-14 11:35   
(Last edited: 2018-03-14 11:35)
I increased priority to high and will fix it for the next minor release.

(0006509)
ai_enabled   
2020-07-07 14:09   
Hi guys,
I wonder if the issue is already fixed or maybe it's trivial to fix now.
Thanks!
(0006511)
sfernandez   
2020-07-07 16:39   
We fixed this for 3.0.2 version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1708 [NoesisGUI] Unity3D minor always 2020-05-29 18:39 2020-07-07 16:38
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: ComboBox selection not updating when model changes
Description: As described in forums post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1992

When using SelectedValue and SelectedValuePath, selection is not correctly updated.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1517 [NoesisGUI] C# SDK major random 2019-07-11 11:53 2020-07-07 16:36
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Random issue with typing and modifier keys
Description: Hi guys,

probably this is my MonoGame wrapper's code issue only, however, I'm curious if you have similar reports from other devs.

The issue is that sometimes modifier key (reproducible for Ctrl, not sure about the other keys) is stuck for NoesisGUI. The subsequent keypresses/chars are not typed into the textbox. And presses of keys A and V results in Ctrl+A and Ctrl+V which is obviously not great :-)
The only workaround is to press the Ctrl key few times, the issue then disappears.

Oh, and this issue is very-very old.

If you have any ideas or suggestions how could I debug the issue — please let me know.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005839)
sfernandez   
2019-07-11 12:36   
Hi,

Noesis only responds to the input provided by the integration layer, it doesn't interact with the operating system, so all the key downs and ups should be provided by the MonoGame wrapper.
Could it be a problem that appears when you deactivate the window and come back? Or does it happen without changing the foreground window?
Is there a way to easily reproduce it in your game that I can try?
(0005882)
ai_enabled   
2019-07-19 19:01   
Alas, there is no easy way to reproduce it. I'm looking to find a way and yes, probably you're right as this might be affected by the integration layer. Though I've checked it several times. I will add extra logging to find out whether the modified key was actually sent as released to NoesisGUI or not, then I will know for sure whether it's wrapper or NoesisGUI issue.

I believe it's related to the usage of Alt+Tab.

Turns out the issue 0001503 ("Click on the currently selected listbox item will deselect it") is related to it. My Ctrl key for NoesisGUI was assumed to be held so every time I clicked on an entry in a list box it was deselected as NoesisGUI processed it as Ctrl+Click.

Regards!
(0006323)
ai_enabled   
2020-05-06 22:45   
Hi guys,

the issue is bothering us and our players a lot.
It's Ctrl key getting stuck sometimes. So pressing A key will perform Ctrl+A (select all). Pressing any other key after that will replace the selected text which is really frustrating.

It's absolutely random. But happens very often to some players who are using the chat a lot. Pressing the Ctrl key several times usually resolves it.

I've added logging to verify that the Ctrl key is definitely released when that issue happens—and it looks like the "key up" was sent to NoesisGUI properly by our wrapper.
So I believe there is something wrong inside NoesisGUI...
Do you have similar issues reported by other developers? Or other developers barely using in-game chat so this issue just has very little chance to occur there?

Regards!
(0006331)
sfernandez   
2020-05-08 10:55   
Reviewing our code I can only identify two scenarios where control key could be kept as pressed.

- If the View receives a KeyDown for the LeftCtrl key, and a KeyUp for the RightCtrl key. As they are different phisycal keys, but both report Ctrl modifier as down, it could lead to the situation explained.
- If KeyDown was sent to the View for LeftCtrl (or RightCtrl), then Alt+Tab or click in other application without calling Deactivate on the View, and come back to the game after releasing the Ctrl key.

Is it possible that any of that is happening in your situation?
Is this something I can try to reproduce with the latest game build you sent? Just typing in the chat box and pressing Ctrl sometimes?

If you need it I can generate a debug library with some logs to determine when our internal key state gets out of sync.
(0006341)
ai_enabled   
2020-05-09 01:56   
(Last edited: 2020-05-09 01:58)
Hi Sergio,
thank you for the message. I was mostly interested if you have any other developers complaining about this issue. It seems we're alone with it! :-) Didn't want to waste your time, sorry!

I've prepared a special client build with extra logging and made it public in Steam (`patch-testing` branch). Selected players started using it. I've instructed them to press Alt+F4 as soon as they notice the Ctrl key getting stuck in any textbox (usually, chat, but also the game console). The log will contain info about the KeyDown/KeyUp events sent to NoesisGUI as well as the cases when the input is ignored (there are several cases related to IME processing; I've also noticed there was a workaround for old bug #1270 that is long-ago fixed so the workaround is no longer necessary!). I will let you know when I get more data from players. I hope it's an issue in my wrapper code after all!

Anyway:
1) It's unlikely that players are using the Right Ctrl at all. I never use it and the issue still happened to me.
2) If the game window is not focused, the game recognizes this as "empty input" so if there was a key held before Alt-Tab, it's released immediately. This is a simple and effective solution. When the game window focused again the game reads the current input state and provides it to NoesisGUI key down events (if there are any keys pressed).
To get current input state we're using this PInvoke call (through MonoGame Keyboard API):
    [DllImport("user32.dll")]
    private static extern bool GetKeyboardState(byte[] lpKeyState);

Regards!

(0006342)
sfernandez   
2020-05-10 12:43   
Sorry to say we don't have any other report about this issue, but it could still be a bug in our side. Let's see if we can get more information and find the source of the problem.

I downloaded CryoFall demo from steam and switched to the patch-testing branch, but it seems no Data or Log folder is created. Maybe this only works for the full version of the game?
(0006343)
ai_enabled   
2020-05-10 13:03   
The Steam version is using Documents/AtomicTorchStudio or %LocalAppDats%/AtomicTorchStudio folder for thr dynamic data.

I don't get this issue reports for a day. It might have been that old workaround that caused wrapper to not send KeyUp sometimes.
(0006346)
ai_enabled   
2020-05-11 20:10   
Hi Sergio,
today we're pushing the new game build with an updated wrapper code (that doesn't contain the workaround for #1270 that stayed for too long and likely caused this key stuck issue before).
If the issue is not reproducible by anyone after that we can consider it fixed.

Regards!
(0006508)
ai_enabled   
2020-07-07 14:08   
The issue is definitely fixed.
It was a wrapper code issue after all.
It was really important to carefully record all the key down events to ensure the key up events will be submitted to NoesisGUI for these keys no matter what :)

Regards!
(0006510)
sfernandez   
2020-07-07 16:36   
Thanks for the update, we're closing this then.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1745 [NoesisGUI] C++ SDK minor always 2020-07-02 10:17 2020-07-06 13:43
Reporter: Ext3h Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Windows
Summary: VirtualizingPanel.VirtualizationMode=Recycling breaks TextElement.FontFamily inheritence
Description: Got the hirarchy shown in attached tree.png, defined by the following declaration


    <Style x:Key="VirtualList" TargetType="{x:Type ItemsControl}" BasedOn="{StaticResource {x:Type ItemsControl}}">
        <Setter Property="OverridesDefaultStyle" Value="False"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <Border
                        BorderThickness="{TemplateBinding Border.BorderThickness}"
                        Padding="{TemplateBinding Control.Padding}"
                        BorderBrush="{TemplateBinding Border.BorderBrush}"
                        Background="{TemplateBinding Panel.Background}">
                        <ScrollViewer x:Name="PART_Scroll"
                            Padding="{TemplateBinding Control.Padding}"
                            Focusable="False">
                            <ItemsPresenter />
                        </ScrollViewer>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
        <Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/>
        <!-- Recycling would be better, but Noesis appears to have a data race in the bindings -->
        <Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/>
        <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"/>
    </Style>

    <DataTemplate x:Key="GnomeScheduleButtonTemplate">
        <Button x:Name="Sched_Button"
            Content="{Binding Activity}"
            Style="{StaticResource GnomeScheduleButtonStyle}"
            Command="{Binding CmdSetHour}" />
    </DataTemplate>
        
    <DataTemplate x:Key="PopGnomeSchedRowTemplate">
        <ItemsControl ItemsSource="{Binding Schedule}" ItemTemplate="{StaticResource GnomeScheduleButtonTemplate}" Height="35">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
    </DataTemplate>

         <ItemsControl x:Name="SVActivities"
             ItemsSource="{Binding Schedules}" ItemTemplate="{StaticResource PopGnomeSchedRowTemplate}"
             Grid.Row="1" Grid.Column="1" Style="{StaticResource VirtualList}"
             ScrollViewer.VerticalScrollBarVisibility="Auto">
         </ItemsControl>

The issue occurs on the highlighted element. After the element has been *recycled*, the inherited TextElement.FontFamily for the inner (not virtualized) ContentPresenter node becomes empty.
When this happens, it impacts all children of the inner ItemsControl. The inner ItemsControl itself still has a sensible value for FontFamily (also inherited) in that state, according to the inspector, but inheritence from it is broken.

Setting and clearing a local value for TextElement.FontFamily on the broken ContentPresenter node restores the correctly inherited values, both according to inspector and visually confirmed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: tree.png (119,522 bytes) 2020-07-02 10:17
https://www.noesisengine.com/bugs/file_download.php?file_id=1273&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1739 [NoesisGUI] C++ SDK major always 2020-06-29 12:50 2020-07-03 19:12
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Tooltip's ShowDuration doesn't work
Description: From https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2028

Hi,

The ShowDuration property of ToolTip.Service doesn't seem to work.
Even if I set it to a value like below, the tooltip never disappears as long as I keep hovering the button.

<Button Content="AAA"
            ToolTip="BBB"
            ToolTipService.InitialShowDelay="1000"
            ToolTipService.ShowDuration="1000"/>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006499)
sfernandez   
2020-07-03 19:12   
I merged the fix into 2.2. branch so you can use it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1746 [NoesisGUI] C# SDK minor always 2020-07-03 13:58 2020-07-03 14:09
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: DragDrop.DoDragDrop incorrectly reporting effects
Description: From forum thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2030

When Drop occurs outside the window it is reporting the original allowedEffects instead of None.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1743 [NoesisGUI] C++ SDK crash always 2020-07-01 17:14 2020-07-01 18:07
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Crash when playing visual state animations
Description: There is a crash inside UpdateView that we had. It happens if we operate on NoesisGUI quickly. In this case, switching tabs quickly.

Callstack:

>	Noesis.dll!Noesis::Ptr<Noesis::DependencyObject>::Reset(Noesis::DependencyObject * ptr) Line 170	C++
     Noesis.dll!Noesis::TimeManager::AddFinishedClocks(Noesis::Clock * clock, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 591	C++
     Noesis.dll!Noesis::TimeManager::AddFinishedClocks(Noesis::Clock * clock, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 600	C++
     Noesis.dll!Noesis::TimeManager::EvaluateMasterClock(Noesis::Clock * clock, double time, double elapsedTime, Noesis::Vector<Noesis::Ptr<Noesis::Clock>,128> & finishedClocks, Noesis::Vector<Noesis::Ptr<Noesis::DependencyObject>,128> & aliveTargets) Line 483	C++
     Noesis.dll!Noesis::TimeManager::Tick(double time) Line 363	C++
     Noesis.dll!Noesis::View::UpdateAnimation(double timeInSeconds) Line 725	C++
     Noesis.dll!Noesis::View::InternalUpdate(double timeInSeconds) Line 715	C++
     Noesis.dll!Noesis::View::Update(double timeInSeconds) Line 653	C++
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Grid>
     <Grid.Resources>
       <!-- ToggleButton Style -->
       <Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}" >
         <Setter Property="Template">
           <Setter.Value>
             <ControlTemplate TargetType="{x:Type ToggleButton}">
               <Grid>
                 <VisualStateManager.VisualStateGroups>
                   <VisualStateGroup x:Name="CommonStates">
                     <VisualStateGroup.Transitions>
                       <VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver"/>
                       <VisualTransition From="MouseOver" GeneratedDuration="0:0:0.5"/>
                     </VisualStateGroup.Transitions>
                     <VisualState x:Name="Normal"/>
                     <VisualState x:Name="MouseOver">
                       <Storyboard>
                         <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(Brush.Opacity)" Storyboard.TargetName="OverBorder">
                           <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
                         </DoubleAnimationUsingKeyFrames>
                         <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="ContentHost">
                           <EasingColorKeyFrame KeyTime="0" Value="White"/>
                         </ColorAnimationUsingKeyFrames>
                       </Storyboard>
                     </VisualState>
                     <VisualState x:Name="Disabled"/>
                   </VisualStateGroup>
                 </VisualStateManager.VisualStateGroups>
                 <Border x:Name="OverBorder">
                   <Border.Background>
                     <SolidColorBrush Color="Black" Opacity="0.5"/>
                   </Border.Background>
                 </Border>
                 <Border>
                   <ContentPresenter x:Name="ContentHost"/>
                 </Border>
               </Grid>
               <ControlTemplate.Triggers>
                 <Trigger Property="IsChecked" Value="True">
                   <Setter Property="Foreground" Value="Red"/>
                 </Trigger>
               </ControlTemplate.Triggers>
             </ControlTemplate>
           </Setter.Value>
         </Setter>
       </Style>
     </Grid.Resources>
 
     <ToggleButton Style="{StaticResource ToggleButtonStyle}">111</ToggleButton>
 
   </Grid>
</Grid>
Additional Information:
Attached Files:
Notes
(0006485)
sfernandez   
2020-07-01 18:07   
I will bring this fix to 2.2 branch so you can use it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1735 [NoesisGUI] C# SDK minor always 2020-06-24 03:55 2020-07-01 12:18
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Multibinding issues
Description: Hi guys,

two issues:
1. the Converter property defined for Binding cannot locate the converter with a static reference.
2. Multibinding Converter doesn't work

For issue 1 the error is: "StaticResource 'PositiveNumberToBooleanConverter' not found."
It should not be a problem as it's actually defined. I've tried to define it closer but still the same issue. (Also, apparently no issue with Converter property for MultiBinding)

For issue 2 the error is: "Can't set 'null' on property 'Control.Visibility' of type 'Visibility'."

Regards!
Tags:
Steps To Reproduce: Here is the code:
<Control>
    <Control.Visibility>
        <MultiBinding Converter="{StaticResource BoolToVisibilityConverter}">
            <Binding Path="EffectsToAdd.Length" Converter="{StaticResource PositiveNumberToBooleanConverter}" />
            <Binding Path="EffectsToRemove.Length" Converter="{StaticResource PositiveNumberToBooleanConverter}" />
        </MultiBinding>
    </Control.Visibility>
</Control>

I've also tried a simpler code (HasEffectsToAdd and HasEffectsToRemove are both boolean properties from the view model):
<Control>
    <Control.Visibility>
        <MultiBinding Converter="{StaticResource BoolToVisibilityConverter}">
            <Binding Path="HasEffectsToAdd" />
            <Binding Path="HasEffectsToRemove" />
        </MultiBinding>
    </Control.Visibility>
</Control>

but have exactly the same issue with Multibinding ("Can't set 'null' on property 'Control.Visibility' of type 'Visibility'.") — I've checked and BoolToVisibilityConverter was not even called.
Additional Information:
Attached Files:
Notes
(0006479)
sfernandez   
2020-06-30 18:46   
I was able to reproduce the problem with StaticResource for inner Bindings, we'll fix it for the next release.

About the other test that uses simple Bindings, how are you defining the BoolToVisibilityConverter?
Because a MultiBinding requires an IMultiValueConverter, and default BoolToVisibilityConverter just implements IValueConverter, you'll need another converter.

I verified that MultiBinding with a IMultiValueConverter works as expected in C#/Unity.
(0006480)
ai_enabled   
2020-06-30 18:55   
Thanks for fixing this!

Indeed, I was not using a IMultiValueConverter. Surprisingly, I was not even aware this is required :-) WPF is odd, probably they should have named the property for MultiBinding as MultiConverter instead of Converter...

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1741 [NoesisGUI] C++ SDK crash always 2020-06-29 19:24 2020-06-30 12:47
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Crash reloading a xaml with duplicate x:Name elements
Description: If inspector is connected to an application and a xaml is modified incorrectly including duplicated x:Name elements, then application crashes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1740 [NoesisGUI] C++ SDK crash always 2020-06-29 19:18 2020-06-29 19:19
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Crash after dragging ListView headers
Description: When header drag finishes a crash occurs.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1737 [NoesisGUI] Unity3D crash always 2020-06-25 19:03 2020-06-29 14:04
Reporter: Faerdan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Windows
Summary: Unity crash when stopping and playing scene
Description: I've just updated from 2.2.6 to 3.0.2.

After stopping the scene and then clicking play the editor crashes with the following error: Noesis.dll caused an Access Violation (0xc0000005) in module Noesis.dll at 0033:bb1e5030.

I've attached the crash info.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2020-06-25_165254702.zip (519,007 bytes) 2020-06-25 19:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1263&type=bug
HeroSelection.zip (82,423 bytes) 2020-06-26 17:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1264&type=bug
Notes
(0006460)
sfernandez   
2020-06-26 17:16   
Is this crash something you can reproduce in a deterministic way?
From the callstack I see it happens when destroying a page containing a ListBox with tooltips, I don't know if that points to any known screen.
It would help to have a way to reproduce it and narrow the xaml causing it.
(0006461)
sfernandez   
2020-06-26 17:35   
I may have an idea on what could be happening, I generated a new library with a possible fix, could you please give it a try?

https://drive.google.com/file/d/1S7Wo3daVvzo_7c0gFOKJTzbPSBFNQpoK
(0006462)
Faerdan   
2020-06-26 17:38   
I'll try the fix now, thanks.

I've attached the XAML files for the screen which leads to the problem.
(0006463)
sfernandez   
2020-06-26 17:45   
Thanks for the xamls.

I think I was too fast on providing the fix, it won't solve it. But I'm pretty sure where the problem comes from.
I need a bit more time to figure out the correct way to fix it.
(0006464)
Faerdan   
2020-06-26 17:56   
You are correct, the fix didn't work.

I appreciate your attention, thanks! :)
(0006466)
sfernandez   
2020-06-29 11:49   
Finally I was able to reproduce the issue, could you please try the following fix in your game. In NoesisGUI/Plugins/API/Proxies/PropertyMetadataExtend.cs line 184 instead of just returning IntPtr.Zero:

BaseComponent.AddReference(baseValue); // released by native bindings
return baseValue;


This should fix it.
(0006468)
Faerdan   
2020-06-29 13:51   
This fixed the issue, thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1726 [NoesisGUI] C++ SDK minor N/A 2020-06-17 01:24 2020-06-25 11:25
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Child elements clipped by stencil buffer when render transforms take a child out the bounds of the parent panel
Description: Hi guys, apologies for the long summary. I'm not sure that this is a bug, but it's a odd behaviour which acts differently between Blend and Noesis C++ API. I tried to report this as a forum post but it won't let me upload a ZIP file with a RenderDoc capture inside.

I'm trying to debug an issue in our game. I've tried to reproduce the issue outside of our game and I've been unable to repro it in the XAML Toy / XAML Player. I've attached my attempts at trying to repro it so you get an idea what I'm trying to do.

Essentially I have an ItemsControl containing some number of items representing a grid of menu items. These menu items have a select / deselect storyboard. The select storyboard changes the render scale of the ContentControl to 5% larger than the normal value. These items normally butt up right to the edge of the panel container, which is just an ordinary grid. In our game the stencil buffer causes the elements to be clipped at the edge of the grid.

So I have had a look in RenderDoc, there are 2 draw calls at fault. The first call just draws a quad for the entire grid. It doesn't actually write anything anything in the pixel shader, but it writes to the stencil buffer with Pass Op being "Inc Wrap". The next draw call batch actually draws the elements on the grid (the buttons) with stencil Pass Op being "Keep". This is the test which fails because the stencil buffer is limited to the size of the grid container, and the individual children elements expand past the grid's bounds. I've attached an image of this stencil failure to give you a better idea. In the image you can see that the stencil buffer test pass where it shows in green, and fails where it is in red. The red area causes the texture to appear clipped at a harsh border. The stencil buffer is sized to the size of the grid which is the item panel template for the itemscontrol. The grid is *not* set to ClipToBounds. This all works fine in Blend. it scales outside the volume of the panel without any issues. My attempt at reproducing this in XamlPlayer also does not hit any issues with doing this, so I know it's not an issue with my XAML setup.

I've also taken a RenderDoc capture of my repro attempt in XamlPlayer. I'm attaching the RenderDoc output for this in the Zip as well. The major difference is that there is no first draw call which writes to the stencil buffer. The first draw call simply draws the ContentControl elements.

So my question is what causes batch state to be requested with a stencil state? Why is it that in our game it renders the grid item panel to the stencil buffer, but in XamlToy it doesn't need to do this? I was able to narrow it down to simplifying the DataTemplate of the individual items. My 5 buttons use 3 different data templates depending on the content on the buttons. If I make the DataTemplate use a single empty grid, it was fine. I added a text block to one of the data templates it was still fine. I added a text block to 2 DataTemplates and then the issue started happening. It basically seems really random. It seems that if I make the DataTemplates slightly complicated it'll require that the root ItemPanelTemplate write the bounds to the stencil buffer. What makes the API think it needs to write the batch using a stencil state. Our render device uses this property in RequestState:

if (batch.renderState.f.stencilMode == ....)

So just to clarify, what causes that property to be anything other than disabled for the outer grid?

My second question would be to see if there is any way I can override this or have it so the first call which renders the initial quad to the stencil buffer also take into account the child bounds so the stencil test won't fail when the children are drawn? So I'm guessing the vertices it uses for the bounds of the stencil bounds for the initial batch call uses the layout size for the root element. However, render transforms may cause child elements to clip outside the bounds of the parent element. Is there any way to change it so the bounds take the union of all render volumes to ensure that child elements are not clipped to the bounds of the parent layout volume? I know this is the correct behaviour if ClipToBounds is on, but I've double checked that the property is not set on any of the parent elements.

I hope that this all makes sense. Sorry for the wall of text.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: stencil_buffer_clipping.zip (437,759 bytes) 2020-06-17 01:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1254&type=bug
Notes
(0006442)
steveh   
2020-06-17 01:24   
Oops, forgot to attach zip file.
(0006455)
sfernandez   
2020-06-25 11:25   
UI elements get clipped (implemented using stencil) for various reasons:
- UIElement.Clip property, uses the specified geometry to clip contents of the element (I don't think you are using this).
- UIElement.ClipToBounds property, when enabled element content is clipped to element's bound rect (I don't think you are using this either).
- If any of Width/Height or MaxWidth/Height properties is set to a smaller than the desired size for the element it also clips element content to its bound rect.
- If element's final render size is bigger than the available size provided by its container then it also enables clipping to the available size rect. Margins and LayoutTransform affect the final render size and are taken into account when comparing against the available size.

All that logic is evaluated in FrameworkElement::GetLayoutClip() if you want to verify which one is being applied in your case. My guess is that the last one is what happens in your game. You can try to specify a smaller fixed width/heigh for that grid to see if clipping disappears. If you can share the xaml where that Grid is placed I can help identify what could be happening.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1732 [NoesisGUI] C++ SDK minor always 2020-06-23 11:45 2020-06-24 11:42
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: TextBox with IsFocusEngagementEnabled="False" does not work properly
Description: Disabling IsFocusEngagementEnabled in a TextBox makes it unusable.
Caret is not correctly hidden when it loses focus, and keyboard remains captured and doesn't work for other controls.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1733 [NoesisGUI] Unreal minor always 2020-06-23 19:37 2020-06-23 19:49
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Crash when clicking on a TextBox without a default font
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2018

When no fallback font is specified text is not rendered, but it can also lead to a crash if user click inside a TextBox with text.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1727 [NoesisGUI] C++ SDK minor have not tried 2020-06-18 11:51 2020-06-22 17:50
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Missing .sln files for Blend projects
Description: Blend projects includes in each sample in the Data folder should have both project and solution files. Right now (with the exception of a few samples like Gallery) the solution file is not included.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1731 [NoesisGUI] C++ SDK minor always 2020-06-22 17:24 2020-06-22 17:49
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: SkewTransform does not look the same as in WPF
Description: Applying a SkewTransform to a Rectangle does not render the same in Noesis and Blend.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1729 [NoesisGUI] C# SDK major always 2020-06-19 21:29 2020-06-22 11:02
Reporter: ck_russ Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Cannot set a property inside of a converter using a resource
Description: This issue was reported on the forums here: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2017 and includes more complete code samples. When a converter has properties, these properties are unable to be set to a resource. Noesis reports the resource is not found. For a minimal example:

<SolidColorBrush x:Key="LocalBrush" Color="Green"/>
<local:SomeConverterWithABrushProperty x:Key="SomeName" SomeBrushProperty="{StaticResource LocalBrush}"/>

This will fail with the error: StaticResource 'LocalBrush' not found.
Tags: C#, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1730 [NoesisGUI] Unity3D minor always 2020-06-21 19:26 2020-06-21 19:26
Reporter: asusralis Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.0.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: "Can't Freeze BeginStoryboard.Storyboard" when using an attached property.
Description: Forum post here: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2011&p=11264#p11264

Tags:
Steps To Reproduce: Use attached property and run game. No errors in Blend.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1301 [NoesisGUI] C# SDK feature N/A 2018-05-17 12:24 2020-06-19 16:04
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 10 x64  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Cache for GUI.LoadComponent(object, string)
Description: Hi guys,

Getting XAML code every time a control of the specific type is loaded and passing the full string to C++ is not fast.
Is it possible to load the XAML and store it in a field (or add in to the local cache), and in the future loadings simply send this cached object to GUI.LoadComponent(object, cachedXamlObject)?

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: Screenshot at 20-15-34.jpg (132,057 bytes) 2019-11-28 17:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1128&type=bug
Notes
(0005201)
ai_enabled   
2018-05-17 13:22   
(Last edited: 2018-05-17 13:22)
Sorry, I was confused and thought that we're actually transferring the XAML content to load the component.

Well, we're not doing that and only transferring the path to XAML.

However, the problem is that NoesisGUI loads XAML every time - XamlProvider.LoadXaml(fileName) method is invoked for a control every time it's needed to be loaded and that's a huge waste of performance as we had to open the stream from the disk.
Can you implement a cache so you will don't need to call XamlProvider.LoadXaml() every time we're calling GUI.LoadComponent(object, string)?

The current implementation is useful in case when the XAML is changed to see the reloaded file, however, this implementation is wrong - you should create another method to invalidate the NoesisGUI cache for a particular fileName and, maybe, reload all the UserControls/ResourceDictionaries related to the loaded fileName (which is very hard, I think).

Regards!

(0005211)
jsantos   
2018-06-01 22:45   
Problem is, each time a new UserControl is loaded we need a *new* tree, we cannot reuse the same (this is something we were doing in Noesis 1.X but it was not WPF conformant). So, the only thing that can be done is caching the stream, and this is something you can already do in your provider...

This is something we want to address in the future, but we are not sure yet how to do it. We could instantiate usercontrols by cloning a base one, each time it is requested. This is faster that loading the XAML but... we also have plans to support a compressed format of XAML (something like the BuildTool we have in Noesis 1.x but this time as an optional path, not mandatory in case you just want to directly load XAMLs)
(0005212)
ai_enabled   
2018-06-02 08:15   
(Last edited: 2018-06-02 08:17)
Yes, I understand that you need to build a new visual tree for every UserControl.
I don't feel that caching the binary stream of the XAML file will noticeably improve the performance. It also has overhead with C++<->C# interop.
Imagine we need to instantiate a dozen of user controls every second when a user quickly moves the mouse cursor over the game UI elements. The controls cache is not always a viable solution (for example, the UserControl might be defined directly in XAML for the tooltip - so we don't have the control over the UserControl lifetime as it's created and disposed by NoesisGUI automatically).

The XAML parser is indeed very fast and effective, but in a such scenario it's not as fast as it might be (especially for applications on the less powerful, mobile devices). I believe that caching of the parsed data will minimize the overhead.

It could be a kind of the tokenized structure which can instantly instantiate a visual tree ("compressed XAML" sounds good but it's not a real solution as it still involves a binary stream reading and C#<->C++ interop overhead every time a UserControl is instantiated).
Or, as you suggested, a static visual tree which can be cloned for every user control. It doesn't require XAML stream re-reading and supposedly could be done almost instantly in C++.

It seems it could be done without changing the current C# API. GUI.LoadComponent(object, string) on the C++ side can use a dictionary - binding the string (XAML file path) to the cached static visual tree.

(0005217)
jsantos   
2018-06-05 20:39   
Before analyzing this with more detail (I want to measure the performance of cloning the tree vs reading a stream from file) are you observing a real performance issue here or a theoretical one?
(0005219)
ai_enabled   
2018-06-05 21:06   
(Last edited: 2018-06-05 21:10)
Mostly theoretical and with a hope of a possible trivial fix.
Absolutely no priority with this task as we have others, much more pressing issues - which we would rejoice to see done as soon as you can find free time (namely, 0001222 , 0001291 , 0001269 and 0001229 ).

I've observed a real performance issue on a simulated lower performance machine (I've clamped the CPU clock speed) when I was testing a relatively heavy user controls which were dynamically spawned when user moved the mouse cursor over UI elements or game world objects.
That's a dozen of user controls (with other nested user controls) spawned-disposed per second but it increased the frame processing duration related to NoesisGUI on a few ms, noticeably dropping the framerate (perceivable stuttering when V-sync is enabled).
I was very surprised to learn than NoesisGUI wasted performance by requesting and reading Stream objects again and again even though it should already have all the data in a cache.

Of course, such a heavy use case might be (or often should be) avoided in the game design itself.
However, I thought it's worth reporting as theoretically it's a huge space for an optimization and will benefit overall performance, especially for the lower performance PCs and mobile devices.

(0005220)
jsantos   
2018-06-05 21:50   
Thanks for the detailed clarifications!
(0006013)
ai_enabled   
2019-11-28 17:16   
Hi,
today I've investigated a performance issue and found out a scenario when the absence of the cache can result in massive performance degradation.
If the UserControl is used as an ItemTemplate in a large list, even its initialization with just 100 items might result in a huge performance loss. Our online players' list is acting this way and players provided logs where I saw frame time skyrocketing from 5-10 ms to 600 ms when a new player joined the server and a new entry was added in the list resulting in the list re-ordering and rebuilding all the nested controls.

Even though I'm using items virtualization for this ItemsList, NoesisGUI is still creating a user control instance via Noesis.Extend.CreateInstance(IntPtr, IntPtr).

Of course, I can easily fix this on my side. But it's a good example of massive unexpected performance loss. Imagine 1000+ entries list with each entry invoking LoadComponent! If there is a XAML cache it would be not an issue. See the attached screenshot.

Oh, and I'm really curious what's wrong with the Virtualization. The xaml code is:
                <ItemsControl ItemsSource="{Binding PlayersOnline}">
                    <ItemsControl.Style>
                        <Style TargetType="ItemsControl">
                            <Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True" />
                            <Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling" />
                            <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel" />
                            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
                            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Visible" />
                            <Setter Property="ScrollViewer.CanContentScroll" Value="True" />
                            <Setter Property="ScrollViewer.PanningMode" Value="VerticalOnly" />
                        </Style>
                    </ItemsControl.Style>

                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <UniformGrid IsItemsHost="True"
                                         Columns="3"
                                         HorizontalAlignment="Stretch"
                                         VerticalAlignment="Top" />
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <social:PlayerEntryControl />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>


Regards!
(0006014)
ai_enabled   
2019-11-28 17:25   
(Last edited: 2019-11-28 17:26)
It seems UniformGrid and WrapPanel doesn't support virtualization. But I have the same problem with VirtualizingStackPanel.
Edit: oh, I see. I forgot to add an inner scroll viewer.

(0006015)
jsantos   
2019-11-28 17:31   
(Last edited: 2019-11-28 17:34)
We have been discussing here for a long time about a solution for caching UserControls and I think we found a good solution (at least in theory, we still have to implement it). The idea is storing in the cache the internal parsing of the XAML, each time a new UserControl is requested we only have to instantiate that internal tree. That should be a lot faster that parsing directly from XAML.

But in the case you mention, this optimization shouldn't be necessary if virtualization were properly working. @sfernandez could you have a look at this?

There is a warning message we send to the console if virtualization cannot be enabled. Are you getting it?

(0006016)
ai_enabled   
2019-11-28 17:38   
>> The idea is storing in the cache the internal parsing of the XAML
Yes, that's how it should work, ideally.

It seems the virtualization is working fine for VirtualizedStackPanel but it would be best if you can verify that it works fine for UserControls. In my case even though I have recycling mode enabled it still creating a new intance of my user control every time the entry is added to the observable collection bound to this items control.
(0006017)
sfernandez   
2019-11-28 18:04   
(Last edited: 2019-11-28 21:20)
Is that ItemsControl using a custom template containing a ScrollViewer? the default template for ItemsControl doesn't have one.
Virtualization only makes sense if there is a smaller viewport that can be scrolled.

Please try the following (I set the Height to a fixed size just to make sure the control does not extend to the size of all items, what could occur if it is wrapped by a ScrollViewer or a vertical StackPanel):
<ItemsControl ItemsSource="{Binding PlayersOnline}" Height="300"
    VirtualizingStackPanel.IsVirtualizing="True"
    VirtualizingPanel.VirtualizationMode="Recycling"
    VirtualizingPanel.ScrollUnit="Pixel"
    ScrollViewer.HorizontalScrollBarVisibility="Disabled"
    ScrollViewer.VerticalScrollBarVisibility="Visible"
    ScrollViewer.CanContentScroll="True"
    ScrollViewer.PanningMode="VerticalOnly">
    <ItemsControl.Template>
        <ControlTemplate TargetType="ItemsControl">
            <ScrollViewer Padding="{TemplateBinding Padding}" Focusable="False">
                <ItemsPresenter/>
            </ScrollViewer>
        </ControlTemplate>
    </ItemsControl.Template>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <social:PlayerEntryControl />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>


(0006018)
ai_enabled   
2019-11-28 18:11   
Thanks, Sergio.
I've tried it right now and it still creating a new instance of the UserControl every time via NoesisManaged.dll!Noesis.Extend.CreateInstance(System.IntPtr nativeType, System.IntPtr cPtr).

I've programmed it to simply remove-add-remove-add the same item into the observable items collection so the view control could be recycled, but unfortunately it's not recycled.
(0006019)
ai_enabled   
2019-11-28 18:12   
If you want to try it in the game I can submit a code for you now so you can unpack Core.cpk and try it yourself :-)
(0006020)
jsantos   
2019-11-28 18:13   
Are you getting any warning on the console?
(0006021)
jsantos   
2019-11-28 18:15   
As far as I understand, if the item if being removed-added-removed-added but it is always visible, the usercontrol is going to be created each time. With virtualization only non-visible items are non created.

But I could be wrong... @sfernandez
(0006022)
ai_enabled   
2019-11-28 18:35   
I cannot see any warning or error regarding the virtualization from NoesisGUI (but there are a ton of binding failed messages, sounds like I will need to find some time to improve the game UI in this regard).
(0006023)
sfernandez   
2019-11-28 19:18   
@jsantos That's right, adding non visible items to the observable collection shouldn't instantiate the ItemTemplate.
That is a symptom that virtualization may not be occurring.
The message should look like "Virtualization disabled: ..." with an explanation of what is the cause.
(0006027)
sfernandez   
2019-12-02 17:32   
Hi, I created a small test trying to reproduce your scenario with an ItemsControl and an ItemTemplate with a custom control:
<Grid x:Class="Testing.VirtualizationTest"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:test="clr-namespace:Testing">
    <Grid.Resources>
        <DataTemplate x:Key="itemTemplate">
            <test:MyControl Content="{Binding}"/>
        </DataTemplate>
    </Grid.Resources>
    <ItemsControl ItemsSource="{Binding}" Width="100" Height="100" ItemTemplate="{StaticResource itemTemplate}"
        VirtualizingStackPanel.IsVirtualizing="True"
        VirtualizingPanel.VirtualizationMode="Recycling"
        VirtualizingPanel.ScrollUnit="Pixel"
        ScrollViewer.HorizontalScrollBarVisibility="Disabled"
        ScrollViewer.VerticalScrollBarVisibility="Visible"
        ScrollViewer.CanContentScroll="True"
        ScrollViewer.PanningMode="VerticalOnly">
        <ItemsControl.Template>
            <ControlTemplate TargetType="ItemsControl">
                <ScrollViewer Focusable="False">
                    <ItemsPresenter/>
                </ScrollViewer>
            </ControlTemplate>
        </ItemsControl.Template>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
    <Button x:Name="btn" Content="Add item" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="10"/>
</Grid>

This xaml shows 9 visible items, and only 9 'Testing.MyControl' objects are created, one for each visible item, and one extra object for the DataTemplate.
If I scroll 1 line it ends reusing the previously created controls, so recycling is working.
And if I add a new item to the collection no new control is created, even if the new item shows up in the visible area and there are recycled containers available.

I'm pretty sure that in your case virtualization is not happening. Can I see the xaml where you have your ItemsControl?, maybe I see something that points me what could be happening.
(0006029)
jsantos   
2019-12-02 17:40   
It is not the first time that this happens, I mean, the confusion about if virtualization is enabled or not. We need to improve this someway, I don't know, clearly the log message is not enough, maybe a new boolean synthesized property? The good thing about the property is that it can be inspected in the new inspector tool (coming with the next major version)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1728 [NoesisGUI] C++ SDK minor always 2020-06-18 16:34 2020-06-18 16:36
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.3  
    Target Version: 3.0.3  
Platform: Any
Summary: Static extension can't parse types with nested namespaces
Description:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:Ns1.Ns2">
    <Border Tag="{x:Static local:MyEnum.Value}"/>
</Grid>

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1721 [NoesisGUI] C++ SDK minor N/A 2020-06-10 22:14 2020-06-11 18:58
Reporter: spadapet Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: UWP
Summary: Include 32-bit libraries for UWP C++
Description: Only the 64-bit C++ libraries are included for UWP in the SDK (uwp_x86_64). Please also add 32-bit C++ libraries for UWP (uwp_x86). While I only need x86 added, you can also consider ARM/ARM64 libraries.
Tags: C++
Steps To Reproduce: These folders exist in the C++ SDK:
* Bin\uwp_x86_64
* Lib\uwp_x86_64

These should also be included:
* Bin\uwp_x86
* Lib\uwp_x86
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1687 [NoesisGUI] C# SDK minor always 2020-05-18 14:51 2020-06-11 18:33
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Windows
Summary: Cannot add both DropShadow effect and background to the same control
Description: I have a UserControl which defines a Time/Date spinner control. If set the UserControl's Effect and Background properties, then the control simply does not show up. So, I had to set the background on the UserControl and the Effect on the child Grid to get it to work.

The same thing happens if I try to set both on the child Grid, the entire control is not rendered (all I see is the background).

<UserControl x:Class="Controls.DateTimeControl.DateTimeSpinner"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
             xmlns:local="clr-namespace:Controls.DateTimeControl">
    <UserControl.Background>
        <SolidColorBrush Color="Black" Opacity=".5"></SolidColorBrush>
    </UserControl.Background>
    <UserControl.Resources>
         <!-- Control resources and styles here -->
    </UserControl.Resources>
    <Grid Effect="{StaticResource StandardDropShadow}" Focusable="True" FocusVisualStyle="{x:Null}" Background="Transparent" PreviewKeyDown="OnPreviewKeyDown" Loaded="OnLoaded" Height="200" Width="800" HorizontalAlignment="Center" VerticalAlignment="Center">
         <!-- Control defined here -->
    </Grid>
</UserControl>
Tags:
Steps To Reproduce: In above description
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1654 [NoesisGUI] C# SDK minor always 2020-04-10 18:31 2020-06-11 18:29
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: DropShadowEffect Side Effect
Description: I am seeing a secondary shadow effect that does not have the expected angle or placement. See screenshot. I tried moving DropShadowEffect up and down the hierarchy without success.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: effect.PNG (16,479 bytes) 2020-04-10 18:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1190&type=bug
Example.xaml (1,472 bytes) 2020-04-10 18:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1191&type=bug
Notes
(0006191)
sfernandez   
2020-04-10 20:50   
I'm unable to reproduce it, could you please create a sample project and attach it here, maybe I'm missing some configuration option.
(0006202)
stonstad   
2020-04-14 15:55   
Yes -- it may be a few days but I'll work to get an example of this.
(0006222)
stonstad   
2020-04-17 18:44   
Here is the associated XAML, SliderControl.xaml.

<UserControl
    x:Class="MBI.CustomerSelect.Unity.UI.SliderControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
    x:Name="_SliderControl">

    <Grid Margin="10" Background="{StaticResource BackgroundColor}" VerticalAlignment="Top">
        <Grid.Effect>
            <DropShadowEffect BlurRadius="25" Direction="270" ShadowDepth="6" Opacity="0.6" Color="Black"/>
        </Grid.Effect>
        <StackPanel Orientation="Vertical">
            <Border Background="{DynamicResource Brush.Item.SelectedOver}">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                    <TextBlock x:Name="_IconTextBlock" FontFamily="{StaticResource FontAwesome}" FontSize="15" FontWeight="Light" Foreground="#FFFFFFFF" Margin="-20, 0, 0, 0" VerticalAlignment="Center"/>
                    <TextBlock x:Name="_TitleTextBlock" FontSize="16" Margin="4" Foreground="#FFFFFFFF" Text="TITLE"/>
                </StackPanel>
            </Border>
            <Slider x:Name="_Slider" Minimum="0" Maximum="1" Value="1" Width="300" Margin="12"/>
        </StackPanel>
    </Grid>
</UserControl>

I tried moving the shadow to a grid at the same level as the stack panel -- it exhibits the same behavior. For some reason I can't seem to get rid of the shadow on the right side of the UserControl.
(0006242)
stonstad   
2020-04-23 19:21   
This behavior manifests only when the drop shadow described in https://www.noesisengine.com/bugs/view.php?id=1655 is enabled. This bug can likely be merged with 1655.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1655 [NoesisGUI] Unity3D minor always 2020-04-10 19:55 2020-06-11 18:29
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: DropShadowEffect And Visual Corruption w/ Virtualizing Container
Description: DropShadowEffect causes visual corruption in virtualizing/scrolling containers.

No Shadow.png. No DropShadowEffect applied.
Shadow OK.png. DropShadowEffect works as expected.
Shadow Broken.png. DropShadowEffect is broken.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: No Shadow.PNG (82,863 bytes) 2020-04-10 19:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1192&type=bug
Shadow OK.PNG (94,175 bytes) 2020-04-10 19:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1193&type=bug
Shadow Broken.PNG (28,481 bytes) 2020-04-10 19:55
https://www.noesisengine.com/bugs/file_download.php?file_id=1194&type=bug
No Shadow-2.PNG (69,341 bytes) 2020-04-17 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1200&type=bug
WithShadow.PNG (66,333 bytes) 2020-04-17 18:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1201&type=bug
Notes
(0006188)
stonstad   
2020-04-10 20:17   
It seems like the process of adding a DropShadowEffect to a container causes it to have infinite bounds when a slider appears. If I don't add the effect the bounds of the container works as expected.
(0006190)
sfernandez   
2020-04-10 20:50   
I'm unable to reproduce it, could you please create a sample project and attach it here, maybe I'm missing some configuration option.
(0006203)
stonstad   
2020-04-14 15:55   
Yes -- I'll work to provide a sample project.
(0006296)
stonstad   
2020-04-29 19:05   
Any updates on this bug/behavior?
(0006298)
sfernandez   
2020-04-30 00:43   
Hi, we found the problem arises when shadow bounds intersect with window edges. It is a corner case we don't have correctly implemented.
In the meantime you can probably add to the panel a margin enough to fit the shadow inside screen size.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1723 [NoesisGUI] C++ SDK minor always 2020-06-11 12:55 2020-06-11 13:21
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Window class size different when NS_PROFILE was active
Description: Windows.h has a block of member variables inside a conditional preprocessor block. This leads to crashes when mixing releasing and profile code.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1717 [NoesisGUI] Unity3D minor random 2020-06-09 23:58 2020-06-11 12:51
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Crash while playing in editor
Description: Stack Trace of Crashed Thread 19564:
ERROR: SymGetSymFromAddr64, GetLastError: 'The specified module could not be found.' (Address: 000002309DAD0DD0)
ERROR: SymGetModuleInfo64, GetLastError: 'A dynamic link library (DLL) initialization routine failed.' (Address: 000002309DAD0DD0)
0x000002309DAD0DD0 ((<unknown>)) (function-name not available)
0x00007FFC28B38586 (Noesis) Noesis_UnityUpdate
0x0000022EBC5C830E (NoesisGUI) NoesisView.Noesis_UnityUpdate()
0x0000022EBC5BB163 (NoesisGUI) NoesisView.UpdateFrame()
0x0000022EBC5A53BB (Bonfire.Client) Bonfire.Client.UI.HUDViewSystem.OnUpdateMainThread()
0x0000022E9EBC8DF8 (Bonfire.Core) Bonfire.Entities.SystemBase.OnUpdate()
0x0000022E9E41F582 (Unity.Entities) Unity.Entities.SystemBase.Update()
0x0000022E9E1C9FAB (Unity.Entities) Unity.Entities.ComponentSystemGroup.UpdateAllSystems()
0x0000022E9E1C9B83 (Unity.Entities) Unity.Entities.ComponentSystemGroup.OnUpdate()
0x0000022E9EE9DDE3 (Unity.NetCode) Unity.NetCode.ClientPresentationSystemGroup.OnUpdate()
0x0000022E9E1C7B32 (Unity.Entities) Unity.Entities.ComponentSystem.Update()
0x0000022E9E1C9FAB (Unity.Entities) Unity.Entities.ComponentSystemGroup.UpdateAllSystems()
0x0000022E9E1C9B83 (Unity.Entities) Unity.Entities.ComponentSystemGroup.OnUpdate()
0x0000022E9E1C7B32 (Unity.Entities) Unity.Entities.ComponentSystem.Update()
0x0000022E9E1C9FAB (Unity.Entities) Unity.Entities.ComponentSystemGroup.UpdateAllSystems()
0x0000022E9E1C9B83 (Unity.Entities) Unity.Entities.ComponentSystemGroup.OnUpdate()
0x0000022E9E1C7B32 (Unity.Entities) Unity.Entities.ComponentSystem.Update()
0x0000022E9E1C7731 (Unity.Entities) DummyDelegateWrapper.TriggerUpdate()
0x0000022E9E16F118 (mscorlib) System.Object.runtime_invoke_void__this__()
0x00007FFC88C2D660 (mono-2.0-bdwgc) mono_get_runtime_build_info
0x00007FFC88BB28E2 (mono-2.0-bdwgc) mono_perfcounters_init
0x00007FFC88BBB93F (mono-2.0-bdwgc) mono_runtime_invoke
Tags: Unity
Steps To Reproduce: We've only seen this once, just wanted to make you aware. Will try to get more information
Additional Information:
Attached Files: crash.dmp (3,319,812 bytes) 2020-06-10 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1250&type=bug
error (1).log (156,139 bytes) 2020-06-10 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1251&type=bug
Editor (3).log (4,344,111 bytes) 2020-06-10 20:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1252&type=bug
Notes
(0006435)
jsantos   
2020-06-10 12:55   
(Last edited: 2020-06-10 12:56)
Any chance you could attach a dump? Thanks!

(0006436)
samc   
2020-06-10 20:06   
Attaching the dmp and logs


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1720 [NoesisGUI] C++ SDK minor always 2020-06-10 20:13 2020-06-10 21:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Font dependency incorrectly including ttf file
Description: When having a reference to a font family like this: "Fonts/fa-solid-900.ttf#Font Awesome 5 Free" in a xaml, the GetDependencies() function is reporting a dependency to the font that includes the ttf file in the path, and that is not correct.

Both "Fonts/fa-solid-900.ttf#Font Awesome 5 Free" and "Fonts/#Font Awesome 5 Free" should report the same dependency: "Fonts/#Font Awesome 5 Free"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1719 [NoesisGUI] C++ SDK minor always 2020-06-10 18:30 2020-06-10 19:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Can't move focus to ItemsControl items using arrows
Description: Having a ScrollViewer which contains an ItemsControl, trying to move the focus on the control that defines each item to select it is not working.

The following xaml reproduces the issue:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <GradientStopCollection x:Key="list">
      <GradientStop Offset="0" Color="Red"/>
      <GradientStop Offset="1" Color="Green"/>
      <GradientStop Offset="2" Color="Blue"/>
    </GradientStopCollection>
    <DataTemplate x:Key="entry">
      <Button Content="{Binding Offset}" Margin="0,10"/>
    </DataTemplate>
  </Grid.Resources>
  <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" KeyboardNavigation.DirectionalNavigation="Contained">
    <Button Content="Before" Margin="0,10"/>
    <ScrollViewer Width="200" Height="200">
      <ItemsControl ItemsSource="{StaticResource list}" ItemTemplate="{StaticResource entry}"/>
    </ScrollViewer>
    <Button Content="After" Margin="0,10"/>
  </StackPanel>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1718 [NoesisGUI] C# SDK minor always 2020-06-10 12:48 2020-06-10 13:16
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Incorrect binding error messages
Description: From forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=2003
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1715 [NoesisGUI] C++ SDK minor always 2020-06-09 16:20 2020-06-09 16:22
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Any
Summary: Crash when you click on TextBox with a not found FontFamily
Description: From forum topic: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1983&start=10#p11210

If FontFamily property is set with a StaticResource and resource is not found, then a null is set. If TextBox is clicked a crash occurs.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1713 [NoesisGUI] C++ SDK major always 2020-06-08 16:22 2020-06-09 13:21
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.2  
    Target Version: 3.0.2  
Platform: Windows
Summary: Popup and ComboBox do not work together nicely
Description: from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1998

Here is the XAML that illustrates the problem. Click the button to show a Popup that has a combobox internally.
The Popup is configured with StaysOpen="False". After the Popup appears, click the combobox and select the item that is shown beyond the Popup Window.

The expected behavior is that the item becomes the selected part of the Combobox and the Popup kept shown (this is the behavior of WPF).
However, the current behavior of NoesisGUI is to close the Popup and item inside the Combobox is not selected.

<Grid Background="White">
    <ToggleButton x:Name="PopupToggle" Height="30" Width="50" IsChecked="{Binding IsOpen, ElementName=Popup}"></ToggleButton>
    <Popup x:Name="Popup" Placement="Bottom" PlacementTarget="{Binding ElementName=PopupToggle}" StaysOpen="False">
      <Grid Width="100" Height="100" Background="Red">
        <ComboBox Width="50" Height="30">
          <ComboBoxItem>A</ComboBoxItem>
          <ComboBoxItem>B</ComboBoxItem>
          <ComboBoxItem>C</ComboBoxItem>
          <ComboBoxItem>D</ComboBoxItem>
          <ComboBoxItem>E</ComboBoxItem>
          <ComboBoxItem>F</ComboBoxItem>
          <ComboBoxItem>G</ComboBoxItem>
          <ComboBoxItem>H</ComboBoxItem>
          <ComboBoxItem>I</ComboBoxItem>
          <ComboBoxItem>J</ComboBoxItem>
        </ComboBox>
      </Grid>
    </Popup>
  </Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1709 [NoesisGUI] Unity3D minor always 2020-06-04 22:58 2020-06-09 13:00
Reporter: samc Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.2  
Platform: macOS
Summary: unity assets change on OSX vs. Windows
Description: Our assets are changing simply based on loading unity in OSX or windows.

Here's a text snippet from the "content" field in the .asset files in unity:

Windows:
3c5265736f7572636544696374696f6e6172790d0a2020

OSX:
3c5265736f7572636544696374696f6e6172790a2020

If you look at the end, it looks like windows is getting CRLF (0d0a) where as OSX just has LF (0a).
Tags: Unity
Steps To Reproduce: reimport xaml assets on OSX instead of windows
Additional Information:
Attached Files:
Notes
(0006422)
jsantos   
2020-06-05 11:09   
I remember fixing this on 3.0.0 so I will verify it again. Please, confirm me this is happening in 3.0 and no in 2.X

Thanks!
(0006426)
samc   
2020-06-05 18:28   
This happened after loading for the first time on OSX with 3.0.1. I suppose its possible it was somehow still referencing the 2.x library; i'll do some more tests here.
(0006433)
samc   
2020-06-09 02:47   
this must have been some weird artifact of upgrading; just tried to manually reimport everything on OSX and it didn't mark anything as changed.
(0006434)
jsantos   
2020-06-09 13:00   
Great! Closing this


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1712 [NoesisGUI] Unity3D text always 2020-06-05 14:30 2020-06-05 14:32
Reporter: BoJack Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Font style are not synthesize
Description: If your font does not have an italic file (or an oblique file)

FontStyle="Italic" will work on wpf/blend but not on unity
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1710 [NoesisGUI] C++ SDK feature always 2020-06-05 12:03 2020-06-05 13:36
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Wireframe support missing in GlRenderDevice
Description: Noesis::RenderState::wireframe is not implemented in NoesisApp::GLRenderDevice.

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE / GL_FILL) should be supported on all platforms supported by GLRenderDevice, it's just not implemented.
Tags: OpenGL
Steps To Reproduce: Use Inspector on application using GlRenderDevice
Try to enable wireframe
It has no effect
Additional Information:
Attached Files:
Notes
(0006423)
jsantos   
2020-06-05 13:29   
It is not implemented because glPolygoneMode is not available in GL ES or WebGL.

But yes, we could implement it at least for OpenGL. This is part of the App Framework though, you can customize and tweak the implementation for your needs.

Thanks!
(0006425)
jsantos   
2020-06-05 13:36   
https://stackoverflow.com/questions/3539205/is-there-a-substitute-for-glpolygonmode-in-open-gl-es-webgl


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1711 [NoesisGUI] Documentation minor N/A 2020-06-05 12:58 2020-06-05 13:33
Reporter: Ext3h Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Dirty GL context state in IntegrationGLUT
Description: The IntegrationGLUT sample should reset *all* state which is potentially tainted.

GLRenderDevice is tainting a lot more state than the example lists, and which state it ends up being in also depends on the rendered content, not just explicit configuration.

At minimum all state touched either by GLRenderDevice::InvalidateStateCache() or GLRenderDevice::SetRenderState() is effectively dirty.

In addition, glClearStencil() and (pre 3.0) client states may also have been modified, depending on platform.
Tags: OpenGL
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006424)
jsantos   
2020-06-05 13:33   
You are right about this improvement, thanks for this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1706 [NoesisGUI] C++ SDK minor always 2020-05-27 18:06 2020-05-28 19:11
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: won't fix  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: Memory leak when binding DataContext to parent user control
Description: Hi guys, I'm seeing a memory leak when I bind the DataContext to a parent's user control. This is the sample code I have:

<grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Name="RootGrid" Background="red" width="100" height="100">
    <border x:Name="Border" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}">
        <TextBlock x:Name="TextBlock" Text="{Binding Name}" VerticalAlignment="Center" HorizontalAlignment="Center" />
    </border>
</grid>

In my case, the root user control is a custom type that I've exposed properties on. I've basically followed the steps on this link to bind to the property on a UserControl: https://blog.scottlogic.com/2012/02/06/a-simple-pattern-for-creating-re-useable-usercontrols-in-wpf-silverlight.html

It seems if I use this pattern it fails to remove the UserControl. Presumably the binding expression creates a circular dependency and is unable to free all resources.
Tags:
Steps To Reproduce: 1. Paste the attached document into a Noesis application.
2. Attempt to exit the application.
3. If you're in the debugger, the debugger will break on the following line:

        if (GetAllocatedMemory() > 0)
        {
            NS_LOG_WARNING("Memory leaks detected: %d bytes", GetAllocatedMemory());

            #if defined(NS_DEBUG) && defined(NS_PLATFORM_WINDOWS)
                if (IsDebuggerPresent()) { NS_DEBUG_BREAK; } // here
            #endif
        }
Additional Information:
Attached Files: test.xaml (470 bytes) 2020-05-27 18:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1242&type=bug
Notes
(0006397)
steveh   
2020-05-27 18:11   
Oh I just thought I'd mention, I can fix it by doing the following:

Text="{Binding Path=Name, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}"

Essentially ignoring the DataContext and instead setting the RelativeSource directly in the attribute binding. This seems to clean up nicely, it's only if I set the DataContext on a parent object to point to an element further up in the hierarchy that it has issues.
(0006399)
sfernandez   
2020-05-27 18:57   
This is a known issue in Noesis. Our current implementation of dependency properties like DataContext are keeping a reference to the object set in the property. So setting a parent object (that already keeps a reference to their children) will create a circularity in references that we cannot break leading to leaks.

As you found there are easy ways to workaround this limitation, by using RelativeSource or even simpler ElementName:

Text="{Binding Path=Name, ElementName=RootGrid}"
(0006405)
steveh   
2020-05-28 02:44   
Cheers, I'm finding a few of these issues around the place now :) I've just hit another issue with triggers and a GoToStateAction with an explicit TargetName of a parent as well. I don't suppose there's a plan to try and track down these circular references is there? Anything which could potentially help to debug these issues would be fantastic! Obviously this is a feature request so quite low priority, especially at the moment as you're dealing with the fallout of the 3.0.0 release :)

Cheers!
(0006408)
jsantos   
2020-05-28 11:09   
(Last edited: 2020-05-28 11:09)
This is something I always wanted to improve, not sure exactly how. Could you please create a new ticket about it?

(0006414)
sfernandez   
2020-05-28 19:11   
Closing this one, ticket 1707 covers this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1702 [NoesisGUI] Unity3D minor unable to reproduce 2020-05-27 06:24 2020-05-28 19:08
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Windows
Summary: Crash while doing an import immediately after upgrading to 3.0.0
Description: Immediately after we upgraded to 3.0.0, I selected 'reimport all' from the Noesis settings menu and I hit this crash.
Tags: Unity
Steps To Reproduce: Noesis Settings -> Reimport all

This happened the first time after upgrade but hasn't happened since.
Additional Information:
Attached Files: Crash_2020-05-27_034019761.zip (699,876 bytes) 2020-05-27 06:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1240&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1697 [NoesisGUI] Unity3D minor have not tried 2020-05-25 11:49 2020-05-28 19:07
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: crash while reimporting assets
Description: We're getting a crash here whenever we do "Reimport All Assets". We just found that it's crashing while running scan dependencies on one of our XAML files. We attempt to just reimport the folder where all our XAMLs is in Unity, but it doesn't crash. It looks like it only crashes if we do a "Reimport All" operation in Unity.

Reimport All from Noesis Settings Panel works fine
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1692 [NoesisGUI] C++ SDK crash have not tried 2020-05-21 15:15 2020-05-28 17:44
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: Crash in Renderer::RenderOffscreen
Description: Hi guys, I've just hit a crash in our code when booting up with Noesis 3.0.0:

bool Renderer::RenderOffscreen()
{
    return RenderOffscreen(mTree->GetProjection());
}

mTree is nullptr:

It looks like all the other Render functions check to make sure that mTree is valid before dereferencing it. I'll fix it locally but just thought I'd let you know.

I've not looked into this yet, so I don't know why we are trying to render something which doesn't have a valid tree, but this didn't crash in 2.2.6.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006386)
steveh   
2020-05-21 17:32   
Just wanted to quickly update you. I was attempting to render the view before I had initialised the renderer on the render thread on the first frame a new view was created, that's why the tree was null. I've fixed this up so it no longer does this, it now won't try to call IRenderer::Render / IRenderer::RenderOffscreen until we've called Init on the view and passed in the render device.

However, I'm guessing we had the same error in 2.2.6, it's just it didn't crash, I imagine it silently failed on the first frame.
(0006388)
jsantos   
2020-05-22 14:01   
Yes, we were silently failing before and we should keep doing the same now (to avoid crashes when clients create view with empty content), I will fix it. Thanks for reporting.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1700 [NoesisGUI] C++ SDK major always 2020-05-27 00:45 2020-05-28 17:33
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: Crash / memory stomp in SDF generator
Description: Hi guys,

I'm seeing an assert which is ultimately leading to a memory overwrite in the SDF Generator. We are running at 4k UI and we have a text popup we plays an animation and scales larger than the screen. The text is also drawing to the offscreen buffer, I'm not sure if that makes a difference.

The full callstack is as follows:

> Noesis::SDFGenerator::Begin(int width, int height) Line 1103 C++
     Noesis::GlyphCache::RenderSDF(Noesis::GlyphCache::Glyph * glyph, Noesis::FT_FaceRec_ * face, unsigned int index, unsigned int size, long stroke) Line 397 C++
     Noesis::GlyphCache::GetGlyph(Noesis::VGLFontFace * face, unsigned int index, unsigned int size, long stroke, bool inLayer) Line 527 C++
     Noesis::GlyphCache::CacheGlyph(Noesis::VGLFontFace * face, unsigned int index, unsigned int size, long stroke) Line 147 C++
     Noesis::VGLContext::DrawRunForeground(Noesis::VGLTextLayout * layout, const Noesis::Transform2 & mtx, Noesis::Glyph * glyphs, const Noesis::GlyphRun & run, const Noesis::TextProperties & p, Noesis::VGLPaint * paint, const Noesis::BatchGroup & k, float scale, Noesis::GeoBuilderType builder, unsigned short runIndex, unsigned char flags) Line 3028 C++
     Noesis::VGLContext::DrawTextLayout(Noesis::VGLTextLayout * layout, const Noesis::Transform2 & mtx, Noesis::VGLPaint * * paints, unsigned int numPaints, unsigned int flags_) Line 1228 C++
     Noesis::RenderTreeHelper::DrawTextLayout(Noesis::VGLTextLayout * textLayout, Noesis::BrushProxy * * brushes, unsigned int numBrushes, unsigned int flags, const Noesis::Rect & bounds, const Noesis::Transform2 & transform) Line 470 C++
     Noesis::RenderTreeHelper::DrawCommands(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, Noesis::DrawingCommandsProxy * drawCommands, const Noesis::Transform2 & transform, const Noesis::Matrix4 & projection, bool isProjectionIdentity, unsigned int bitmapScalingMode) Line 274 C++
     [Inline Frame] Noesis::RenderTreeHelper::RenderDraw(Noesis::RenderNode *) Line 743 C++
     Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2 & transform, const Noesis::Matrix4 & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 703 C++
     [Inline Frame] Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode * isProjectionIdentity, const Noesis::Recti &) Line 760 C++
     Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2 & transform, const Noesis::Matrix4 & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 703 C++
     [Inline Frame] Noesis::RenderTreeHelper::RenderChildren(Noesis::RenderNode * isProjectionIdentity, const Noesis::Recti &) Line 760 C++
     Noesis::RenderTreeHelper::RenderNodeRecursive(Noesis::RenderNode * node, const Noesis::Recti & surfaceRect, const Noesis::Transform2 & transform, const Noesis::Matrix4 & projection, bool isProjectionIdentity, float opacity, unsigned int depth) Line 703 C++
     Noesis::RenderTreeHelper::RenderOffscreenNodes() Line 592 C++
     Noesis::RenderTreeHelper::RenderOffscreen(Noesis::RenderNode * node, const Noesis::Matrix4 & projection) Line 97 C++
     Noesis::RenderTree::RenderOffscreen(const Noesis::Matrix4 & projection) Line 280 C++
     Noesis::Renderer::RenderOffscreen(const Noesis::Matrix4 & projection) Line 164 C++
     Noesis::Renderer::RenderOffscreen() Line 148 C++

void SDFGenerator::Begin(int width, int height)
{
    NS_ASSERT(width * height <= (int)sizeof(mSDF)); // <--- this hits
    NS_ASSERT(width * height * (int)sizeof(DFData) <= (int)sizeof(mData));


In my case, width is 79 and height is 66. If I go back up the stack, the cbox.xMax is 3840 (the width of my render target) and the cbox.xmin is -704. So width ends up being (3840 + 704) >> 6 which is 79, and the height ends up as (2816 + 896) >> 6 which is 66.

I tried to reproduce this locally in XamlPlayer but was unable to. I'm attaching something very similar to what we have in game, but it doesn't assert or crash in XamlPlayer.
Tags:
Steps To Reproduce: 1. Create a textblock which is almost the full screen in 4k.
2. Scale the textblock. Also change the opacity to ensure it draws to an offscreen buffer.
Additional Information:
Attached Files: test.xaml (1,383 bytes) 2020-05-27 00:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1237&type=bug
test2.xaml (1,447 bytes) 2020-05-27 00:52
https://www.noesisengine.com/bugs/file_download.php?file_id=1238&type=bug
Notes
(0006391)
steveh   
2020-05-27 00:52   
I've just realised it actually crashes on the stroke. I've added strokes to the test XAML and it doesn't assert, but I do notice some artifacts. It seems the large the text the more noticeable the artifacts. I wonder if it is causing an issue but the compiled XAMLPlayer hasn't got asserts enabled? I'm attaching a new version with a stroke.
(0006392)
jsantos   
2020-05-27 01:54   
I am able to reproduce this and it's been reported by more clients. It will be fixed in 3.0.1, the artifacts are probably a different thing, I will analyze it carefully and tell you.
(0006412)
jsantos   
2020-05-28 17:33   
Artifacts in the stroke are a different thing. That's related to the new SDF algorithm. Please, open a new ticket if after this fix that's still an issue for you.
Thanks for your great feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1694 [NoesisGUI] C++ SDK minor N/A 2020-05-23 18:00 2020-05-28 16:28
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.1  
Platform: Any
Summary: Noesis::Symbol visualiser not working if building Noesis via static libs
Description: Hi guys, just a tiny issue. We build Noesis as a static lib. It seems that when built like a static lib the *.natvis file does not display Symbols correctly:

<Type Name="Noesis::Symbol">
  <DisplayString>{{ {((const char**){,,Core.Noesis.Kernal.dll}gSymbols.mBegin)[mIndex],na} }}</DisplayString>
</Type>

<Type Name="Noesis::Symbol">
  <DisplayString>{{ {((const char**){,,Core.Noesis.Kernal.dll}gSymbols.mBegin)[mIndex],na} }}</DisplayString>
</Type>

The issue is the DLL reference. Dropping it so it just references gSymbols directly fixes it:

<Type Name="Noesis::Symbol">
  <DisplayString>{{ {((const char**)gSymbols.mBegin)[mIndex],na} }}</DisplayString>
</Type>

<Type Name="Noesis::Symbol">
  <DisplayString>{{ {((const char**)gSymbols.mBegin)[mIndex],na} }}</DisplayString>
</Type>



Just thought I'd mention it. This probably only affects us since I imagine most people are building Noesis via the DLL method. I've changed this locally in my visualiser so this is really low priority.

Cheers!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1695 [NoesisGUI] C++ SDK major always 2020-05-24 15:29 2020-05-28 14:51
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: PlayStation4
Summary: Noesis does not compile properly with Clang as static libraries
Description: Hi guys,

I forgot that we had changed this locally in previous Noesis versions. I've just hit this issue again as I overwrote our local slighly tweaked modified version of Noesis with the vanilla 3.0.0 base and ran into this issue again when compiling with Clang. It looks like NS_STATIC_LIBRARY is not respected on GNU / Clang for NS_DLL_IMPORT / NS_DLL_EXPORT. You can see that this definition is only considered on MSVC in CompilerSettings.h.

My fix is trivial, just check to make see if NS_STATIC_LIBRARY has been defined, and if so, define the NS_DLL_IMPORT / NS_DLL_EXPORT to empty:

    #ifndef NS_DLL_EXPORT
        #ifdef NS_STATIC_LIBRARY // @Sumo SPH - Ignore DLL export / import tags
            #define NS_DLL_EXPORT
        #else
            #if __has_declspec_attribute(dllexport)
                #define NS_DLL_EXPORT __declspec(dllexport)
            #else
                #define NS_DLL_EXPORT __attribute__ ((visibility("default")))
            #endif
        #endif // @Sumo SPH - Ignore DLL export / import tags
    #endif

    #ifndef NS_DLL_IMPORT
        #ifdef NS_STATIC_LIBRARY // @Sumo SPH - Ignore DLL export / import tags
            #define NS_DLL_IMPORT
        #else
            #if __has_declspec_attribute(dllimport)
                #define NS_DLL_IMPORT __declspec(dllimport)
            #else
                #define NS_DLL_IMPORT __attribute__ ((visibility("default")))
            #endif
        #endif // @Sumo SPH - Ignore DLL export / import tags
    #endif
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1690 [NoesisGUI] C++ SDK minor N/A 2020-05-19 15:17 2020-05-28 14:45
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.1  
Platform: Any
Summary: Suggestion: Remove exposed include to platform headers
Description: Hi guys,

I'm currently moving our code base over to 3.0.0 RC7 (well technically your SVN trunk head revision) in preparation for the 3.0.0 official release. Note: I'm only using the RC to get our code working locally against the 3.0.0 version, I don't plan to submit the integration until you create a tag for the official 3.0.0 release so I have an official version to work against.

I hit another snag. We had several references to FrameworkElement::TryFindResource in our code base. It looks like this has now been removed and replaced with FrameworkElement::FindResource and it no longer looks to throw an error if an invalid resource is requested. I've replaced the instances but then I hit another compile error, similar to the PlaySound error (https://www.noesisengine.com/bugs/view.php?id=1637). It looks like WinAPI redefines FindResource -> FindResourceA / FindResourceW depending on unicode settings (https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-findresourcea)

I think the simplest fix is to remove any reference to #include <windows.h> in the header. Here are the references I could find in the headers:

NoesisSDK\Src\Packages\Core\Kernel\Inc\NsCore\SpinMutex.h(19)
NoesisSDK\Src\Packages\Core\Kernel\Inc\NsCore\Thread.h(19)
NoesisSDK\Src\Packages\Core\Kernel\Inc\NsCore\TLSValue.h(19)
NoesisSDK\Src\Packages\Core\Kernel\Include\NsCore\CpuProfiler.h(40)
NoesisSDK\Src\Packages\Core\Kernel\Src\ECC.h(167)
NoesisSDK\Src\Packages\Core\Kernel\Src\RecursiveMutex.h(19)


It would be nice if these platform layer types could be abstracted away into a platform independent type, and then all platform include headers could be removed from external code.

For the time being, I've changed my code to do something like the following:



///////////////////////////////////////////////////////////////////////////
// Backup the FindResource defintion overridden by WinAPI

#ifdef FindResource
#define FindResourceBackup FindResource
#undef FindResource
#endif

// ... Code which uses FindResource

///////////////////////////////////////////////////////////////////////////
// Restore FindResource

#ifdef FindResourceBackup
#define FindResource FindResourceBackup
#endif



This is obviously not ideal, but it gets the code compiling.

Cheers!
Tags:
Steps To Reproduce: - Compile NoesisGUI as a static lib
- Include Noesis Headers
- Try to call FindResource(...). It'll throw a compile error.
Additional Information:
Attached Files:
Notes
(0006384)
jsantos   
2020-05-20 10:38   
Yes, windows.h again.... :(

Problem is, we want SpinMutex and all headers to be inline (for performance) so what I am going to do is just copying the definitions inside windows.h and put exactly what I need instead of doing include windows.

We will try to solve this in 3.0.1 (3.0.0 is locked now)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1696 [NoesisGUI] C++ SDK minor always 2020-05-24 19:53 2020-05-28 11:24
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: Uninitialised variable in RenderTree
Description: Hi guys,

Just another tiny issue. I'm trying to debug an issue on our local build where the render tree is accessing a dodgy mRoot pointer. Now, this is most likely not the problem, but I noticed that the mRoot property is not iniailised to nullptr. So when it breaks it ends up giving me random addresses. I've fixed it locally by simply initialising mRoot to null in the initialiser list:

RenderTree::RenderTree(RenderDevice* device): mDevice(device), mCachedPathContext(0),
    mRoot(nullptr), // @Sumo SPH - Initialised the root
    mOffscreenIndex(0), mOffscreenNodeParent(-1), mDebugFlags(0), mFlags(0), mFrameCount(0),
    mRenderNodeAllocator(sizeof(RenderNode), 64)

Also, the projection matrix is not initialised to identity matrix, but I've not seen this cause any issues.

Cheers,

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1701 [NoesisGUI] Unity3D block sometimes 2020-05-27 06:22 2020-05-28 11:23
Reporter: samc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Windows
Summary: Unity crash 50% of the time entering play mode after 3.0.0 upgrade
Description: First entrance into play mode is almost always ok; but the 2nd time I tried play mode it seems to crash most of the time. Call stack unity gives me looks like this:

0x00007FFD39229491 (Noesis) TemplateBindingExtension_Property_get
0x00007FFD3922952A (Noesis) TemplateBindingExtension_Property_get
0x00007FFD3935688C (Noesis) Noesis_RegisterLogCallback
0x00007FF7C7A107DE (Unity) GfxDeviceWorker::RunCommand
0x00007FF7C7A185FC (Unity) GfxDeviceWorker::RunExt
0x00007FF7C7A189E8 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF7C88AFE53 (Unity) Thread::RunThreadWrapper
0x00007FFDA1BD7BD4 (KERNEL32) BaseThreadInitThunk
0x00007FFDA2E0CE51 (ntdll) RtlUserThreadStart
Tags: Unity
Steps To Reproduce: 1) Enter play mode
2) Exit play mode
3) Re-enter play mode
4) Repeat until crash
Additional Information:
Attached Files: Crash_2020-05-27_041253606.zip (961,611 bytes) 2020-05-27 06:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1239&type=bug
Crash_2020-05-27_214010072.zip (969,913 bytes) 2020-05-27 23:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1243&type=bug
Crash_2020-05-27_213622401.zip (658,417 bytes) 2020-05-27 23:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1244&type=bug
Crash_2020-05-28_000428086.zip (912,966 bytes) 2020-05-28 02:08
https://www.noesisengine.com/bugs/file_download.php?file_id=1245&type=bug
Notes
(0006395)
sfernandez   
2020-05-27 14:03   
Hi Sam, do you have a way to reproduce this with a small sample or one of our samples?
From the callstack I see it is happening when it starts to render, and our view doesn't seem to be correctly initialized.
(0006396)
sfernandez   
2020-05-27 16:48   
In case there is no easy way to reproduce this outside your project I prepared a debug version of our library with some extra logs to help us narrow the source of the problem.
Could you please try again using this library? https://drive.google.com/file/d/1buzExMRV-gujPsscWWI9G_KQJoRBbmrF/view?usp=sharing
To enable the logging go to NoesisSettings and set "Log Verbosity" to "Normal" so our logs are output to Editor.log .

Thanks for your collaboration.
(0006400)
samc   
2020-05-27 23:43   
I got a crash immediately upon starting unity with the DLL you gave me. Re-ran and no crash. Not sure why?

However, I then tried play mode and got the same crash as before. I've attached both crash reports here.

Will try to see what's going on and if I can make a smaller repro case.
(0006401)
samc   
2020-05-27 23:44   
Forgot to mention it, but I did turn the logging level to "normal" as advised.
(0006402)
sfernandez   
2020-05-28 01:07   
I generated a new library with more logs on the code that seems to be the cause of the problem.
Could you please check again: https://drive.google.com/file/d/19ivzgVZ4jq2gQ57BIIzhzss0EBABA_b4/view?usp=sharing

Sorry for the inconvenience.
(0006403)
samc   
2020-05-28 02:08   
Ok, attached the crash. Relevant logs:

[noesis] 'Assets/Scripts/Runtime/Client/UI/Themes/TorchTheme.Colors.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/Themes/TorchTheme.Brushes.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/Themes/TorchTheme.Fonts.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/Themes/TorchTheme.Styles.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/Themes/TorchTheme.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUD Icons.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUD Icons.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUD Templates.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDInteractView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDDevStatsView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDEquipmentSwapView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDAbilityView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDAbilityView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDAbilityView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDAbilityView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDAbilityView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDGameStateView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUDPaperDollView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/Ascension Templates.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/AscensionMapView.xaml' loaded
[noesis] 'Assets/Scripts/Runtime/Client/UI/HUD/HUD.xaml' loaded
[noesis] View.UpdateRoot: 1
[noesis] Renderer.UpdateRenderTree
[noesis] Renderer.RendererQueue: Read=0, Write=0
[noesis] RenderTree.NeedsOffscreen
(0006404)
samc   
2020-05-28 02:15   
We have a few modifications to the Noesis C# code; I don't think these are the cause but I'm not 100% sure (sorry I wasn't more clear about this earlier).

We have added an option so we can explicitly tell our Noesis View when to update rather than in LateUpdate() (our game is written in DOTS so we needed a custom place to trigger the update). The other change is that we added a couple methods on NoesisView so we could render from a custom SRP render pass.

Here is the relevant code changes we made:

Noesis View:

    public void RenderOffScreenHD(CommandBuffer cmd)
    {
        if (_uiView != null && _visible)
        {
            NoesisRenderer.RenderOffscreen(_uiView, cmd);
        }
    }
    public void RenderOnScreenHD(CommandBuffer cmd)
    {
        if (_uiView != null && _visible)
        {
            NoesisRenderer.RenderOnscreen(_uiView, true, cmd);
            _updatePending = true;
        }
    }


Our custom render pass:


using UnityEngine.Rendering;
using UnityEngine.Rendering.HighDefinition;
public abstract class NoesisRenderPass : CustomPass
{
    protected NoesisView View;
    protected override void Execute(ScriptableRenderContext renderContext, CommandBuffer cmd, HDCamera camera, CullingResults cullingResult)
    {
        if (View == null)
        {
            View = camera.camera.GetComponent<NoesisView>();
        }
    }
}
public class NoesisOnScreenRenderPass : NoesisRenderPass
{
    protected override void Execute(ScriptableRenderContext renderContext, CommandBuffer cmd, HDCamera camera, CullingResults cullingResult)
    {
        base.Execute(renderContext, cmd, camera, cullingResult);
        if (View != null)
        {
            View.RenderOnScreenHD(cmd);
        }
    }
}
public class NoesisOffScreenRenderPass : NoesisRenderPass
{
    protected override void Execute(ScriptableRenderContext renderContext, CommandBuffer cmd, HDCamera camera, CullingResults cullingResult)
    {
        base.Execute(renderContext, cmd, camera, cullingResult);
        if (View != null)
        {
            View.RenderOffScreenHD(cmd);
        }
    }
}

I am trying to make a minimal example that takes advantage of these changes to see if that reproduces the bug because just using 2019.3.14f1 with the default samples seems to be solid :(
(0006406)
samc   
2020-05-28 07:00   
We removed all the custom render code we had added (not necessary anymore anyhow), but we still hit the crash.

We're happy to debug further here but we'll need to build a debug version of Noesis. I think we might have source code access.
(0006407)
sfernandez   
2020-05-28 09:47   
Thanks for the help debugging this.
The logs confirmed my suspicions and I have a clear view on what is happening.
We'll fix it for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1699 [NoesisGUI] Unity3D minor always 2020-05-26 13:15 2020-05-26 13:17
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Any
Summary: Application resources can't use StaticResource between merged dictionaries
Description: Given the following Resources.xaml used as Application Resources in Unity:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Colors.xaml"/>
        <ResourceDictionary Source="Brushes.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

If Brushes.xaml uses a StaticResource defined in Colors.xaml it won't work.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1698 [NoesisGUI] C++ SDK minor always 2020-05-26 12:19 2020-05-26 13:12
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.1  
    Target Version: 3.0.1  
Platform: Windows
Summary: Win32Display not working on Windows 7
Description: In NoesisGUI 3.0 we added a dependency to shcore.lib that broke Windows 7 compatibility.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1345 [NoesisGUI] Documentation feature have not tried 2018-11-21 13:01 2020-05-25 10:59
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Add tutorial about Visual States
Description: Write a proper tutorial explaining how Visual States work.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1641 [NoesisGUI] C++ SDK minor have not tried 2020-03-18 17:18 2020-05-25 10:58
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Assert focusing the selected item in a ListBox via a Style trigger
Description: Using a Trigger+Action to focus an item in a list when it gets selected is raising an assert because a selection is occurring inside another selection change:

<Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
  <Setter Property="Template" Value="{StaticResource ListBoxItemTemplate}"/>
  <Setter Property="noesis:StyleInteraction.Triggers">
    <Setter.Value>
      <noesis:StyleTriggerCollection>
        <ei:DataTrigger
            Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}"
            Value="True">
          <noesis:SetFocusAction/>
        </ei:DataTrigger>
      </noesis:StyleTriggerCollection>
    </Setter.Value>
  </Setter>
</Style>


The callstack of the assert:

>>> MyExe.exe!Noesis::Selector::InternalSelectRange(int start, int end) Line 660   C++
    MyExe.exe!Noesis::ListBox::SingleSelection(Noesis::ListBoxItem * lbi) Line 146   C++
    MyExe.exe!Noesis::ListBox::ItemClicked(Noesis::ListBoxItem * lbi, bool toggleSelection, bool shiftKeyDown, bool ctrlKeyDown) Line 305   C++
    MyExe.exe!Noesis::ListBox::ItemClicked(Noesis::ListBoxItem * lbi, bool toggleSelection) Line 284   C++
    MyExe.exe!Noesis::ListBoxItem::OnGotFocus(const Noesis::RoutedEventArgs & e) Line 195   C++
    MyExe.exe!Noesis::UIElement::OnIsFocusedChanged(const Noesis::DependencyPropertyChangedEventArgs & e) Line 2807   C++
    MyExe.exe!Noesis::UIElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 2003   C++
    MyExe.exe!Noesis::FrameworkElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1636   C++
    MyExe.exe!Noesis::Control::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 442   C++
    MyExe.exe!Noesis::ContentControl::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 146   C++
    MyExe.exe!Noesis::ListBoxItem::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 120   C++
    MyExe.exe!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155   C++
    MyExe.exe!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797   C++
    MyExe.exe!Noesis::DependencyObject::SetValue_<bool>(Noesis::Int2Type<0> __formal, const Noesis::DependencyProperty * dp, bool value, Noesis::Value::Destination destination) Line 168   C++
    MyExe.exe!Noesis::DependencyObject::SetReadOnlyProperty<bool>(const Noesis::DependencyProperty * dp, bool value) Line 62   C++
    MyExe.exe!Noesis::Keyboard::Focus(Noesis::UIElement * element, bool askOld, bool askNew, bool canBeNull) Line 442   C++
    MyExe.exe!Noesis::Keyboard::Focus(Noesis::UIElement * element) Line 149   C++
    MyExe.exe!Noesis::UIElement::Focus() Line 453   C++
    MyExe.exe!NoesisApp::SetFocusAction::Invoke(Noesis::BaseComponent * __formal) Line 30   C++
    MyExe.exe!NoesisApp::TriggerAction::CallInvoke(Noesis::BaseComponent * parameter) Line 47   C++
    MyExe.exe!NoesisApp::TriggerBase::InvokeActions(Noesis::BaseComponent * parameter) Line 76   C++
    MyExe.exe!NoesisApp::DataTrigger::Evaluate() Line 99   C++
    MyExe.exe!NoesisApp::DataTrigger::EvaluateBindingChange() Line 81   C++
    MyExe.exe!NoesisApp::PropertyChangedTrigger::OnBindingChanged(Noesis::DependencyObject * d, const Noesis::DependencyPropertyChangedEventArgs & __formal) Line 70   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::FreeFuncStub<void (__cdecl*)(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::Invoke(Noesis::DependencyObject * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 391   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::DependencyObject *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::DependencyObject * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 155   C++
    MyExe.exe!Noesis::DependencyObject::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 513   C++
    MyExe.exe!Noesis::Freezable::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & e) Line 237   C++
    MyExe.exe!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155   C++
    MyExe.exe!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797   C++
    MyExe.exe!Noesis::ValueStorageManagerImpl<Noesis::Ptr<Noesis::BaseComponent> >::SetValue(Noesis::DependencyObject * dob, const Noesis::DependencyProperty * dp, Noesis::BaseComponent * value, unsigned char priority, Noesis::Expression * expression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination) Line 234   C++
    MyExe.exe!Noesis::ValueStorageManager::SetValueObject(Noesis::DependencyObject * dob, const Noesis::DependencyProperty * dp, Noesis::BaseComponent * value, unsigned char priority, Noesis::Expression * expression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination) Line 40   C++
    MyExe.exe!Noesis::DependencyProperty::SetValueObject(Noesis::DependencyObject * obj, Noesis::BaseComponent * value, unsigned char priority, Noesis::Expression * expression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination) Line 210   C++
    MyExe.exe!Noesis::DependencyObject::InternalSetExpression(const Noesis::DependencyProperty * dp, Noesis::Expression * newExpression, unsigned char priority) Line 599   C++
    MyExe.exe!Noesis::DependencyObject::InternalInvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 981   C++
    MyExe.exe!Noesis::DependencyObject::InvalidateProperty(const Noesis::DependencyProperty * dp, unsigned char priority) Line 218   C++
    MyExe.exe!Noesis::BindingExpression::OnDependencyPropertyChanged(Noesis::BaseComponent * sender, const Noesis::DependencyPropertyChangedEventArgs & args) Line 1747   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::MemberFuncStub<Noesis::BindingExpression,void (__cdecl Noesis::BindingExpression::*)(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 465   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 155   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::MultiDelegate::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 577   C++
    MyExe.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::DependencyPropertyChangedEventArgs const &)>::operator()(Noesis::BaseComponent * <args_0>, const Noesis::DependencyPropertyChangedEventArgs & <args_1>) Line 155   C++
    MyExe.exe!Noesis::DependencyObject::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 514   C++
    MyExe.exe!Noesis::Visual::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 766   C++
    MyExe.exe!Noesis::UIElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1887   C++
    MyExe.exe!Noesis::FrameworkElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1636   C++
    MyExe.exe!Noesis::Control::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 442   C++
    MyExe.exe!Noesis::ContentControl::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 146   C++
    MyExe.exe!Noesis::ListBoxItem::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 120   C++
    MyExe.exe!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155   C++
    MyExe.exe!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797   C++
    MyExe.exe!Noesis::DependencyObject::SetValue_<bool>(Noesis::Int2Type<0> __formal, const Noesis::DependencyProperty * dp, bool value, Noesis::Value::Destination destination) Line 168   C++
    MyExe.exe!Noesis::DependencyObject::SetValue<bool>(const Noesis::DependencyProperty * dp, bool value) Line 47   C++
    MyExe.exe!Noesis::Selector::SetIsSelected(Noesis::DependencyObject * element, bool value) Line 81   C++
    MyExe.exe!Noesis::Selector::OnItemSelected(Noesis::SelectionChangedEventArgs & e, Noesis::BaseComponent * item, int index) Line 1003   C++
    MyExe.exe!Noesis::Selector::UpdateSingleSelectedList(Noesis::SelectionChangedEventArgs & e, Noesis::BaseComponent * selectedItem, int selectedIndex) Line 913   C++
>>> MyExe.exe!Noesis::Selector::OnSelectedIndexChanged(int oldIndex, int newIndex) Line 1048   C++
    MyExe.exe!Noesis::Selector::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 559   C++
    MyExe.exe!Noesis::ListBox::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 71   C++
    MyExe.exe!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155   C++
    MyExe.exe!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797   C++
    MyExe.exe!Noesis::DependencyObject::SetValue_<int>(Noesis::Int2Type<0> __formal, const Noesis::DependencyProperty * dp, int value, Noesis::Value::Destination destination) Line 168   C++
    MyExe.exe!Noesis::DependencyObject::SetValue<int>(const Noesis::DependencyProperty * dp, int value) Line 47   C++
    MyExe.exe!Noesis::Selector::SetSelectedIndex(int index) Line 112   C++
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1681 [NoesisGUI] C# SDK minor always 2020-05-07 17:50 2020-05-25 10:56
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0.0  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0  
Platform: Any
Summary: ImageBrush with reloaded texture (through RaiseTextureChanged) doesn't recalculate its viewport/viewbox properly
Description: Hi guys,

RaiseTextureChanged provides a great mechanism for delayed texture loading.
So far it works perfectly well except a single case I've noticed.
We have a resource like this:

   <ImageBrush x:Key="WidgetBackgroundImageTexture"
                ImageSource="/UI/Images/Backgrounds/WidgetBackground.png"
                TileMode="Tile"
                Stretch="Uniform"
                Viewport="0,0,8,8"
                Viewbox="0,0,12,12"
                ViewboxUnits="Absolute"
                ViewportUnits="Absolute" />

Unfortunately, this ImageBrush doesn't react to the texture reloading properly.
I've ensured that the new texture is loaded by NoesisGUI (I see it's actually replacing my temporary placeholder magenta texture with something else) but Viewbox/Viewport is not recalculated so the tiling is wrong.

Please let me know if I can help with this bug further.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Good.jpg (1,215,008 bytes) 2020-05-07 17:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1227&type=bug
Bad.jpg (1,207,506 bytes) 2020-05-07 17:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1228&type=bug
Screenshot at 02-12-43.jpg (17,681 bytes) 2020-05-12 00:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1230&type=bug
Screenshot at 02-15-38.jpg (32,825 bytes) 2020-05-12 00:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1231&type=bug
Notes
(0006338)
sfernandez   
2020-05-09 00:00   
Is this something you can reproduce always?
Because it seems to be working fine for me with your game v0.26.8.20 and our RC5.
Is it normal that if I modify the image and save it, then the game shows the "COMPILING" message and reloads?
Anyway, before reloading I can see the background image is tiled correctly.
(0006339)
ai_enabled   
2020-05-09 00:15   
(Last edited: 2020-05-09 00:17)
The current game version doesn't have image reloading implemented for NoesisGUI yet. It simply invokes full reloading (scripts + UI, with purging our NoesisTextureProvider's cache). That's why you cannot reproduce the issue.

If you want to check, please use this Editor build https://www.dropbox.com/s/ad95yu22vt6orqr/CryoFall_Editor_v0.26.8.27_NoesisGUI_3.0.0rc4.7z?dl=0 (built with RC4)
It also doesn't have hot reloading for image file changes. But it's using `RaiseTextureChanged` for each image that could not be provided to NoesisGUI instantly through `LoadTexture` method of TextureProvider's implementation. (All of them are cannot be provided instantly in this build. So I've implemented async texture loading for NoesisGUI TextureProvider)

Also, `GetTextureInfo` method of TextureProvider's implementation will provide width=0 height=0 for missing files and width=1 height=1 for existing image files that are not yet loaded in the cache (if they're loaded it will provide actual width and height).

So far it works perfectly well for every image used in the UI except the ImageBrush x:Key="WidgetBackgroundImageTexture"

I've verified that for "/UI/Images/Backgrounds/WidgetBackground.png" after `RaiseTextureChanged` NoesisGUI does request the `GetTextureInfo()` method (and collects result with width=8 and height=8) and then does `LoadTexture()` for it. The texture is loaded properly (it was magenta texture initially, and I clearly see it's no longer a magenta texture), but the tiling is not updated.

Regards!

(0006347)
ai_enabled   
2020-05-12 00:14   
Please check the main menu. There is another but similar issue when the texture has incorrect rendering (incorrect stretching) in Image object after reloading. I've tried manually setting Image width or/and height but it doesn't help.

<Image Source="/UI/Images/Logo/logo_cryofall_128.png"
                                               Grid.Column="0"
                                               Margin="10,5,40,5"
                                               Stretch="Uniform"
                                               SnapsToDevicePixels="False" />

file location: Core.cpk\UI\Controls\Menu\MainMenuOverlay.xaml
(0006348)
ai_enabled   
2020-05-12 00:15   
Here is the screenshot:
(0006349)
ai_enabled   
2020-05-12 00:16   
(Last edited: 2020-05-12 00:46)
How should it look:
(if you use Ctrl+F5 it will look this way as our texture provider will not use reloading and instantly provide the proper texture size by using the cached DX Texture2D object)

UPD. I've checked the whole game and there are no other cases of this issue. Even though we're using Image Stretch in several other places.

(0006350)
ai_enabled   
2020-05-12 00:33   
No priority with this as I believe it would be not right to report to NoesisGUI 1x1 size as it doesn't result in the correct layout immediately which might be essential in some cases (it's weird when for example the main menu layout is changed as the images are loaded asynchronously).
When providing actual size to NoesisGUI it works properly and likely will not cause any other issues. Calculating an actual size is a slight and reasonable overhead and it's anyway much better than how it was before NoesisGUI supported async texture loading with our texture provider.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1693 [NoesisGUI] C++ SDK minor N/A 2020-05-22 12:00 2020-05-22 13:53
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: No 3.0.0 SVN tag
Description: Hi guys,

Congratulations on the release of 3.0!

I've just had a quick look in the source repository and have noticed that there is no tag for 3.0. I'm currently synced to the head revision but would obviously prefer to sync to an official tag so I'm working from the same revision ID as the official 3.0 release. Is there any chance the version could be tagged in SVN so I can sync to that?

Much appreciated!

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006387)
jsantos   
2020-05-22 13:53   
Already tagged, sorry about it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1691 [NoesisGUI] C# SDK major random 2020-05-19 18:41 2020-05-19 21:18
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Invalid License Shown at Random
Description: I am getting random "invalid license" overlays for a WebGL application. See screenshot. I'm using my license (not MBI's) for this application.

Tags:
Steps To Reproduce: When I rapidly click UI buttons (very rapid -- spam) the overlay appears!

Additional Information:
Attached Files: RandomLicenseError.png (178,735 bytes) 2020-05-19 18:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1236&type=bug
Notes
(0006378)
stonstad   
2020-05-19 18:42   
v3.0.0rc7


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1680 [NoesisGUI] Unity3D minor have not tried 2020-05-07 12:55 2020-05-11 14:24
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: macOS
Summary: Missing Info.plist on Noesis.bundle at macOS
Description: Since macOS Catalina requires additional code signing and notarization process you should include the Info.plist file in your unity package distribution, otherwise the code signing process will fail.
In my scenario, I'm embedding the unity output app into another wrapper app and originally Xcode could not sign the Noesis.bundle since the Info.plist could not be found.
I've created a simple Info.plist file, added it under the Noesis.bundle\Contents folder and the issue was resolved

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1972
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006345)
jsantos   
2020-05-11 14:24   
Thanks for the feedback. We also notarised the bundle


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1620 [NoesisGUI] Unity3D major always 2020-01-16 16:15 2020-05-08 12:32
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: GC Allocations #1
Description: In 2.2.6 I am seeing more per-frame allocations than 2.2.5. Specifically, the new dispatcher allocates. NoesisView.LateUpdate() is also allocating. I am investigating on my side to try to understand to what extent this is something I could be causing. Screenshot enclosed of allocations and corresponding stacktrace.

- View.RaiseRendering() - ObjectEqualityComparer.
- Extend.FrameworkElementMeasure()
- Extend.FrameworkElementArrange()

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GC Allocations 1.PNG (68,097 bytes) 2020-01-16 16:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1151&type=bug
GC Allocations 2.png (39,983 bytes) 2020-01-16 16:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1152&type=bug
No Alloc.PNG (4,130,831 bytes) 2020-01-21 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1153&type=bug
Alloc wNoesis.PNG (3,976,413 bytes) 2020-01-21 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1154&type=bug
No Alloc-2.PNG (4,130,831 bytes) 2020-01-21 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1155&type=bug
Alloc wNoesis-2.PNG (3,976,413 bytes) 2020-01-21 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1156&type=bug
Notes
(0006077)
stonstad   
2020-01-16 16:16   
(Last edited: 2020-01-16 17:43)
Encl. GC Allocations #2. DispatcherOperation.Invoke(). As it is new, I do not directly use the Noesis dispatcher directly in my code.

(0006078)
stonstad   
2020-01-21 16:48   
For testing, all UI is tied to one GameObject node to simplify enabling and disabling Noesis UI.

Encl. Alloc wNoesis.png. Screenshot of Stellar Conquest with Noesis enabled.
Encl. No Alloc.png Screenshot of Stellar Conquest with Noesis disabled.

Screenshots show significant allocation in Noesis, some of it new in 2.2.6. I definitely appreciate new features planned for 3.0, but I feel this is a barrier for commercial success in PC/console gaming.
(0006183)
stonstad   
2020-04-09 17:35   
Hello -- I am just reaching out to see if there has been any work done around these GC allocations? I haven't rerun my tests w/ Beta 6.

If anything has changed please let me know and I'll rerun. I'm holding off on upgrading Stellar Conquest to v3.x until GC allocations are addressed.

Thanks,
Shaun
(0006232)
sfernandez   
2020-04-21 16:54   
In 3.0 there shouldn't be any remaining GC Allocs.
There were some related to our DispatcherSynchronizationContext incorrectly being used in Unity.
We also fixed the allocs generated by Rendering event and Measure/Arrange.
(0006235)
stonstad   
2020-04-22 16:51   
Outstanding news, thank you Sergio! Stellar Conquest has over 100 screens and user controls, which always makes for a good test. I'll get it converted to B8 and share what I see. Thank you for making this change -- I'm super excited!
(0006248)
stonstad   
2020-04-23 20:16   
Sergio,

The allocations caused by using OnGUI in NoesisView.cs remain. Noesis should not be using OnGUI external to the editor because it is not designed for production use.

See https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1867&p=10600&hilit=ongui#p10600

According to Unity:

"The Immediate Mode GUI system is commonly used for:

Creating in-game debugging displays and tools.
Creating custom inspectors
for script components.
Creating new editor windows and tools to extend Unity itself.

The IMGUI system is not generally intended to be used for normal in-game user interfaces that players might use and interact with."
(0006333)
jsantos   
2020-05-08 12:32   
I am going to mark this as solved. @stonstad could you please create a new ticket about OnGUI events and GC allocs?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1661 [NoesisGUI] C# SDK major always 2020-04-20 17:53 2020-05-08 10:37
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: VisualStateManager issues with transitions, initial state name through databinding
Description: Hi guys:

1. useTransitions: false in GoToState/GoToElementState seems to be broken—please verify. I was able to reproduce this issue consistently but it's hard to provide a test sample right now.

2. another problem is that when the initial data binding applies the VSM is using the transition to the bound state name. In 2.2 and before it transferred to the initial state without the transition.

      <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="VisibilityStates">
                <VisualStateGroup.Transitions>
                    <VisualTransition To="Collapsed"
                                      GeneratedDuration="0:0:0.25" />
                    <VisualTransition To="Visible"
                                      GeneratedDuration="0:0:0.25" />
                </VisualStateGroup.Transitions>

                <VisualState x:Name="Visible" />
                <VisualState x:Name="Collapsed">
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                         To="0" />
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <i:Interaction.Triggers>
            <ei:DataTrigger Binding="{Binding VisualStateName}" Value="Visible">
                <ei:GoToStateAction StateName="Visible" />
            </ei:DataTrigger>
            <ei:DataTrigger Binding="{Binding VisualStateName}" Value="Collapsed">
                <ei:GoToStateAction StateName="Collapsed" />
            </ei:DataTrigger>
        </i:Interaction.Triggers>


Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006272)
ai_enabled   
2020-04-24 23:44   
Guys, do you need anything from me to help investigate this issue?
(0006273)
ai_enabled   
2020-04-25 02:06   
So the workaround I've used is to revert the default state to "Collapsed" (so the layout root by default has Opacity="0" and when it needs to go to collapsed state there is no transition as it's already in it). It's just a weird workaround.
(0006276)
sfernandez   
2020-04-26 12:53   
The issue is clear, no need for more info to investigate it, thanks.
(0006312)
sfernandez   
2020-05-04 14:15   
One thing I noticied in your xaml is that you are using DoubleAnimation to define the VisualState, and you are not setting the Duration, so it takes the default value of 1 second. Is it possible that transition is what you are seeing?

I created this test in WPF and we behave exactly like them: https://www.noesisengine.com/xamltoy/561762d3aa360ac9478be868780d5ec0
(0006330)
ai_enabled   
2020-05-08 01:05   
Thank you for your help, Sergio!
It works fine with both DoubleAnimation (when I've added Duration="0") to it and with DoubleAnimationUsingKeyFrames (when I've added KeyTime="0" to the key frame).
For some reason it was not required in NoesisGUI 2.x and before.

You can close this ticket.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1671 [NoesisGUI] Unity3D major always 2020-04-27 20:01 2020-05-07 20:09
Reporter: rockhound Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Adding elements to a panel and removing them is not de-allocating memory
Description: If we check ControlGallery's sample project it seems like memory allocated reported by NoesisSettings in Noesis' Unity Package is going up and down based on which elements are being displayed. Seems like a simple Child = null is enough to trigger the unloading of those resources.

On the other hand in the example provided here, ControlGallery sample itself as well as the Inventory sample are being added to a Grid and later removed but reported memory allocated is not going down.
Tags: C#, Memory, Unity
Steps To Reproduce: - Download Unity project at: https://we.tl/t-gMO412HYXq
- Open downloaded Unity project and "Reimport" Assets/Resources/GUI folder to make sure xaml files are imported correctly
- Keep an inspector open with NoesisSettings selected
- Press play on scene Assets/Scenes/SampleScene
- On the open scene:
-- Pressing on the first 2 buttons removes all elements added to grid and then loads chosen sample and adds to grid
-- Pressing on the 3rd button simply removes all elements from grid
- Watch allocated memory grow after repeatedly pressing them.
Additional Information:
Attached Files: MainWindow.xaml.cs (8,312 bytes) 2020-05-01 15:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1224&type=bug
Notes
(0006306)
sfernandez   
2020-05-01 15:42   
Some of the leaks come from event hooking, there is a known problem we described here: https://www.noesisengine.com/docs/3.0/Gui.Core.EventsTutorial.html#weak-events-in-c
Changing ControlsGallery sample code to use a WeakReference as bridge for event hooking makes that sample to properly release memory (you can verify it if you add a GC.Collect + GC.WaitForPendingFinalizers to your ClearAllScreens function).

For the Inventory sample there are other issues I was not able to identify yet, we'll continue working on that.
(0006307)
sfernandez   
2020-05-01 15:43   
ControlGallery MainWindow.xaml code behind updated.
(0006318)
sfernandez   
2020-05-05 00:52   
After more investigation I found interactivity classes are also producing memory leaks.
We will fix all the problems related to those classes for the next release.
(0006321)
rockhound   
2020-05-05 18:35   
(Last edited: 2020-05-05 18:39)
Thanks sfernandez. Was about to post reporting that replacing event hooks with WeakReferences didn't show any improvements in our project's memory usage. We are looking forward for your next release.

(0006322)
jsantos   
2020-05-05 21:23   
Already fixed in our repository, will be available tomorrow in RC5


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1676 [NoesisGUI] Unity3D major always 2020-04-30 17:36 2020-05-07 12:47
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Noesis WebGL Development Build Fails with Errors - Unresolved Noesis Symbols
Description: error: unresolved symbol: Noesis_RenderDeviceMTL_SetOffScreenCommandBuffer
error: unresolved symbol: Noesis_RenderDeviceMTL_SetOnScreenEncoder
error: unresolved symbol: Noesis_RenderDevice_CreateMTL

Aborting compilation due to previous errors
Tags:
Steps To Reproduce: 1. Create Unity WebGL build with 'development' checkbox checked.
2. Unity console shows following error after attempting a build:

Failed running "C:/Program Files/Unity/Hub/Editor/2019.3.9f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe" -E "C:/Program Files/Unity/Hub/Editor/2019.3.9f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten\emcc" @"C:\Users\stons\Source\MBI.CustomerSelect.Unity\MBI.CustomerSelect.Unity\MBI.CustomerSelect.Unity.Project\Assets\..\Temp\emcc_arguments.resp"

stdout:
stderr:warning: unexpected number of arguments 1 in call to '__cxa_pure_virtual', should be 0warning: unexpected number of arguments 2 in call to '_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0warning: unexpected number of arguments 4 in call to '_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0warning: unexpected number of arguments 5 in call to '_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0warning: unexpected number of arguments 4 in call to '_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0warning: unexpected number of arguments 2 in call to '_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0warning: unexpected number of arguments 3 in call to
'_ZN6il2cpp6icalls8mscorlib6System6String22RedirectToCreateStringEv', should be 0

error: unresolved symbol: Noesis_RenderDeviceMTL_SetOffScreenCommandBuffer
error: unresolved symbol: Noesis_RenderDeviceMTL_SetOnScreenEncoder
error: unresolved symbol: Noesis_RenderDevice_CreateMTL

Aborting compilation due to previous errors | undefinedTraceback (most recent call last): File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 3063, in <module> sys.exit(run()) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 1780, in run final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\shared.py", line 2274, in emscripten emscripten._main(cmdline) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 2233, in _main return temp_files.run_and_clean(lambda: main( File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\tempfiles.py", line 93, in run_and_clean return func() File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 2238, in <lambda> DEBUG=DEBUG, File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 2164, in main temp_files=temp_files, DEBUG=DEBUG) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 86, in emscript glue, forwarded_data = compiler_glue(metadata, libraries, compiler_engine, temp_files, DEBUG) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 218, in compiler_glue glue, forwarded_data = compile_settings(compiler_engine, libraries, temp_files) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten.py", line 541, in compile_settings cwd=path_from_root('src'), error_limit=300) File "C:\Program Files\Unity\Hub\Editor\2019.3.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\jsrun.py", line 132, in run_js raise Exception('Expected the command ' + str(command) + ' to finish with return code ' + str(assert_returncode) + ', but it returned with code ' + str(proc.returncode) + ' instead! Output: ' + str(ret)[:error_limit])Exception: Expected the command ['C:/Program Files/Unity/Hub/Editor/2019.3.9f1/Editor/Data\\Tools\\nodejs\\node.exe', '--stack_size=8192', '--max-old-space-size=4096', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\Emscripten\\src\\compiler.js', 'C:\\Users\\stons\\AppData\\Local\\Temp\\tmpw7_08y.txt', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Audio.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Cursor.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Eval.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\FileSystem.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Logging.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Profiler.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\SystemInfo.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\UnetWebSocket.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\Video.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\WebCam.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\lib\\WebRequest.js', 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.3.9f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\Emscripten\\src\\library_pthread_stub.js'] to finish with return code 0, but it returned with code 1 instead! Output: // The Module object: Our interface to the outside world. We import// and export values on it. There are various ways Module can be used:// 1. Not defined. We create it here// 2. A function parameter, function(Module) { ..generated code.. }// 3. pre-run appended it, var Module = {}; ..generated
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Additional Information:
Attached Files:
Notes
(0006317)
stonstad   
2020-05-04 23:05   
I'm experiencing a high number of 'freezes' in a client app that uses WebGL. I don't have insight into the cause, whether it is Unity or Noesis. I am unable to remote connect because debug builds fail with the above error message. Any updates around this one?
(0006325)
jsantos   
2020-05-07 12:47   
We fixed it. Although I am not sure about the plan for WebGL in Unity, the fact that they are stuck in a very old EMSDK (1.38.11 is really old) is not a good sign. We had issues with Development Build and Exceptions in the past. We recommend disable them by default.

https://www.noesisengine.com/docs/Gui.Core.Unity3DTutorial.html#webgl


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1668 [NoesisGUI] Unity3D minor sometimes 2020-04-25 00:07 2020-05-07 01:33
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: NoesisPostProcessor.ImportXaml NullReferneceException After Font Deletion
Description: This code fails after a font is deleted:

            foreach (var dep in xaml.fonts)
            {
                if (File.Exists(dep.source))
                {
                    ImportFont(dep.source, false, false);
                }
            }

NullReferenceException: Object reference not set to an instance of an object
NoesisPostprocessor.ImportXaml (System.String filename, System.Boolean reimport, System.Boolean reload, System.Boolean& changed) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:360)
NoesisPostprocessor.ImportXaml (System.String filename, System.Boolean reimport, System.Boolean reload, System.Boolean& changed) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:353)
NoesisPostprocessor.ImportAssets (System.String[] assets, System.Boolean reload, NoesisPostprocessor+UpdateProgress d) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:55)
NoesisPostprocessor+<>c__DisplayClass4_1.<OnPostprocessAllAssets>b__0 () (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:110)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Delegate.DynamicInvokeImpl (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
System.Delegate.DynamicInvoke (System.Object[] args) (at <437ba245d8404784b9fbab9b439ac908>:0)
UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at <bf679006b1b84db2a5a44842ef13dc36>:0)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NullRef.PNG (81,410 bytes) 2020-04-25 00:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1215&type=bug
Notes
(0006283)
stonstad   
2020-04-27 16:45   
Restarting Unity did not resolve the behavior. I added a null check to the code for 'dep'. Not sure why I am getting this after deleting a font.
(0006324)
jsantos   
2020-05-07 01:33   
Thanks for your great feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1672 [NoesisGUI] Unity3D minor always 2020-04-29 19:03 2020-05-06 22:15
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Noesis Trial Text Upside Down
Description: Install Noesis RC1.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Trial License Text Upside Down.PNG (34,181 bytes) 2020-04-29 19:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1220&type=bug
Notes
(0006300)
jsantos   
2020-04-30 02:53   
Funny, thanks for reporting. �


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1673 [NoesisGUI] Unity3D major always 2020-04-29 19:04 2020-05-06 22:15
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Trial License Key Does Not Work
Description: I registered for a trial. My license key does not activate RC1.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006297)
sfernandez   
2020-04-30 00:39   
Hi, after introducing the license name/key in NoesisSettings you need to restart Unity, because that info is required when Noesis.dll is initialized for the first time.
We added a note indicating that issue for the RC2.

Could you please confirm it works after Unity restart?
(0006299)
jsantos   
2020-04-30 02:52   
I think this should work without having to restart Unity
(0006303)
stonstad   
2020-04-30 16:40   
Restarting resolved the behavior.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1670 [NoesisGUI] Unity3D crash sometimes 2020-04-27 16:54 2020-05-04 13:39
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Noesis.NoesisGUI_PINVOKE:BaseComponent_Release, 'Attempt to access invalid address.'
Description: Different crash behavior from 0001662. Not sure if this is a different manifestation of the same error. This is using the debug library.

0x00007FFE7E2AFD5E (Noesis) Boxed_TimeSpan_GetStaticType
0x00007FFE7E24981C (Noesis) ContentControl_Content_get
0x00007FFE7E246462 (Noesis) ContentControl_Content_get
0x00007FFE7E23C1B6 (Noesis) ContentControl_Content_get
0x00007FFE7E23C374 (Noesis) ContentControl_Content_get
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFE7E0B16D3)
0x00007FFE7E0B16D3 (Noesis) (function-name not available)
0x000001C3266579D7 (Mono JIT Code) (wrapper managed-to-native) Noesis.NoesisGUI_PINVOKE:BaseComponent_Release (intptr)
0x000001C326657893 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Proxies\BaseComponent.cs:62] Noesis.BaseComponent:Release (intptr)
0x000001C32AA04CA3 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\Extend.cs:4429] Noesis.Extend:ReleasePending ()
0x000001C3269BF733 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\Extend.cs:92] Noesis.Extend:Shutdown ()
0x000001C3269BE3D3 (Mono JIT Code) [C:\Users\stons\Source\StellarConquest\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\Extend.cs:37] Noesis.Extend:OnDomainUnload (object,System.EventArgs)
Tags:
Steps To Reproduce: Made changes to a .cs file which triggered a Noesis reload. Encl. editor log, player log, editor crash dump.
Additional Information:
Attached Files: Crash_2020-04-27_144802796.zip (498,555 bytes) 2020-04-27 16:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1217&type=bug
Notes
(0006284)
sfernandez   
2020-04-27 17:07   
I verified is the same bug related with the Rendering event.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1664 [NoesisGUI] C# SDK block always 2020-04-23 20:09 2020-05-01 21:49
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Theming and Resource Dictionary Behavior
Description: What are the breaking changes? I am running into a large number of issues related to theming and UI. Many static resources and naming has changed. The behavior of controls and containers also appear changed. What should a developer be looking for when upgrading from 2.x to 3.x?

Enclosed Screenshot

1) Unexpected purple backgrounds
2) Container layouts seem to have changed to alignment center -- or they are not being respected.
3) Many custom user controls are broken.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Odd Behavior.PNG (3,084,670 bytes) 2020-04-23 20:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1208&type=bug
Notes
(0006246)
stonstad   
2020-04-23 20:10   
For reference, here is how this screen appears before upgrading to v3. https://stellarconquest.com/images/screenshots/08.png
(0006256)
stonstad   
2020-04-23 21:11   
The purple areas are ScrollViewers. Not sure why they are purple, however.
(0006259)
stonstad   
2020-04-23 21:22   
(Last edited: 2020-04-23 21:26)
OK, this was caused by not including any reference to NoesisTheme.Styles.xaml in my XAML resource hierarchy. Previously, I used the built-in Noesis style. Not sure if things should be purple and broken without a style, but at least it makes sense and works now. This ticket is a candidate for closure. Thank you.

--

Update -- issues remain with purple backgrounds on comboboxes and togglebutton. Both controls are broken. I'm still investigating, though.

(0006261)
sfernandez   
2020-04-23 21:37   
(Last edited: 2020-04-23 21:38)
When you see a purple background it means that Template property is falling back to our internal default style.
This is usually a result of defining a local Style that is not based in the style you have defined for your application.

<Style x:Key="CBStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
...
</Style>

You can read more about this in our Themes documentation: https://www.noesisengine.com/docs/3.0/Gui.Core.StylingTutorial.html#default-styles

Please read 3.0 changelog for breaking changes: https://www.noesisengine.com/docs/3.0/Gui.Core.Changelog.html#version-3-0-0b1

(0006262)
stonstad   
2020-04-24 16:05   
Thanks, Sergio. I had styles from 2.x that did not have a key defined. When I defined keys, this fixed up many of the remaining issues.
(0006263)
stonstad   
2020-04-24 16:08   
My apologies -- didn't realize that. I made sure I did it right this time. Thank you.
(0006264)
sfernandez   
2020-04-24 16:13   
(Last edited: 2020-04-24 16:13)
Don't need to apology, there are many new things in this version and is easy to get lost with the changes :)

(0006267)
jsantos   
2020-04-24 17:55   
Sorry about this change stonstad but it was necessary. :)

Many users of Noesis don't create a new theme, they use our default theme. Our default theme in 2.2 is a fallback theme, it is ugly in many aspects and it is using a very small font that is also ugly. Even although everything is ugly, our users use it and they show screenshots of NoesisGUI in internet that are ugly. So, we need to provide a better theme by default. But a better theme implies a bigger one, better fonts, more complex XAMLs, etc. This increases binary size of Noesis and also time for initialization, so we are penalizing the users that care about this.

So, we decided to move our theme from Core to App Framework. In the App framework we don't have restrictions so we created a nice theme with dark/light and accent variations. From the point of view of new users, it is almost the same as before, because all samples work and provide a default theme.

The theme is now available to inspect, it is no hidden in a DLL, so no obscure behaviors or things happening behind the scenes.

Our binary size and performance improved.
(0006269)
stonstad   
2020-04-24 18:27   
(Last edited: 2020-04-24 18:28)
I appreciate the background and I appreciate the added performance. I am going through and finding places where I incorrectly defined XAML, such as not specifying a key or not used based on. In most cases I have it working now -- but there are a few styles that I'm struggling with.

Here is an example of one -- a TextBox. It is pink if I reference the style, below.


<TextBox x:Name="_InputTextBox" Grid.Row="1" Style="{StaticResource Heading3PrimaryTextBox}" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Margin="2, 15, 2, 2"/>

...

<Style x:Key="Heading3PrimaryTextBox" BasedOn="{StaticResource {x:Type TextBox}}" TargetType="{x:Type TextBox}">
 </Style>

I was missing BasedOn. I added it but it remains pink. Removing "Style="{StaticResource Heading3PrimaryTextBox}"" allows it to work.

(0006270)
sfernandez   
2020-04-24 19:53   
Are you defining the styles in your application resources with a key or just the TargetType?

In case you have them with a key, you need to use that in the BasedOn StaticResource.

Application.Resources.xaml:

<ResourceDictionary ...>
  <Style x:Key="SC.TextBoxStyle" TargetType="TextBox">
    ...
  </Style>
  ...
</ResourceDictionary>

MainWindow.xaml:

<UserControl ...>
  <UserControl.Resources>
    <Style x:Key="CustomTextBox" TargetType="TextBox" BasedOn="{StaticResource SC.TextBoxStyle}">
      ...
    </Style>
  </UserControl.Resources>
  ...
</UserControl>
(0006271)
stonstad   
2020-04-24 20:51   
My XAML hierarchy is as follows:

Resources.xaml:

 <ResourceDictionary Source="/Assets/NoesisGUI/Theme/NoesisTheme.Brushes.DarkBlue.xaml" />
        <ResourceDictionary Source="/Assets/NoesisGUI/Theme/NoesisTheme.Fonts.xaml" />
        <ResourceDictionary Source="/Assets/NoesisGUI/Theme/NoesisTheme.Styles.xaml" />
        <ResourceDictionary Source="ResourcesImages.xaml"/>
        <ResourceDictionary Source="ResourcesCommon.xaml"/>
        <ResourceDictionary Source="ResourcesTheme.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

I am defining the style in ResourcesCommon.xaml:
 <Style x:Key="Heading3PrimaryTextBox" BasedOn="{StaticResource {x:Type TextBox}}" TargetType="{x:Type TextBox}">
 </Style>

And then using it in a UserControl like this:

<UserControl>
...
 <TextBox Style="{StaticResource Heading3PrimaryTextBox}"/>
</UserControl>


I understand I have nesting -- but is there something wrong with this hierarchy? I am thinking it is pretty standard for WPF/UWP...
(0006293)
stonstad   
2020-04-28 17:11   
Just to clarify, in the example above (posted on 4/24) the TextBox in question is uninitialized pink. It shouldn't be based on the XAML shared, right? I think my next step is to share a repo project.
(0006295)
sfernandez   
2020-04-28 17:15   
If you could share a repro project it would help, maybe there is a bug and you have nothing wrong on your side.
(0006308)
stonstad   
2020-05-01 21:49   
Yes, I need to get you a repro project. I wonder if what I am seeing here is related to 0001678.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1666 [NoesisGUI] Unity3D minor always 2020-04-24 21:01 2020-05-01 03:22
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: PPAA Behavior
Description: I do not know if this is expected behavior. I do not know if it is broken or there is a setting somewhere to address this.

I have UIs with horizontal dividers created from Rectangles.

A.png. Two rectangle dividers with height=1. PPAA Off.
B.png. Two rectangle dividers with height=1. PPAA On.

A shows one divider.
B shows two dividers but one is larger than the other.

The XAML for A and B is the same. If I change to rectangle height=2, B is larger than A.

The Unity game view is unscaled at 1x. How is consistency in appearance attained?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: A.png (288,311 bytes) 2020-04-24 21:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1213&type=bug
B.png (286,081 bytes) 2020-04-24 21:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1214&type=bug
Notes
(0006279)
jsantos   
2020-04-27 12:35   
PPAA can be manually adjusted (or even disabled) per element

https://www.noesisengine.com/docs/3.0/Gui.Core.AntialiasingTutorial.html

I think for that case you need to disable it.

We slightly change the default values in NoesisGUI 3.0
(0006281)
stonstad   
2020-04-27 16:42   
That's very cool. Keeping it "on" at the top-level and disabling it for these 1px elements achieves the look I was hoping for. You guys rock.

In the docs it says, "Noesis Views always display content in the active render target. Just binding a render target with MSAA enabled will render the UI with antialiasing enabled." FYI, in Unity 2019.x the MSAA checkbox is removed for the standard pipeline. How does one turn on MSAA w/ Noesis?
(0006282)
stonstad   
2020-04-27 16:44   
I'm good with closing this issue. Thank you for the helpful response.
(0006285)
stonstad   
2020-04-27 17:42   
... noesis:Element.PPAAIn="1" noesis:Element.PPAAOut="1"

Separate question, re: PPAAIN/OUT. Should we be able to set this in code? I upgraded to b9 -- I can't seem to find where this is exposed for code.
(0006290)
sfernandez   
2020-04-28 10:31   
I updated C# proxies to expose PPAA In/Out properties (in FrameworkElement) so you can modify them in code.
(0006292)
stonstad   
2020-04-28 17:08   
Sounds good, I'll look for it in a subsequent release. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1662 [NoesisGUI] C# SDK major sometimes 2020-04-21 03:11 2020-04-30 22:23
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: MonoManager Reload Assembly Crashes Editor
Description: Specific to b8 -- happens about once every fifteen minutes. I edit code in VS, alt tab back to Unity and Unity crashes. There is no error message, stack trace, or dump.

Last entry in Editor.log:

Refresh completed in 0.288080 seconds.
RefreshInfo: RefreshV2(ForceSynchronousImport)
RefreshProfiler: Total: 287.914ms
    InvokeBeforeRefreshCallbacks: 0.424ms
    ApplyChangesToAssetFolders: 0.063ms
    WriteModifiedImportersToTextMetaFiles: 0.000ms
    CleanLegacyArtifacts: 0.000ms
    Scan: 68.010ms
    OnSourceAssetsModified: 0.506ms
    UnregisterDeletedAssets: 0.000ms
    InitializeImportedAssetsSnapshot: 3.857ms
    GetAllGuidsForCategorization: 0.457ms
    CategorizeAssets: 98.982ms
    ImportAndPostprocessOutOfDateAssets: 52.279ms (5.089ms without children)
        ImportManagerImport: 28.123ms (1.665ms without children)
            ImportInProcess: 26.424ms
            ImportOutOfProcess: 0.000ms
            UpdateCategorizedAssets: 0.033ms
            RemoteAssetCacheGetArtifact: 0.000ms (0.000ms without children)
                RemoteAssetCacheResolve: 0.000ms
                RemoteAssetCacheDownloadFile: 0.000ms
        CompileScripts: 0.000ms
        PostProcessAllAssets: 12.933ms
        ReloadImportedAssets: 0.001ms
        VerifyAssetsAreUpToDateAndCorrect: 0.000ms
        EnsureUptoDateAssetsAreRegisteredWithGuidPM: 0.849ms
        InitializingProgressBar: 0.001ms
        PostProcessAllAssetNotificationsAddChangedAssets: 0.444ms
        OnDemandSchedulerStart: 0.409ms
        RestoreLoadedAssetsState: 1.585ms
    InvokeProjectHasChanged: 0.000ms
    UpdateImportedAssetsSnapshot: 2.845ms
    ReloadSourceAssets: 0.797ms
    UnloadImportedAssets: 0.137ms
    Hotreload: 55.486ms
    FixTempGuids: 0.004ms
    VerifyGuidPMRegistrations: 0.000ms
    GatherAllCurrentPrimaryArtifactRevisions: 0.873ms
    UnloadStreamsBegin: 0.119ms
    LoadedImportedAssetsSnapshotReleaseGCHandles: 0.753ms
    GetLoadedSourceAssetsSnapshot: 3.080ms
    PersistCurrentRevisions: 0.000ms
    UnloadStreamsEnd: 0.112ms
    Untracked: 1.978ms
Start importing Assets/User Interface/Controls/DimensioningControl.cs using Guid(a2314b3cd57974445ad4c7d7f36621ea) Importer(-1,00000000000000000000000000000000)
Done importing asset: 'Assets/User Interface/Controls/DimensioningControl.cs' (target hash: 'f07f5904a78823c3a754f7acd2a0ecec') in 0.016051 seconds
Start importing Assets/Scripts/Controllers/PropController.cs using Guid(3b85387c0f9888e4593b17e2e9afb691) Importer(-1,00000000000000000000000000000000)
Done importing asset: 'Assets/Scripts/Controllers/PropController.cs' (target hash: 'fee00d0d663275d8278d2c116f8ae614') in 0.017731 seconds
AssetDatabase: script compilation time: 0.029070s
- Starting script compilation
- Starting compile Library/ScriptAssemblies/Assembly-CSharp.dll
- Finished compile Library/ScriptAssemblies/Assembly-CSharp.dll in 1.239845 seconds
- Starting compile Library/ScriptAssemblies/Assembly-CSharp-Editor.dll
- Finished compile Library/ScriptAssemblies/Assembly-CSharp-Editor.dll in 0.315812 seconds
- Finished script compilation in 1.585732 seconds
Reloading assemblies after forced synchronous recompile.
Begin MonoManager ReloadAssembly
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Full Stack Trace.PNG (83,980 bytes) 2020-04-22 18:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1203&type=bug
Unity.dmp (1,621,322 bytes) 2020-04-22 18:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1204&type=bug
Editor.log (354,669 bytes) 2020-04-22 18:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1205&type=bug
Editor-2.log (107,878 bytes) 2020-04-23 20:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1206&type=bug
Crash_2020-04-23_174201910.zip (434,168 bytes) 2020-04-23 20:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1207&type=bug
Stack 04.23.2020.PNG (61,543 bytes) 2020-04-23 21:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1209&type=bug
04.23.2020_NoHeap.dmp (1,743,411 bytes) 2020-04-23 21:13
https://www.noesisengine.com/bugs/file_download.php?file_id=1210&type=bug
04.24.2020.PNG (59,055 bytes) 2020-04-24 17:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1211&type=bug
04.24.2020.dmp (1,897,380 bytes) 2020-04-24 17:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1212&type=bug
04.27.2020.dmp (1,803,749 bytes) 2020-04-27 22:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1218&type=bug
04.27.2020.PNG (71,913 bytes) 2020-04-27 22:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1219&type=bug
Notes
(0006228)
jsantos   
2020-04-21 11:19   
The log doesn't give information. :( We cannot do anything without a dump.

Do you think this is something new for b8?
(0006230)
stonstad   
2020-04-21 14:20   
I understand my observation is anecdotal. However, I am convinced it is caused by B8 because the behavior started immediately after I upgraded the project from B6 to B8. The last entries in the editor log are always the Noesis reload process, which is caused by my external .cs file modification.
(0006231)
sfernandez   
2020-04-21 16:51   
(Last edited: 2020-04-21 17:00)
Is this something I could try to reproduce with the new project you attached or is this happening with Stellar Conquest?

To try to get a dump maybe you can attach Visual Studio debugger to Unity before switching back to Unity (I mean keep it attached always, while working with Unity), sometimes it stops in the debugger and you can generate the dump then.

(0006234)
stonstad   
2020-04-22 16:49   
Yes, it should work with the project I shared -- that project is B4. I'll get a new one ready. The trick will be getting it to crash. It is fairly frequent for me -- about one per 15 minutes. But that's 15 minutes of start/play/.cs edit behavior. I'll get the updated project ready.

Thanks,
Shaun
(0006237)
jsantos   
2020-04-22 16:55   
Thanks Shaun, I wonder also if you could launch the game from Visual Studio and work for 15 minutes. I am sure that way we will be able to get a dump.
(0006238)
stonstad   
2020-04-22 18:57   
Encl. stack trace, log, and dmp for aforementioned behavior.

If you have a Noesis PDB, would that allow me to give you a better stack trace?
(0006239)
stonstad   
2020-04-22 19:02   
Just an update around the behavior aspect. I wrote a test that edits XAML and CS files and alt-tabs between the editor and Unity. I can run hundreds of automated tests without fail and this is the least reliable way to reproduce the crash. If I just 'work' normally and edit files and play/stop as needed, the issue manifests within a few minutes as described above.
(0006240)
sfernandez   
2020-04-23 12:17   
Thanks for the dump, we are investigating the issue. It is related to the Rendering event of the View.
(0006241)
sfernandez   
2020-04-23 13:08   
Could you please try the following library: https://drive.google.com/open?id=1Cy-XY_M5urPW-wK7cTrt3CptBdhrvNk0
(0006244)
stonstad   
2020-04-23 20:01   
I am trying the new library in Stellar Conquest. It is encountering a runtime crash.


=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Crash!!!
(0006245)
stonstad   
2020-04-23 20:03   
I can't use Noesis/Stellar Conquest with the above library. The game crashes consistently on its second screen.
(0006247)
sfernandez   
2020-04-23 20:15   
Sorry, the fix was not correct, please try this:
https://drive.google.com/open?id=1g76hM5EfQ71xCwGfhPN9DH7E-Oysldso
(0006251)
stonstad   
2020-04-23 20:56   
kk, no problem. It is no longer crashing with the 4/23 library. I'll use it and report back on stability.
(0006252)
stonstad   
2020-04-23 21:03   
No change in behavior -- continues to crash with similar call stack.
(0006253)
sfernandez   
2020-04-23 21:05   
Can we get a dump for the new crash?
(0006255)
stonstad   
2020-04-23 21:09   
(Last edited: 2020-04-23 21:09)
It didn't attach in this screen -- I must have pulled a full dump at 5.7GB instead of a minidump and I didn't realize it. One moment while I get a new one. I'm actively working the upgrade to v3 and if you want to send over new versions I can quickly retest. It looks like

(0006257)
sfernandez   
2020-04-23 21:13   
A minidump would be enough to see where the crash is happening.
(0006258)
stonstad   
2020-04-23 21:13   
Encl. 04.23.2020_NoHeap.dmp
(0006260)
sfernandez   
2020-04-23 21:26   
The last dump says you are using Noesis.dll 3.0.0.9073, but the last library I uploaded here: https://drive.google.com/open?id=1g76hM5EfQ71xCwGfhPN9DH7E-Oysldso
has version 3.0.0.9123.
(0006265)
stonstad   
2020-04-24 17:42   
OK, I double-checked that I extracted the DLL from the link shared above.
(0006266)
stonstad   
2020-04-24 17:54   
Not sure if this matters, but I am not extracting the version text file. Just the DLL, perhaps this relates to the version you are seeing?
(0006286)
sfernandez   
2020-04-27 18:40   
I have a new library for you to try, could you do some tests with it?
https://drive.google.com/open?id=1fe0e1M7oRSyTDa410Ds6nqow9nZ_3Y_t

The version text file is not needed, our DLL have the assembly information correctly set, so we know what version was used when the dump was generated.
(0006287)
stonstad   
2020-04-27 22:23   
Using the new assembly... this exception occurred at runtime and it was non-fatal.
(0006288)
stonstad   
2020-04-27 23:29   
I suspect the previous exception is normal and was just a logged NullReferenceException. Sergio, I haven't encountered a crash yet.
(0006289)
sfernandez   
2020-04-27 23:55   
Yes, it is not crashing in Noesis, it looks like a managed exception.
Glad to hear the patch seems to work and you are not getting more crashes.
(0006291)
stonstad   
2020-04-28 17:07   
Thanks, Sergio. Any chance I could get an optimized version of the library? A few screens hang and/or are slow with the debug build.
(0006294)
sfernandez   
2020-04-28 17:13   
Sure, here you are: https://drive.google.com/open?id=19Ek48NJANOu0F1OUqbJEBlAGiVpuFPRo


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1663 [NoesisGUI] Unity3D minor always 2020-04-23 19:20 2020-04-28 10:36
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Unknown type 'CompositeTransform'.
Description: w/ Noesis 3.0b8. I get this XAML error:

Unknown type 'CompositeTransform'. I'm investigating this to see why I might be getting this error now. Is it possible it was removed?


Tags:
Steps To Reproduce:    <Path Height="15" Stretch="Uniform" Fill="#FFFFFFFF" Data="F1 M 78.1398,324.18L 52.5865,298.626C 51.6892,297.728 50.3385,297.459 49.1678,297.946C 47.9971,298.43 47.2305,299.574 47.2305,300.843L 60.6385,326.398L 47.2305,351.952C 47.2305,353.223 47.9971,354.364 49.1678,354.848C 49.5558,355.011 49.9638,355.09 50.3678,355.09C 51.1838,355.09 51.9852,354.77 52.5865,354.171L 78.1398,328.616C 78.7238,328.032 79.0598,327.224 79.0598,326.398C 79.0598,325.572 78.7238,324.764 78.1398,324.18 Z ">
                                        <Path.RenderTransform>
                                            <CompositeTransform Rotation="270" TranslateX="-3" TranslateY="12" />
                                        </Path.RenderTransform>
                                    </Path>
Additional Information:
Attached Files:
Notes
(0006243)
stonstad   
2020-04-23 19:23   
Replacing w/

<TransformGroup>
                                                <TranslateTransform X="-3" Y="12"/>
                                                <RotateTransform Angle="270" />
                                            </TransformGroup>


but would appreciate some commentary on breaking change.
(0006249)
sfernandez   
2020-04-23 20:21   
CompositeTransform is a NoesisGUI extension, so it should include the NoesisGUIExtensions namespace:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
    <Rectangle Fill="Red" Width="400" Height="200">
        <Rectangle.RenderTransform>
            <noesis:CompositeTransform Rotation="40"/>
       </Rectangle.RenderTransform>
    </Rectangle>
</Grid>
(0006250)
stonstad   
2020-04-23 20:49   
Understood, thank Sergio. Is this a change or did it somehow magically work before? I'm OK with change.
(0006254)
sfernandez   
2020-04-23 21:06   
In 2.2 version that class was incorrectly registered without the namespace, so it couldn't be used in Blend and our extensions nuget.
We fixed that for 3.0 version.
(0006268)
jsantos   
2020-04-24 17:57   
One of the few things missing to have final 3.0 is a document about 3D in Noesis. We are on in.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1667 [NoesisGUI] C++ SDK feature N/A 2020-04-24 22:15 2020-04-27 12:33
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Feature Request for Brightness and Contrast Shader
Description: Most of my game art is rasterized instead of vector, and this forces me to create multiple versions of the same image for normal, hover, and down states. This is request for a shader which adjusts brightness and contrast. I would use it in XAML themes for button trigger events. However, I'm not aware of what the overhead might be for such a design and whether it is practical.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006278)
jsantos   
2020-04-27 12:33   
In the next version (probably 3.1) we are going to provide custom shaders (this is something that already can be done, but we didn't have time to properly expose it).

Having said that, I think you current approach is going to be much more efficient because effects render to offscreen per frame. They have a cost and should be avoided whenever possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1665 [NoesisGUI] Unity3D crash always 2020-04-24 20:17 2020-04-24 20:18
Reporter: tesrt Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Inheriting a GridViewColumn causes Unity to crash
Description: When I inherit a GridViewColumn Unity crashes
Tags: C#, GridViewColumn, Unity
Steps To Reproduce: Creating a new class and make it inherit GridViewColumn
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1622 [NoesisGUI] C++ SDK block always 2020-01-28 13:57 2020-04-24 19:01
Reporter: daldegam Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: NativeSDK - Android platform android_x86_64
Description: Hello!

I am studying NoesisGui, and doing some tests.
I downloaded "NoesisGUI-NativeSDK-2.2.6", and noticed that the android_x86_64 platform is missing (I'm not talking about android_arm64).

My game has platforms with Android Studio nomenclatures:
arm64-v8a (in the sdk I believe it is: Bin/android_arm64/libNoesis.so)
armeabi-v7a (in the sdk I believe it is: Bin/android_arm/libNoesis.so)
x86 (on sdk I believe it is: Bin/android_x86/libNoesis.so)
x86_64 (sdk does not have the binary for this platform!)
Is it an error in the SDK distribution or is there really no support for android_x86_64 in NativeSDK?

When I compiling my code i got this message from compiler:
- This app only has 32-bit [x86] native libraries. Beginning August 1, 2019 Google Play store requires that all apps that include native libraries must provide 64-bit versions. For more information, visit https://g.co/64-bit-requirement

NoesisGUI will support 64 bits version for Android?

Thanks.
Leandro Daldegam
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006079)
jsantos   
2020-01-28 18:05   
Thanks for the feedback! We are adding support for this in NoesisGUI 3.0


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1402 [NoesisGUI] C# SDK minor always 2019-01-28 09:49 2020-04-21 16:55
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: RangeBase.ValueChanged new value broken
Description: Hi guys,

I've noticed that for a Slider control RoutedPropertyChangedEventArgs<double>.NewValue always contains the same value which is incorrect. As a workaround, I'm using Slider.Value directly inside my ValueChanged event handler.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005425)
sfernandez   
2019-01-30 13:44   
This is happening because your changes from float to double are only on the C# side. Native code still stores everything in float, and in that particular case, as you are asking for a RoutedPropertyChangedEventArgs<double> and the data stored in memory are 2 floats, the raw conversion is accessing unknown memory.

You can hack your code in NoesisEvents.cs by forcing the use of float args in case T is double. It should work as RangeBase.ValueChanged is the only control using these float args:
public T OldValue
{
    get
    {
        return typeof(T) == typeof(double) ?
            (T)(object)(double)RoutedPropertyChangedEventArgsHelper.GetOldValue<float>(getCPtr(this)) :
            RoutedPropertyChangedEventArgsHelper.GetOldValue<T>(getCPtr(this));
    }
}

public T NewValue
{
    get
    {
        return typeof(T) == typeof(double) ?
            (T)(object)(double)RoutedPropertyChangedEventArgsHelper.GetNewValue<float>(getCPtr(this)) :
            RoutedPropertyChangedEventArgsHelper.GetNewValue<T>(getCPtr(this));
    }
}


Anyway, I will try to find a way to make this more robust in the native side.
(0005427)
ai_enabled   
2019-01-30 14:18   
Thank you for a quick reply, Sergio!

I'm reporting this as a bug as it was working fine before. So something has been changed.

Regarding the possible solution - I see it's possible to modify Extend.GetNativePropertyType so that it will return NativePropertyType.Float for double and decimal (and NativePropertyType.NullableFloat for the nullable counterparts).

Then you can rewrite GetOld/New value to use something like that:
int type = Extend.GetNativePropertyType(typeof(T));
IntPtr value = Noesis_RoutedPropertyChangedEventArgs_GetNewValue(cPtr, type); // or get old value
Error.Check();

var result = Extend.GetProxy(value, true);
return result is T || ReferenceEquals(result, null)
            ? (T)result
            : Extend.ConvertValue<T>(result);


Seems to work fine here!
(0005428)
ai_enabled   
2019-01-30 14:21   
(Last edited: 2019-01-30 14:23)
With C# 7.1 you can use it like this for better performance:

int type = Extend.GetNativePropertyType(typeof(T));
IntPtr value = Noesis_RoutedPropertyChangedEventArgs_GetNewValue(cPtr, type); // or get old value
Error.Check();

var result = Extend.GetProxy(value, true);
if (result is T castedResult)
{
     return castedResult;
}

if (ReferenceEquals(result, null))
{
     return default;
}

return Extend.ConvertValue<T>(result);


(0006213)
ai_enabled   
2020-04-15 17:28   
Hi Sergio,
as you've replied in another ticket:
"changing Extend.GetNativePropertyType to return Float for double/decimal types."
— I've done this and it indeed fixes the issue.
Will you use it as a primary solution to this issue or it might have some side effects?
(0006215)
sfernandez   
2020-04-16 10:12   
No, it will have no side effects, it is safe to use it in your case.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1590 [NoesisGUI] C# SDK feature always 2019-11-28 11:42 2020-04-21 16:28
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Missing classes for Live-Charts porting
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1864

Class:
System.Windows.DispatcherTimer
System.Windows.Media.PathGeometry
System.Windows.Media.FormattedText

Constructor:
public DoubleAnimation(double toValue, Duration duration);
public ColorAnimation(Color toValue, Duration duration);
public PointAnimation(Point fromValue, Point toValue, Duration duration);
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
856 [NoesisGUI] Unity3D minor sometimes 2016-04-01 13:49 2020-04-21 16:27
Reporter: easylaser Platform: Unity3D  
Assigned To: jsantos OS: OS X  
Priority: high OS Version: 10.11  
Status: assigned Product Version: 1.2.6f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Icons are sometimes rendered incorrectly
Description: Icons are sometimes rendered with seemingly lower precision than normal. After unloading/loading the view the icons often look good again. The behaviour seems to happen randomly, but is very common.

Tested on iOS and Android.

The attached file contains one photo with the problem visible and one when the icons are displayed as intended.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: Images.zip (3,642,259 bytes) 2016-04-01 13:49
https://www.noesisengine.com/bugs/file_download.php?file_id=652&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1616 [NoesisGUI] Unity3D minor always 2020-01-13 10:49 2020-04-21 16:26
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: TextDecoration cannot be bound with a ValueConverter specified in the binding
Description: Using a TextBlock with a binding to a TextDecoration property will work. If a ValueConverter is specified in the binding it will not and log the error below. Furthermore, TextDecoration only seems to implement Underline and the TextBox does not have the TextDecoration property exposed. I assume that this is by design and has nothing to do with the error?

<code>

InvalidOperationException: Can't unbox native pointer
Noesis.Extend.Unbox (System.IntPtr cPtr, Noesis.Extend+NativeTypeInfo info) (at Assets/NoesisGUI/Plugins/API/Core/ExtendBoxing.cs:233)
Noesis.Extend.GetProxy (System.IntPtr nativeType, System.IntPtr cPtr, System.Boolean ownMemory) (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:507)
Noesis.Extend.ConverterConvert (System.IntPtr cPtr, System.IntPtr valType, System.IntPtr valPtr, System.IntPtr targetTypePtr, System.IntPtr paramType, System.IntPtr paramPtr, System.IntPtr& result) (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:2038)
UnityEngine.Debug:LogException(Exception)
NoesisUnity:OnUnhandledException(Exception) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:142)
Noesis.Error:UnhandledException(Exception) (at Assets/NoesisGUI/Plugins/API/Core/Error.cs:18)
Noesis.Extend:ConverterConvert(IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr, IntPtr&) (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:2058)
Noesis.View:Noesis_View_Create(HandleRef)
Noesis.View:CreateCPtr(Type, Boolean&) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:467)
Noesis.BaseComponent:.ctor() (at Assets/NoesisGUI/Plugins/API/Proxies/BaseComponentExtend.cs:17)
Noesis.DispatcherObject:.ctor() (at Assets/NoesisGUI/Plugins/API/Proxies/DispatcherObject.cs:30)
Noesis.View:.ctor(HandleRef) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:451)
Noesis.View:.ctor(FrameworkElement) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:419)
NoesisView:CreateView(FrameworkElement) (at Assets/NoesisGUI/Plugins/NoesisView.cs:1302)
NoesisView:LoadXaml(Boolean) (at Assets/NoesisGUI/Plugins/NoesisView.cs:394)
NoesisView:OnEnable() (at Assets/NoesisGUI/Plugins/NoesisView.cs:453)

</code>
Tags: TextDecoration, ValueConverter
Steps To Reproduce: Specify XAML, ValueConverter and ViewModel as below. The first TextBlock will show text with underline, the second textblock will not.

<code>
        <TextBlock Grid.Row="2" FontSize="50" Text="Hello, from stock TextBlock!" FontFamily="Arial" FontWeight="Bold" FontStyle="Italic" TextDecorations="{Binding TextDecoration}"/>
        <TextBlock Grid.Row="3" FontSize="50" Text="Hello, from stock TextBlock with ValueConverter!" FontFamily="Arial" FontWeight="Bold" FontStyle="Italic" TextDecorations="{Binding TextDecoration, Converter={StaticResource TextDecorationConverterSimple}}"/>
</code>

<code>
using System;
using System.Globalization;


#if NOESIS
using TDO = Noesis.TextDecorations;
using Noesis;
#else
using TDO = System.Windows.TextDecorations;
using System.Windows.Data;
#endif


namespace Test_TextBlockBinding.UI_Customization.Controls.ValueConverters {
    public class TextDecorationConverterSimple : IValueConverter {


        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {


#if NOESIS
            return TDO.Underline;
#else
            return TDO.Underline;
#endif


        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            throw new NotImplementedException();
        }


    }
}

</code>

<code>

#if NOESIS
using TDO = Noesis.TextDecorations;
using Noesis;
#else
using TDO = System.Windows.TextDecorationCollection;
using System.Windows;
#endif


namespace Test_TextBlockBinding.ViewModels {
    public class ViewModel : NotifyPropertyChangedObject {

        private TDO _textDecoration;
        public TDO TextDecoration {
            get => _textDecoration;
            set => SetProperty(ref _textDecoration, value);
        }
}

</code>
Additional Information:
Attached Files:
Notes
(0006076)
sfernandez   
2020-01-16 12:47   
Created a ticket for TextBox.TextDecorations missing property: 0001619


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1638 [NoesisGUI] C++ SDK feature N/A 2020-03-13 11:49 2020-04-20 20:11
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Expose PPAA tesellator scale
Description: Hi guys,

I forgot about a local change we made in 2.2.1. I've just remembered about it because I've had to reintegrate it into our 2.2.6 version. It'd be nice to have an official feature for this. We noticed that on one of our paths, the PPAA scale was not sufficient so we wanted to bump it up to increase the quality. The scale I'm talking about is the value applied in PathTessellator::GenAAGeometry()

Old:

vertices.push_back(vertices[i] + scale * PPA_EXTRUDE_OUT * n);

New:

vertices.push_back(vertices[i] + scale * Max(mCachedPath->PPAAScale, 0.1f) * PPA_EXTRUDE_OUT * n);


We then just expose this value via FrameworkElement in a similar way that Noesis::Element::PPAAMode is exposed. We pass this value to all the render nodes. This allows us to do something like this from our XAML:

<Control x:Name="Logo" Template="{StaticResource GameTitle}" Noesis:Element.PPAAScale="2.0">

And then generate a much more detailed path. Our unofficial implementation of this was just hastily put together, but an official support for this would be really nice. Note: I'm not sure if something like this already exists in 3.0.0.

Cheers
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006145)
jsantos   
2020-03-13 11:59   
This is a great suggestion. Something we talked about was exposing PPA_IN and PPA_OUT, would that be also valid for your game?
(0006146)
steveh   
2020-03-13 12:06   
Yes, exposing those 2 properties would also give the same control so that would be great!
(0006226)
jsantos   
2020-04-20 20:10   
(Last edited: 2020-04-20 20:10)
We implemented this and will be available in the next beta

<Canvas noesis:Element.PPAAMode="Default" noesis:Element.PPAAIn="0.5" noesis:Element.PPAAOut="0.5">

We are also working in a doc to explain the meaning of both numbers.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1653 [NoesisGUI] Unity3D crash random 2020-04-09 22:15 2020-04-16 19:19
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Noesis_View_Update(...) Hard Locks Unity
Description: Using Noesis 3.0 b6, I am seeing a repeated Unity hard lock. I can attach to the Unity Editor process and get the call stack.

The only thread executing code (and blocking) is Noesis_View_Update(CPtr, timeInSeconds). I can set a breakpoint on line 260 and confirm that it does not fire because code remains stuck on line 261. See enclosed screenshots.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Lock-Subsequent-Attempt.PNG (23,216 bytes) 2020-04-09 22:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1187&type=bug
Lock-Active-Threads.PNG (44,285 bytes) 2020-04-09 22:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1188&type=bug
Lock-Location.PNG (70,104 bytes) 2020-04-09 22:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1189&type=bug
Actual Editor.PNG (70,917 bytes) 2020-04-10 21:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1195&type=bug
Unity.dmp (1,715,540 bytes) 2020-04-10 21:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1196&type=bug
Notes
(0006186)
sfernandez   
2020-04-10 12:23   
In Unity we don't explicitly use the Dispatcher, so there shouldn't be any operations pending when processing the dispatcher queue.
The code for the Dispatcher is also available, could you please check how many 'pendingOperations' are being processed when it freezes, or if it is frozen inside any of the operations being invoked?
(0006187)
stonstad   
2020-04-10 15:31   
I believe the freeze is on Noesis_View_Update because this is the method shown in the Unity Editor call stack when I attach to the editor. This is also the line that has the yellow program counter highlighted. The red line is just my breakpoint to see if Update is called later. I'll check the dispatcher queue.

FWIW -- this is happening to me very frequently.
(0006189)
sfernandez   
2020-04-10 20:44   
Sorry, I misunderstood.
Could you please attach a Visual Studio debugger, hit "Pause" button, and then go to "Debug > Save Dump As...".
This is using beta 6, right? We'll try to see where inside Noesis it is stuck.
(0006193)
stonstad   
2020-04-10 21:47   
Is the minidump ok?
(0006194)
sfernandez   
2020-04-12 12:45   
The minidump is ok, thank you. We will study it and keep you informed.
(0006195)
sfernandez   
2020-04-12 12:48   
One question, are you manually updating and rendering our View, or you are simply using our NoesisView component?
(0006197)
jsantos   
2020-04-13 16:41   
We know what's happening but we need more information about when this is happening. If you have a pattern that fires this issue it is really welcome. :)
(0006198)
stonstad   
2020-04-13 17:48   
I am letting the Noesis View handle updating and rendering. @jsantos -- it seems to happen only when I am in the Unity Editor scene view. It does not happen in the game view, I think. Otherwise, it is very random. I have had it happen five times in five minutes -- and I can go several hours without it happening. I think it relates to what I am doing in the Editor Scene view -- if I am moving and/or manipulating object transforms that seems to cause it. Despite the call stack, maybe it is Unity caused.

Would a full dump instead of a minidump help?
(0006199)
jsantos   
2020-04-13 17:52   
Thanks, we don't need more dumps. We know what part of our code is causing this.

So this is not happening in PLAY mode?
(0006200)
stonstad   
2020-04-14 15:46   
If I edit or move things in the scene view during playback it happens in a few seconds. Is there something I can do to unfreeze it? When it happens minimize/maximize no longer works once I tab to a different application.
(0006201)
jsantos   
2020-04-14 15:50   
Just let me confirm this, this is only happening during playback right?
(0006204)
stonstad   
2020-04-14 23:27   
I have more information to share.

1) Only happens during PLAY
2) Only happens when flying around or clicking in Scene tab
3) Only happens when a Noesis View is active.
(0006206)
stonstad   
2020-04-15 00:05   
(Last edited: 2020-04-15 00:06)
It is a 15GB project. I can send it over with repo steps after this thread is marked private.

(0006207)
jsantos   
2020-04-15 00:08   
Thanks for the details. For we don't need the project.

One question regarding 2), this is happening when going to Scene tab and Game view is not visible right?
(0006210)
stonstad   
2020-04-15 15:07   
That's right -- my editor is tabbed so that either the scene view or game view is visible, but not both.

My workaround is to always disable the game object containing the NoesisView before I switch to the scene view and inspect game objects.
(0006211)
jsantos   
2020-04-15 17:01   
Thanks for the feedback. We were able to reproduce it. Working on a fix right now.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1658 [NoesisGUI] C# SDK minor always 2020-04-15 04:48 2020-04-16 15:46
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Binding to ObservableCollection doesn't trigger change event anymore
Description: Hi guys,

I'm not sure whether it's intended but in 2.2.6 it works fine while in 3.0.0b7 it's broken (and we've missed it during early testing).

For example:
    <Grid Visibility="{Binding AccessibleVehicles, Converter={StaticResource EmptyCollectionToVisibilityConverter}}">
...

Where AccessibleVehicles is a readonly property of ObservableCollection<> type.

I was able to workaround it by adding NotifyPropertyChanged(nameof(AccessibleVehicles)) but it's really weird as in 2.2.6 it works just fine!

We have several such cases in the code.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006208)
ai_enabled   
2020-04-15 04:49   
(Last edited: 2020-04-15 04:49)
Here is the code of the converter:

public class EmptyCollectionToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        // ReSharper disable once PossibleNullReferenceException
        var valueAsEnumerable = value as IEnumerable;

        var hasElements = valueAsEnumerable?.GetEnumerator().MoveNext() ?? false;
        // ReSharper disable once CanExtractXamlLocalizableStringCSharp
        if (parameter as string == "Reverse")
        {
            hasElements = !hasElements;
        }

        return hasElements ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}


(0006214)
sfernandez   
2020-04-16 09:56   
I've checked with WPF and the behavior seems correct.
If the collection changes (items added or removed) but the property itself didn't change (the collection is the same), the binding is not evaluated and the converter is not called.

You probably should use collection Count as the trigger of property change:
<Grid Visibility="{Binding AccessibleVehicles.Count, Converter={StaticResource CountToVisibilityConverter}}">

And use a converter that checks the value of the Count to determine the visibility.
(0006216)
ai_enabled   
2020-04-16 15:43   
Thank you for investigating! The advice with binding to Count is a golden one :-) I never thought about this!
I'm surprised it was fine before so I assumed it's a bug. Good to know that now it works as intended.
You can close this issue.
(0006217)
sfernandez   
2020-04-16 15:46   
You're welcome.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1657 [NoesisGUI] C# SDK minor always 2020-04-15 04:20 2020-04-15 19:10
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Emoji rendering issue
Description: Hi,

I've noticed a rendering issue with emojis, see the attached images.
In most cases, it's a transparent pixel or two on the right or left edge of the emoji. In some cases, it's more severe than others.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Normal.jpg (1,522 bytes) 2020-04-15 04:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1197&type=bug
NoesisGUI issue.jpg (2,053 bytes) 2020-04-15 04:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1198&type=bug
NoesisGUI rough edges.jpg (159,587 bytes) 2020-04-15 04:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1199&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1637 [NoesisGUI] C++ SDK minor always 2020-03-13 10:46 2020-04-13 21:02
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: 'PlaySoundA' is not a member of 'Noesis::GUI'
Description: Hi guys, I've just decided to test out upgrading from 2.2.1 -> 2.2.6.

I've just hit a compile error caused by the WinAPI doing some #define to rename "PlaySound" to either "PlaySoundA" or "PlaySoundW".

The file which fails to compile is "IntegrationAPI.cpp". The issue is caused by the order of includes:

1. IntegrationAPI.cpp first includes IntegrationAPI.h. This declares a function called "PlaySound" in the GUI namespace.
2. It then includes NsDrawing/VGL.h which includes NsCore/SpinMutex.h which includes <windows.h>. This eventually includes "PlaySoundAPI.h" in the windows api which redefined PlaySound to either PlaySoundA / PlaySoundW depending on unicode settings.
3. This then causes a compile error because the definition does not match the name of the declaration.

Error is as follows (I've cut out all the other non-important include paths)

1>------ Build started: Project: NoesisGUI, Configuration: Release PcDx11_x64 x64 ------
1>IntegrationAPI.cpp
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\GUI\Core\Include\NsGui/IntegrationAPI.h
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\Core\Kernel\Include\NsCore/Kernel.h
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\Core\Kernel\Include\NsCore/Stream.h
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\Core\NSTL\Include\NsCore/String.h
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\Drawing\VGL\Include\NsDrawing/VGL.h
1>Note: including file: Z:\LicencedSoftware\NoesisGUI\2.2.6\NoesisSDK\Src\Packages\Core\System\Include\NsCore/SpinMutex.h
1>Note: including file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\windows.h
1>Note: including file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\mmsystem.h
1>Note: including file: C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\playsoundapi.h
1>z:\licencedsoftware\noesisgui\2.2.6\noesissdk\src\packages\gui\core\src\integrationapi.cpp(130): error C2039: 'PlaySoundA': is not a member of 'Noesis::GUI'
1>z:\licencedsoftware\noesisgui\2.2.6\noesissdk\src\packages\gui\core\include\nsgui\integrationapi.inl(13): note: see declaration of 'Noesis::GUI'
1>Done building project "NoesisGUI.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


I can fix locally by renaming "PlaySound" to "NsPlaySound" so it doesn't match the #define.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006142)
jsantos   
2020-03-13 11:35   
Ugh, not sure why we are not having that error here and nobody complained before but I think we should rename PlaySound to something different. Unicode macros in window are a nightmare.
(0006143)
steveh   
2020-03-13 11:41   
Yup, I fully agree :) In fact, I'd go as far to say that the entire WinAPI is a nightmare.

Others may not have an issue because I'm not building Noesis externally using the generated solution. We use premake and directly integrate the CPP / H files from Noesis into our game's solution, so Noesis is built as part of our solution / generated project as opposed to Noesis solution/project generated via the Python script. This means that we may have different build settings which may include different windows unicode settings, or API settings etc.
(0006144)
jsantos   
2020-03-13 11:46   
I love that idea of integrating CPP / H directly into your solution. And we want to support this way in the future (like for example providing a single .cpp (or just a few) with all Noesis inside). Any feedback to make your life easier about this is welcome. Thanks!
(0006196)
jsantos   
2020-04-13 14:37   
(Last edited: 2020-04-13 21:02)
I fixed this and also added WIN32_LEAN_AND_MEAN in all places we are including windows.h



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1071 [NoesisGUI] C# SDK crash always 2017-04-30 10:56 2020-04-13 14:43
Reporter: GabrielStranak Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.0.1f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0  
Platform: Any
Summary: Default resource provider on Android - Unable to load font
Description: Issue reported on forum http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1068
The default resource provider on Android platform is unable to load fonts from local or external storage.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1651 [NoesisGUI] C# SDK feature N/A 2020-04-08 23:22 2020-04-13 14:07
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version:  
Platform: Any
Summary: Emojis opacity support
Description: Hi guys,

I'm modifying text opacity by animating Foreground.Opacity property. It works fine for regular text however it has no effect on inline emojis rendering (see the screenshot where the text went transparent but the emojis remains as is).

Do I have to use the "Opacity" property or you're planning to add support for brush Opacity for emojis rendering?

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Default.jpg (68,021 bytes) 2020-04-08 23:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1183&type=bug
Hidden.jpg (69,360 bytes) 2020-04-08 23:22
https://www.noesisengine.com/bugs/file_download.php?file_id=1184&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1649 [NoesisGUI] Unity3D minor always 2020-04-08 20:11 2020-04-09 20:24
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Compile Errors - Disambiguation Needed
Description: FilterPredicate.cs uses a type that cannot be resolved due to two types having the same name (System.ComponentModel) and System.Collections.Specialized. See included error message for details.
Tags:
Steps To Reproduce: Import Noesis 3.0.6 into a project.
Additional Information:
Attached Files: Errors.PNG (51,882 bytes) 2020-04-08 20:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1181&type=bug
Cause.png (11,629 bytes) 2020-04-09 17:26
https://www.noesisengine.com/bugs/file_download.php?file_id=1186&type=bug
Notes
(0006174)
stonstad   
2020-04-08 20:13   
Resolved through the following disambiguation using statements:

using System.Collections;
using System.ComponentModel;
using INotifyCollectionChanged = System.Collections.Specialized.INotifyCollectionChanged;
using NotifyCollectionChangedAction = System.Collections.Specialized.NotifyCollectionChangedAction;
using NotifyCollectionChangedEventArgs = System.Collections.Specialized.NotifyCollectionChangedEventArgs;
(0006175)
stonstad   
2020-04-08 20:14   
Also needed w/ SortComparer.
(0006179)
sfernandez   
2020-04-09 13:16   
What platform, scripting backend and API compatibility level are you using?
I tried on Windows with Mono/IL2CPP and .NET 4.6/.NET Standard 2.0 and I'm not getting those compiler errors.
Those classes shouldn't exist on System.ComponentModel namespace.
(0006181)
stonstad   
2020-04-09 17:26   
Scripting Backend: IL2CPP
API Compat Level: .NET 4.x

OK, it turns out Newtonsoft.Json defines System.ComponentModel shims which use the same namespace. I don't believe there is anything to fix here.
(0006184)
sfernandez   
2020-04-09 20:23   
Ok, thanks for the feedback, I'm closing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1652 [NoesisGUI] C# SDK major always 2020-04-09 00:47 2020-04-09 20:24
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Expander.IsExpanded Does Not Work
Description: <Expander ... IsExpanded="True" ./>

IsExpanded="True" does not work in XAML or programatically via code.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006176)
stonstad   
2020-04-09 00:50   
Seems like it is related to how it tracks (or doesn't track) internal state for expansion.
(0006177)
sfernandez   
2020-04-09 10:46   
What beta are you using to test this? We did some changes to the Expander style in beta 5.
I'm testing with latest beta (6) and it seems to work fine, I can set the IsExpanded="True" in xaml and it starts correctly expanded with the content visible. It also works if I set it via code.
(0006182)
stonstad   
2020-04-09 17:29   
This was with Beta 3. Confirmed it works w/ latest v6. Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1644 [NoesisGUI] C# SDK minor always 2020-03-24 14:43 2020-04-03 16:24
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Dispatcher issues
Description: Hi guys,

first, this operation.Invoke() call https://github.com/Noesis/Managed/blob/782acc60bf2f2befbab0d701a3e3d5bd467859ab/Src/Noesis/Core/Src/Core/Dispatcher.cs#L137 will crash the process if there is an exception because it's not handled.
I suggest changing it to:
                    try
                    {
                        operation.Invoke();
                    }
                    catch (OperationCanceledException)
                    {
                        // that's fine
                    }
                    catch (Exception)
                    {
                        // TODO: add logging
                    }

(the issue happened to me)

Second, NoesisGUI C# SDK 2.2.6 setting up the synchronization context here https://github.com/Noesis/Managed/blob/ce47687f17cb6c66c93b1151154d906ff9cf8d23/Src/Noesis/Core/Src/Core/NoesisGUI.cs#L58
this is conflicting with our own "main thread" SynchronizationContext . I'm not sure if you actually intended to set your SynchronizationContext there. For my branch, I've just removed this line, but I think you need to pay extra attention as it might lead to unexpected consequences for your customers. You cannot make an assumption that the main thread (with its SynchronizationContext) completely belongs to NoesisGUI. Setting your SynchronizationContext temporary is fine but implicitly enforcing it is not a good idea from my experience.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006171)
sfernandez   
2020-03-25 12:03   
Yes, that was incorrect in 2.2.6 and we changed in 3.0, we no longer set the SynchronizationContext when NoesisGUI is initialized.

We will incorporate the exception catch block to the invoke call, although we will use the UnhandledException callback we expose in our API, because we don't handle the exceptions occurring in user code. I guess you already installed your own exception handler with Noesis.Error.SetUnhandledCallback(), right?

Thanks for the feedback.
(0006172)
ai_enabled   
2020-03-25 21:08   
Yes, my NoesisGUI wrapper for MonoGame is setting up the callback with Noesis.Error.SetUnhandledCallback()

Good to know you're already aware of this issue.
Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1632 [NoesisGUI] C# SDK feature N/A 2020-03-02 20:29 2020-03-21 19:27
Reporter: ai_enabled Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Twemoji not supported
Description: Hi guys,

I have success with Segoe UI Emoji but looking for a crossplatform opensource alternative.
It seems Twemoji is the most popular and used widely (e.g. Discord)

Here is the COLR version https://github.com/mozilla/twemoji-colr
However, it's rendered as blank glyphs by NoesisGUI. According to the readme:
"Systems that do not support such color fonts will show blank glyphs if they try to use this font."

Here is SVGinOT version https://github.com/eosrei/twemoji-color-font/releases
SVGinOT version results in black-and-white glyps only.

I wish to see it implemented—either COLR or SVGinOT.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Twem.xaml (383 bytes) 2020-03-09 02:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1166&type=bug
Screenshot at 17-35-45.jpg (96,742 bytes) 2020-03-09 14:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1167&type=bug
Screenshot at 22-40-27.jpg (136,303 bytes) 2020-03-09 14:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1168&type=bug
Screenshot at 19-33-14.jpg (135,262 bytes) 2020-03-09 16:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1169&type=bug
Screenshot at 19-33-33.jpg (184,056 bytes) 2020-03-09 16:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1170&type=bug
TwemojiMozilla(2).ttf (1,244,336 bytes) 2020-03-09 16:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1171&type=bug
emojis.jpg (379,908 bytes) 2020-03-20 21:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1177&type=bug
Emojis.xaml (7,220 bytes) 2020-03-20 21:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1178&type=bug
Notes
(0006120)
jsantos   
2020-03-02 20:42   
Hmm, that's strange because we already support COLR/PAL tables. That font must have something different. I will have a look at it as soon as possible.
(0006125)
ai_enabled   
2020-03-06 21:41   
(Last edited: 2020-03-06 21:41)
Thanks, Jesús!
I hope it could be done easily, at least for COLR version.
We want to provide certain improvements but don't have much extra time so the idea with emojis support seemed like a perfect one.

NoesisGUI works great with Segoe UI Emoji but due to Microsoft license, we cannot add it into the game Core.cpk. If we use only installed Windows font, Windows 7/8.1 customers will be unable to see the emojis...

If you know any alternative open-source emoji font please let me know. So far I've found only Twemoji and Noto Color Emoji (which is totally incompatible as it never received proper TTF support).

Regards!

(0006126)
jsantos   
2020-03-09 02:25   
No sure if I am trying the right font. I just downloaded v.0.5.0 from here (https://github.com/mozilla/twemoji-colr/releases) and using the attached XAML I am not able to display anything. Once we release first beta of 3.0 I will be able to analyze this with more detail but could you confirm that with the given XAML you can see black glyphs?
(0006127)
jsantos   
2020-03-09 02:26   
By the way, skin tones and things like that are still not supported. It's been requested many times so I think this is something we will start to solve 'soon' :)
(0006128)
ai_enabled   
2020-03-09 14:47   
(Last edited: 2020-03-09 14:48)
Thanks for checking this.

Mozilla COLR's version of the font is indeed not rendered. I've tried it before and tried again (you can see the attached screenshot #1).

SVGinOT of the font is rendered in black glyphs.

Segoe UI Emoji works fine (see the attached screenshot #2).

I wish we can get support for Twemoji in 2.2.x as so far it's the only viable alternative to Segoe UI Emoji.
We're happy to have just basic emojis support without skin color or other options. It's way better than nothing ha-ha! Actually, it's really incredible, our players who have seen the screenshot of my experiment are totally hyped up! :-)

Regards!

(0006129)
jsantos   
2020-03-09 16:28   
(Last edited: 2020-03-09 16:29)
I would say that COLR version is broken. Not sure if related to this (https://github.com/mozilla/twemoji-colr/issues/31).

Does the font work for you out of Noesis?

SVGinOT is an incredibly complex format, we don't have plans to support it right now... This is something we need to think about again after 3.0...

(0006130)
ai_enabled   
2020-03-09 16:35   
(Last edited: 2020-03-09 16:35)
I've just installed it (as usual — clicked on the font -> Install) and tried in different applications. Most of my apps don't support any Emoji fonts but I had success with MailBird application and Mozilla's COLR version of Twemoji. The second screenshot is Segoe UI Emoji font.

I've simply copypasted emojis from https://getemoji.com/

(0006131)
jsantos   
2020-03-09 16:36   
(Last edited: 2020-03-09 16:37)
Could you attach the TTF here? just to make sure we are using the same version.

(0006132)
ai_enabled   
2020-03-09 16:37   
Sure, here it is:
(0006168)
jsantos   
2020-03-20 21:18   
(Last edited: 2020-03-20 21:19)
Ok, finally I found time for this. The problem is, this font is not providing black and white fallback glyphs and we are expecting that. This is a bug in Noesis, I am fixing it right now in 3.0, but I am not sure when I will find time for this for 2.2. Could you create a new version of the TTF with black and white fallbacks?

I am attaching the XAML I am using and a screenshot. The font is cool!

(0006169)
ai_enabled   
2020-03-20 21:25   
Good to know!
If 3.0 release is coming in mid/late April it would be fine for us :-) no need to implement this in 2.2 then. Otherwise, we would be more than happy to have the fix for 2.2.7...

I'm afraid it's too complicated to rebuild the TTF by injecting the fallback glyphs. I have no experience with this and not enough time to research the idea.

This font is great! Discord is using it so many players would be excited to see this font in their beloved games too!
(0006170)
jsantos   
2020-03-21 19:27   
Yes, the plan is having the final 3.0 earlier. I fixed this (took me more changes than expected to do it efficiently) and will be available in beta 4. Thansk!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1625 [NoesisGUI] Website minor N/A 2020-02-13 17:17 2020-03-20 20:19
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Roadmap is incorrect
Description: Hi guys,

Looking at your roadmap we have already passed the deadline for 2.3.0, and we are getting quite close to the estimated delivery date for 3.0.0, and I expect that this version will be pushed back a bit. Is there any chance we can get an updated roadmap timescale so I can roughly plan out when I'm going to integrate newer versions in the future? We really want the drop shadow effect (see Bug #0001563), and I feel this will be much easier to implement with the introduction of the custom shader effects in 3.0.0. I am also looking forward to the storyboard seek implementation, and the PathGeometry implementation.

Much appreciated, cheers.

-Steven
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006095)
jsantos   
2020-02-13 19:47   
Hi Steve,

Thanks for reaching out. We canceled 2.3.0 release and many of the features are being moved to 3.0. Noesis 3.0 is happening before GDC, we are trying to have all the announced features but I think a few of them are being moved to 3.1. PathGeometry is finished. I think storyboard seeking is being implemented (@sfernandez), could you please open a ticket about it?

Regarding custom shader effects we are trying to have at least the Drop Shadow implemented by default. How urgent is this feature for your team?
(0006096)
steveh   
2020-02-13 19:54   
Thanks for the quick response. The drop shadow is not extremely urgent for us as we're still relatively early in development and this is more of a polish thing, but a lot of our pre-vis work heavily relies on drop shadowed elements. All iconography in the pre-vis have drop shadows on them so this is something I'd like to get working reasonably soon as I feel this will make a huge difference to our UI. I'd also like to get it in to test the performance to make sure that this is a feasible effect to have across the entire UI on various elements. If there's too much of an impact on perf then I need to let our artists know so we can find alternative methods.

Cheers,

-Steven
(0006165)
jsantos   
2020-03-20 20:19   
I am going to close this. Could you please open a ticket for 'storyboard seek implementation' ? Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1643 [NoesisGUI] C++ SDK minor always 2020-03-19 12:13 2020-03-20 20:18
Reporter: Joren Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: NS_WARNING_POP Missing in BaseFreezableCollection.h
Description: NS_WARNING_POP seems to be missing in BaseFreezableCollection.h, throwing a warning.

Minor thing, but I guess I should let you guys know.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006164)
jsantos   
2020-03-20 20:18   
Thanks for this! Really appreciate these details. :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1615 [NoesisGUI] C++ SDK crash always 2020-01-09 10:30 2020-03-20 16:49
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Hang in UIInline Container
Description: Using an UIInlineContainer inside a style, and then using this style inside a ItemsControl will hang the application. Managed to replicate this issue in the NoesisApp.
Tags: C++
Steps To Reproduce: Included a ZIP with the Noesis Hello World sample project. Added some code with the hang inside. It is specifically the part where ItemsControl is used.
Additional Information:
Attached Files: HelloWorld.zip (673,076 bytes) 2020-01-09 10:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1146&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1623 [NoesisGUI] Unity3D crash random 2020-02-03 10:56 2020-03-20 16:48
Reporter: JinFox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Windows
Summary: Unity Engine Editor crashing randomly after hitting play a after having played previously.
Description: Hello,
We are experiencing an issue at the moment where Noesis crashes randomly when we Run the editor after having played previously :
- We click "Play" do our tests.
- Click "stop".
- Then click "play again"
- The editor crashes entirely.

 It does not systematically happen at the second attempt (sometime after 3, 4 or 5 "stop then start" of the editor).

When the issue occurs, the full editor is crashing and we then have the attached crash logs.

Here is an extract of the stacktrace of when the issue occurs :
Tags: Unity
Steps To Reproduce: - We click "Play" do our tests.
- Click "stop".
- Then click "play again"
- The editor crashes entirely.
Additional Information:
Attached Files: Crash_2020-01-30_170649167.zip (322,787 bytes) 2020-02-03 10:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1157&type=bug
Notes
(0006080)
sfernandez   
2020-02-03 13:18   
Hi, we were able to find some bug in our code related to the attached crash. Please try with the following library and let me know if you still get crashes:
https://drive.google.com/open?id=1yWQS0hC4aRUqPs-eW_Q1ZhfvHGmQsa8O

If you get any more crashes please attach the dump, maybe it corresponds to another bug.

Thanks for your feedback.
(0006081)
JinFox   
2020-02-03 16:18   
Hello,

Thank, you for the quick answer.
It seems that this dll does not work. No more error appear but the UI does not appear at all. I have tested Using the following steps :
1 - Clean Unity GI cache (and disabling it), to make sure no cached version of the dll was present.
2 - Close Unity Editor
3 - Swapped the Noesis.dll present in Assets\NoesisGUI\Plugins\Libraries\Windows\x86_64 byt the new one
4 - Relaunch Unity, click play
5 - UI does not show up, as if I was loading an empty xaml.

Doing the same steps and re-introducing the old dll is re-introducing the bug but the UI re-appear.

Would you have a reason for this?

Thank you again for your time.
(0006082)
sfernandez   
2020-02-04 10:35   
Sorry, this one should work fine: https://drive.google.com/open?id=17HM9vlxzVRtq4S1kD4MATAeJ87d1KBzv
(0006083)
JinFox   
2020-02-04 11:47   
Hello,

Unfortunately same symptoms with this version (p2), the Crash doesn't occur anymore and Noesis logs seem to be called and loading all the xamls, but the actual UI is not rendered).
(0006084)
sfernandez   
2020-02-04 12:03   
It is strange, I'm testing our samples and they render fine in Unity using that library.
Could you please try with one of our sample too and confirm it also fails for you?
(0006085)
sfernandez   
2020-02-04 12:06   
Forget it, I was able to reproduce the black screen with one of our samples.
I'll get back to you when I find what is happening.
(0006087)
sfernandez   
2020-02-04 16:43   
Sorry for the inconvenience.

Please try with the following library: https://drive.google.com/open?id=1s3NeriOHdoc3QUFu87Zc2YOsQOKXmuwS
I tried this library and works fine with all our samples, it should work for you too.
(0006089)
JinFox   
2020-02-05 14:13   
Hello sfernandez!, This one works and it seems to be solving the original problem as well! Thanks very much!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1626 [NoesisGUI] Unity3D minor always 2020-02-16 23:08 2020-03-20 16:45
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Windows
Summary: You get a stack overflow exception if clicking a TreeViewItem that has a template set in it's style.
Description: Having a style like this:

    <Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TreeViewItem}">
                    <Border x:Name="Border" Padding="2" SnapsToDevicePixels="true" BorderBrush="{StaticResource Brush_ItemBorder}" BorderThickness="{TemplateBinding BorderThickness}">
                        <ContentPresenter Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

And then just click on the the item in the tree view:

My xaml looks like this:

<TreeView Name="x_folderTreeView" Grid.Column="0" ItemsSource="{Binding RootFolderItems}" SelectedItemChanged ="SelectedFolderChangedEx">
                        <TreeView.ItemTemplate >
                            <HierarchicalDataTemplate DataType="{x:Type NsUI:NsUICreateObjectFolderItem}" ItemsSource="{Binding ChildFolders}" >
                                <Grid PreviewMouseLeftButtonDown="Folder_TreeView_ItemSelected" >
                                    <TextBlock Text="{Binding FolderName}" Height="35" FontSize="22"/>
                                </Grid>
                            </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                    </TreeView>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006097)
C4ustic   
2020-02-16 23:09   
This is what the exception look like:

StackOverflowException: The requested operation caused a stack overflow.
Noesis.View.MouseButtonDown (System.Int32 x, System.Int32 y, Noesis.MouseButton button) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:126)
NoesisView.ProcessEvent (UnityEngine.Event ev, System.Boolean enableKeyboard, System.Boolean enableMouse, System.Boolean emulateTouch) (at Assets/NoesisGUI/Plugins/NoesisView.cs:1002)
NoesisView.OnGUI () (at Assets/NoesisGUI/Plugins/NoesisView.cs:1129)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1617 [NoesisGUI] Unity3D minor always 2020-01-13 11:40 2020-03-20 16:39
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Separator does not properly stretch in vertical orientation
Description: Using a (custom) Separator control the control does not properly stretch when it is used in a vertical layout. When using a LayoutTransform in WPF the Separator stretches its width to fill the vertical space (image 01), in NoesisGUI the width has to be manually defined for it to show up.
Tags: Separator
Steps To Reproduce: Define the code as defined in the attached images and the vertically oriented Separator will not show.
Additional Information:
Attached Files: Separator_stretching_01.png (6,209 bytes) 2020-01-13 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1147&type=bug
Separator_stretching_02.png (19,737 bytes) 2020-01-13 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1148&type=bug
Separator_stretching_03.png (57,915 bytes) 2020-01-13 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1149&type=bug
Separator_stretching_04.png (55,094 bytes) 2020-01-13 11:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1150&type=bug
Notes
(0006121)
sfernandez   
2020-03-03 13:38   
(Last edited: 2020-03-03 13:38)
Could you please try adding the following template to your separator style?

<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="Separator">
      <Rectangle Fill="{TemplateBinding Background}" Height="1"/>
    </ControlTemplate>
  </Setter.Value>
</Setter>




View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1639 [NoesisGUI] C++ SDK block always 2020-03-14 18:18 2020-03-20 16:38
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Assert when connecting element to a different view
Description: Hi guys, I'm trying to update to 2.2.6 but some of our code is asserting. Bear with me, this will take a bit of explaining...

I've created a new control derived from ContentControl called "ExplicitlyControlledElement". The purpose of this control is to allocate a new view and move the children of it's element out of the main view and into a newly allocated view which can be controlled by a different controller. I did it this way to simplify screens which may be controlled by multiple people. This means that we can do something like this in the main XAML:

<usercontrol>
    <local:UniquelyControlledElement>
        <stackpanel KeyboardNavigation.DirectionalNaviation="Contained">
            <button Content="A" />
            <button Content="B" />
        </stackpanel>
    </local:UniquelyControlledElement>
</usercontrol>

At runtime, in the OnInitialised delegate of the UniquelyControlledElement, we allocate a new view and move the content of the children into the root of the new view. Something like this:

I've attached our actual function to this bug report called "UniquelyControlledElement_CreateView.cpp". Hopefully you should get the general idea of what I'm trying to do. Note: There is a also an additional control called a "DummyPositionalObject". This gets inserted into the hierarchy so if we animate the position of the UniquelyControlledElement in the main view we move the view as well, so the UI artist can still move the position of these views in animations.

This all used to work fine in 2.2.1. However, I've just updated to 2.2.6 and I'm getting an assert when this gets called here:

void Visual::OnConnectToView(IView* view)
{
    // A visual can only be attached to one view
    NS_ASSERT(view != 0);
    NS_ASSERT(mView == 0); // <-- Here
    NS_ASSERT(!mIndex);

    mView = static_cast<View*>(view);

    if (CheckVisualFlag(VisualFlags_NeedsUpdate))
    {
        AddInvalidatedVisual();
    }

    SetVisualFlag(VisualFlags_ParentChanged | VisualFlags_CreateRenderNode);
}

So this looks like something has already moved the view across. I've added a bunch of debugging and I think I've tracked it down, so here is what I believe is happening:

The element at fault is a control with a dynamic template applied, specifically it looks like this (with some slight name adjustments):

<Control x:Name="Icon_Locked" HorizontalAlignment="Center" Height="67.333" VerticalAlignment="Center" Width="67.333" Template="{DynamicResource Icons_PopUp_Locked}" Foreground="#FF7C7C7C" Margin="47,14,10,40" Focusable="False"/>

The Icons_PopUp_Locked is in a different database and I've attached a copy of what this looks like (with the path data removed to simplify the problem). The issue comes from the DynamicResource...

1. The Icon_Locked control's Visual::ConnectToView is called from the parent grid
2. FrameworkElement::OnConnectToView is called from Visual::ConnectToView
3. It calls the OnAncestorChanged delegate
4. It calls into DynamicResourceExpression::OnAncestorChanged which has been bound because the template is set up to be a dynamic resource.
5. DynamicResourceExpresion::OnAncestorChanged calls InvalidateProperty with the "Template" property
+ NsSymbolToString((*((Noesis::DependencyProperty*)mTargetProperty)).mName.mIndex) 0x0000000052ba0fa0 "Template" const char *
6. DependencyObject::InternalInvalidateProperty is called with the template dependency property passed in. It makes it way to the bottom of the function where this code is executed:

        Expression* expression = DynamicCast<Expression*>(pv.boxed.GetPtr());

        if (expression)
        {
            // Connect new target
            Ptr<Expression> cloned = IsInitialized() ? expression->Reapply(this, dp) :
                Ptr<Expression>(expression);

            InternalSetExpression(dp, cloned.GetPtr(), pv.providerPriority);
        }

7. DependencyObject::InternalSetExpression calls "dp->SetValueObject(this, value, priority, newExpression, metadata);"
8. This ultimately ends up triggering a PropertyChangedNotify call with the TemplateProperty
9. The Control::OnPropertyChanged gets executed and the args.prop matches the TemplateProperty
10. This calls FrameworkElement::ApplyFrameworkTemplate.
11. This calls SetSingleVisualChild on the new root
12. This ultimate connects the child to the view of the parent, which has already been moved across to the new root in bullet point 2. (See first_callstack.txt attachment)
13. We finish this and go all the way back out the call stack to Visual::ConnectToView
14. Visual::ConnectToView calls Visual::OnConnectToViewChildren
15. The Control now iterates across all children and tries to connect it to the new view.
16. We assert on the first child because the ApplyFrameworkTemplate already parented the node, so we shouldn't connect the child to the view, it's already been done. (see second_callstack.txt attachment).

*phew* we made it :)

Now.. I'm not sure on the best fix here. Perhaps it could be fixed by the same way you prevent infinite loops in the measure by adding a visual flag like "InReparenting", and before you do any logic in Visual::ConnectToView you call something like CheckVisualFlag(!InReparenting), e.g. maybe something like this:

void Visual::ConnectToView(IView* view)
{
    NS_ASSERT(view != 0);
    if (!CheckVisualFlag(VisualFlags_InReparenting))
    {
        SetVisualFlag(VisualFlags_InReparenting);
        OnConnectToView(view);
        OnConnectToViewChildren();
        ClearVisualFlag(VisualFlags_InReparenting)
    }
}


But I'm not sure if this'll bust anything during the framework application as I'm not sure what side effect will be caused by not calling OnConnectToView when applying the template mid reparenting.

This issue is preventing me from integrating 2.2.6 so I'd like to get a fix for this pretty shortly if at all possible, so any suggestions would be great.

Cheers,

-Steven
Tags:
Steps To Reproduce: * see description *
Additional Information:
Attached Files: ResourceDatabase.xaml (723 bytes) 2020-03-14 18:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1172&type=bug
UniquelyControlledElement_CreateUniqueView.cpp (2,106 bytes) 2020-03-14 18:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1173&type=bug
second_callstack.txt (833 bytes) 2020-03-14 18:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1174&type=bug
first_callstack..txt (3,879 bytes) 2020-03-14 18:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1175&type=bug
Notes
(0006147)
steveh   
2020-03-14 18:34   
I realised I was being silly in my suggestion, I don't need to CheckFlag on the current visual, I need to check the parent's flag. After realising this, I changed the function to look like this (it's not nice, don't judge :) )

void Visual::ConnectToView(IView* view)
{
    NS_ASSERT(view != 0);
    if (nullptr == GetVisualParent() || !GetVisualParent()->CheckVisualFlag(VisualFlags_InReparenting)) // #SPH_TO_REMOVE
    { // #SPH_TO_REMOVE
        SetVisualFlag(VisualFlags_InReparenting); // #SPH_TO_REMOVE
        OnConnectToView(view);
        ClearVisualFlag(VisualFlags_InReparenting); // #SPH_TO_REMOVE
        OnConnectToViewChildren();
    } // #SPH_TO_REMOVE
}

The lines with #SPH_TO_REMOVE were the ones I added. This did actually work for me, and I've managed to load my XAML elements and everything still seems to work upon initial inspection. I'm working remotely right now so I can't actually check to see if the second controller can control the other view, but the primary user can still control the first view. I can't see any major issues so far, but I've not actually ran through the entire game yet. I'll give it more testing. I'm sure you guys will know if this is a silly thing to do or not though.

Cheers,

-Steven
(0006150)
sfernandez   
2020-03-17 12:38   
Hi Steve, we are looking into this as it seems something we accidentally introduced in 2.2.6 and is still occurring in 3.0 version.
We'll let you know as soon as we have the proper solution.

Thank you so much for the detailed report, it will for sure help a lot.
(0006151)
sfernandez   
2020-03-18 19:30   
Hi Steve,

I fixed this in branch 2.2 revision 8936, could you please give it a try and confirm?
(0006158)
steveh   
2020-03-18 21:57   
Hi there, yeah, that's seemed to have done the trick. I've reverted my hack and replaced it with the submitted changelist and it seems to work great. Cheers!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1354 [NoesisGUI] C++ SDK minor have not tried 2018-11-21 13:51 2020-03-20 16:36
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Remove IResourceKey from C++ API
Description: Right now, the dictionaries API is not WPF compliant
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1640 [NoesisGUI] C++ SDK major always 2020-03-15 15:03 2020-03-18 20:18
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Viewbox scaling incorrect in 2.2.6 for off screen render targets
Description: Hi guys,

My last known issue caused by upgrading from 2.2.1 -> 2.2.6 is a new issue where the viewbox scaling looks incorrect if applying render scales > 1.0 with an opacity of < 1.0 to cause it to draw to the off screen render targets. I've attached a XAML file which you can load into the 2.2.6 XAML player which demonstrates this problem.

For the time being, I've commented out the scaling of some of our animations which are causing this problem, but this has had a noticeable impact on the visual styling of our animations. It almost looks like the offscreen render target is using a reciprocal of the scaling (e.g. a scale of 2.0 makes the final image clamped to 1/2 width and 1/2 height, a value of 4 makes the final image clamped to 1/4 width and 1/4 height).
Tags:
Steps To Reproduce: 1. Load the XAML file provided into the XAML Player for 2.2.6
2. Notice that the ellipse only draws a quater of it.
3. Change the opacity on the ellipse back to 1.0 to force it to draw to the normal render target.
4. Notice that it is now correctly sized
Additional Information:
Attached Files: MainWindow.xaml (1,185 bytes) 2020-03-15 15:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1176&type=bug
Notes
(0006148)
sfernandez   
2020-03-16 10:43   
Hi,

We patched that wrong behavior in the changeset 8712 of branch 2.2 in our repository. I think you have access to our source code, right?
Could you please check with that revision number?
(0006149)
steveh   
2020-03-16 11:27   
Hi Sergio,
 
Yes, I do indeed have source code access. I've just integrated #8712 into our version and as you stated, the issues have now been resolved. Much appreciated!

-Steven


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1633 [NoesisGUI] C++ SDK block have not tried 2020-03-09 22:44 2020-03-18 20:00
Reporter: rmcq Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: 'noesis:Element.SupportsFocusEngagement' ignored
Description: In some scenarios, the 'noesis:Element.SupportsFocusEngagement' property is ignored.

From this thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1919
Tags: C++, xaml
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1550 [NoesisGUI] C# SDK minor always 2019-09-04 05:41 2020-03-18 14:19
Reporter: jamieh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: ObservableCollection.Move generates a Noesis Unimplemented Error
Description: I have an ObservableCollection<T> that is a dependency property of a custom control. This collection is being put into a ListView.

The initial binding is working fine, and I'm getting the data. However, I'm attempting to sort the data using ObservableCollection.Move(), and when I do that I'm getting this error in Unity:

[noesis] Unimplemented
UnityEngine.Debug:LogError(Object)
NoesisUnity:UnityLog(Int32, String) (at Assets/NoesisGUI/Plugins/NoesisUnity.cs:116)
Noesis.Extend:Noesis_LaunchCollectionChangedEvent(IntPtr, IntPtr, Int32, IntPtr, IntPtr, Int32, Int32)
Noesis.Extend:NotifyCollectionChanged(Object, NotifyCollectionChangedEventArgs) (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:4359)
System.Collections.ObjectModel.ObservableCollection`1:Move(Int32, Int32)
Tags: C#
Steps To Reproduce: Bind ListView to ObservableCollection
Call .Move() on your ObservableCollection
Additional Information:
Attached Files:
Notes
(0006030)
ai_enabled   
2019-12-05 03:36   
I wish it was implemented :-)
Collection set doesn't work good as it breaks the selected item binding and also the performance is far from the best.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1472 [NoesisGUI] C++ SDK minor always 2019-05-21 11:34 2020-03-12 17:31
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Soft lock when measuring a list box with a content presenter sharing content with another item
Description: Hi guys,

When I was filling out a list box with some dummy data I ended up getting a soft lock when measuring the visual tree. I ended up tracking it down to re-parenting a list box. The item template had a content presenter and I was sharing a common control between different items in the listbox (in my case a vector path). During measuring, the visual parent pointer is reassigned from nullptr to the new parent when measuring the first item. When it gets to the second item, it tries to reparent the parent of the content but it's already been re-parented. I've created a quick sample to reproduce this.

I have a workaround for this so it's not a big issue at all. It may be that we can't fix this, but it'd be nice to trigger an assert just to avoid having to debug this in the future. Much appreciated, cheers.

-Steven
Tags:
Steps To Reproduce: 1. Create a list box.
2. Override the item template, use a content presenter.
3. Bind the list box to a source which uses a shared control.
4. Re-parent the list box to another element in the hierarchy.
5. This should soft lock during the next measure.
Additional Information:
Attached Files: MeasureSoftLock.zip (8,224 bytes) 2019-05-21 11:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1020&type=bug
Notes
(0006141)
steveh   
2020-03-12 17:31   
Hi guys, I've just been looking through the changelogs and I actually think this was fixed in 2.2.4. I think this bug is a dupe of 0001529

https://www.noesisengine.com/bugs/view.php?id=1529


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1630 [NoesisGUI] C++ SDK major always 2020-02-27 09:09 2020-03-10 14:25
Reporter: tension_andreas Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 2.2.5  
    Target Version:  
Platform: Android
Summary: All text disappears on some android devices
Description: So far we’ve found out that it only happens in release and that the font texture seems to be completely black.
This happens both when using a font of our choice as well when not specifying any font at all.
 
Some of devices that we've tested on are:
 
Failed on:
Asus Rog Phone 2
Samsung Galaxy Tab S4
Redmi Note 7
 
Works on:
Samsung Galaxy A20
Samsung Galaxy S8+
Samsung Galaxy Tab S3
 
All of the devices are using Android 9
Tags:
Steps To Reproduce: Just using this xaml is enough to get the error
<Grid>
    <TextBlock Background="Black" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="40">
            <Run Text="App developed by Tension"/>
        </TextBlock>
</Grid>

These devices are know to get this error but there's probably more
Asus Rog Phone 2
Samsung Galaxy Tab S4
Redmi Note 7
Additional Information:
Attached Files:
Notes
(0006116)
jsantos   
2020-02-27 23:52   
Could you please attach the LogCat when the error is happening? Thanks
(0006117)
tension_andreas   
2020-03-02 09:55   
Here is the log from startup to when we're in app and the error is happening, However there's nothing printed while the error happens.

2020-03-02 09:44:04.705 26134-26162/? I/TENGINE: CommandHandler: APP_CMD_START
2020-03-02 09:44:04.706 26134-26162/? I/TENGINE: CommandHandler: APP_CMD_RESUME
2020-03-02 09:44:04.707 1453-1453/? W/JobServiceContext: App Op not allow JobScheduler to start app com.reddit.frontpage/10304
2020-03-02 09:44:04.707 1453-1453/? D/JobScheduler: Error executing JobStatus{f42d004 #u0a304/2 com.reddit.frontpage/androidx.work.impl.background.systemjob.SystemJobService u=0 s=10304 TIME=-2d8h32m14s76ms:none BATNOTLOW READY}
2020-03-02 09:44:04.709 26134-26134/? D/OpenGLRenderer: Skia GL Pipeline
2020-03-02 09:44:04.709 1453-24722/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:04.709 1453-24722/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:04.709 1453-24722/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:04.716 20450-26103/? I/ChromeSync: [Persistence,AffiliationManager] Fetching affiliations from the server.
2020-03-02 09:44:04.720 1453-13885/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:04.720 1453-13885/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:04.720 1453-13885/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:04.724 26134-26162/? I/TENGINE: CommandHandler: APP_CMD_INPUT_CHANGED
2020-03-02 09:44:04.726 20450-20902/? V/NativeCrypto: Read error: ssl=0x73a8ff7e48: I/O error during system call, Software caused connection abort
2020-03-02 09:44:04.726 20450-20902/? V/NativeCrypto: SSL shutdown failed: ssl=0x73a8ff7e48: I/O error during system call, Broken pipe
2020-03-02 09:44:04.726 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.731 20450-24521/? I/Icing: Usage reports ok 1, Failed Usage reports 0, indexed 0, rejected 0
2020-03-02 09:44:04.732 20450-20588/? I/Icing: IndexChimeraService.getServiceInterface callingPackage=com.google.android.gms componentName=null serviceId=30
2020-03-02 09:44:04.735 20450-26103/? E/ChromeSync: [Sync,SyncIntentOperation] Error handling the intent: Intent { act=android.intent.action.PACKAGE_ADDED dat=package:se.tension.gateway.app flg=0x4000010 cmp=com.google.android.gms/.chimera.GmsIntentOperationService (has extras) }.
2020-03-02 09:44:04.738 20450-24521/? I/Icing: Indexing com.google.android.gms-internal.3p:MobileApplication from com.google.android.gms using seqno 3519
2020-03-02 09:44:04.738 26206-26206/? D/Launcher: bindAppsUpdated finished: 1ms
2020-03-02 09:44:04.738 20450-24521/? I/Icing: Indexing com.google.android.gms-internal.3p:MobileApplication from com.google.android.gms using seqno 3519
2020-03-02 09:44:04.740 26206-26219/? D/RecentsTaskLoadPlan: preloadPlan taskCount = 1
2020-03-02 09:44:04.740 26134-26162/? I/TENGINE: CommandHandler: APP_CMD_INIT_WINDOW
2020-03-02 09:44:04.740 26134-26162/? I/TENGINE: Initializing tgCCore
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCAndroid
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCFileSystem
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCCameraManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCShaderManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCTextureManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCLightManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCWorldManager
2020-03-02 09:44:04.741 1453-1453/? W/JobServiceContext: App Op not allow JobScheduler to start app com.reddit.frontpage/10304
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCModelManager
2020-03-02 09:44:04.741 1453-1453/? D/JobScheduler: Error executing JobStatus{f42d004 #u0a304/2 com.reddit.frontpage/androidx.work.impl.background.systemjob.SystemJobService u=0 s=10304 TIME=-2d8h32m14s110ms:none BATNOTLOW READY}
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCAnimationManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCQuadManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCSpriteManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCSplineGroupManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCFontManager
2020-03-02 09:44:04.741 26134-26162/? I/TENGINE: Initializing tgCDebugManager
2020-03-02 09:44:04.741 26206-26219/? D/RecentsTaskLoadPlan: preloadPlan allTasks.add = ComponentInfo{se.tension.gateway.app/se.tension.gateway.app.BootstrapActivity},Uid= 0
2020-03-02 09:44:04.743 26134-26162/? E/TENGINE: FileIni::FileIni(const std::string &) Line: 21 - Failed to load INI file (Settings_Android.ini)!
2020-03-02 09:44:04.743 26134-26162/? I/AdrenoGLES: QUALCOMM build : d2cd71b, If01a8551ff
    Build Date : 07/08/19
    OpenGL ES Shader Compiler Version: EV031.27.01.00
    Local Branch :
    Remote Branch : quic/gfx-adreno.lnx.1.0.r50
    Remote Branch : NONE
    Reconstruct Branch : NOTHING
2020-03-02 09:44:04.743 26134-26162/? I/AdrenoGLES: Build Config : S P 6.0.9 AArch64
2020-03-02 09:44:04.744 1453-1453/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:04.744 1453-1453/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:04.744 1453-1453/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:04.747 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 20 ms
2020-03-02 09:44:04.748 26134-26162/? I/AdrenoGLES: PFP: 0x016ee183, ME: 0x00000000
2020-03-02 09:44:04.750 1453-2850/? D/ImmersiveModeConfirmation: immersiveModeChanged() disabled=true mConfirmed=false
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_EGL_image
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_EGL_image_external
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_EGL_sync
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_vertex_half_float
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_framebuffer_object
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_rgb8_rgba8
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_compressed_ETC1_RGB8_texture
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_AMD_compressed_ATC_texture
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_KHR_texture_compression_astc_ldr
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_KHR_texture_compression_astc_hdr
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_texture_compression_astc
2020-03-02 09:44:04.763 26134-26162/? I/TENGINE: GL_OES_texture_npot
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_filter_anisotropic
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_format_BGRA8888
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_read_format_bgra
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_3D
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_color_buffer_float
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_color_buffer_half_float
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_alpha_test
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_depth24
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_packed_depth_stencil
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_depth_texture
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_depth_texture_cube_map
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_sRGB
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_float
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_float_linear
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_half_float
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_half_float_linear
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_type_2_10_10_10_REV
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_sRGB_decode
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_format_sRGB_override
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_element_index_uint
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_copy_image
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_geometry_shader
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_tessellation_shader
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_stencil8
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_shader_io_blocks
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_shader_image_atomic
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_sample_variables
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_border_clamp
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_EGL_image_external_wrap_modes
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_multisampled_render_to_texture
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_multisampled_render_to_texture2
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_shader_multisample_interpolation
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_cube_map_array
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_draw_buffers_indexed
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_gpu_shader5
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_robustness
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_buffer
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_shader_framebuffer_fetch
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_ARM_shader_framebuffer_fetch_depth_stencil
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_storage_multisample_2d_array
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_sample_shading
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_get_program_binary
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_debug_label
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_KHR_blend_equation_advanced
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_KHR_blend_equation_advanced_coherent
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_tiled_rendering
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_ANDROID_extension_pack_es31a
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_primitive_bounding_box
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_standard_derivatives
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_vertex_array_object
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_disjoint_timer_query
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_KHR_debug
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_YUV_target
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_sRGB_write_control
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_norm16
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_discard_framebuffer
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_surfaceless_context
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OVR_multiview
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OVR_multiview2
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_texture_sRGB_R8
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_KHR_no_error
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_debug_marker
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_EGL_image_external_essl3
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OVR_multiview_multisampled_render_to_texture
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_buffer_storage
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_external_buffer
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_blit_framebuffer_params
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_clip_cull_distance
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_protected_textures
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_shader_non_constant_global_initializers
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_texture_foveated
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_texture_foveated_subsampled_layout
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_shader_framebuffer_fetch_noncoherent
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_shader_framebuffer_fetch_rate
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_memory_object
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_memory_object_fd
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_EGL_image_array
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_NV_shader_noperspective_interpolation
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_KHR_robust_buffer_access_behavior
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_EGL_image_storage
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_blend_func_extended
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_clip_control
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_OES_texture_view
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_EXT_fragment_invocation_density
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_validate_shader_binary
2020-03-02 09:44:04.764 26134-26162/? I/TENGINE: GL_QCOM_YUV_texture_gather
2020-03-02 09:44:04.765 26134-26162/? I/TENGINE: Creating font: tg_embedded_proggytiny_9_normal
2020-03-02 09:44:04.765 26134-26162/? I/TENGINE: Initializing tgCPluginInput
2020-03-02 09:44:04.765 26134-26162/? I/TENGINE: Initializing tgCPluginSkydome
2020-03-02 09:44:04.765 26134-26162/? I/TENGINE: Creating shader: tg_embedded_plugin_skydome_vertex
2020-03-02 09:44:04.768 26134-26162/? I/TENGINE: Creating shader: tg_embedded_plugin_skydome_pixel
2020-03-02 09:44:04.768 14320-26167/? D/NextAppTrainingJobService: insert data - Package:__na__, Previous1:com.asus.launcher, Previous2:se.tension.gateway.app, Previous3:com.asus.launcher, Previous4:se.tension.gateway.app, Timestamp:1583138644572, p1_ts_diff:17187, p2_ts_diff:21446, p3_ts_diff:31354, p4_ts_diff:43994, p1_dur:17187, p2_dur:4305, p3_dur:9792, p4_dur:12624, Hour:9, DayClass:06~12, Weekday:Monday, WeekClass:weekday, Timezone:Europe/Stockholm, UTC:1, Plugged:1, LastPlugged:567134, MobileRadioOn:-1, LastMobileRadioOn:28408, WifiOn:1, LastWifiOn:86400, GpsOn:-1, LastGpsOn:227376, SensorOn:1, LastSensorOn:45217, WifiScan:-1, LastWifiScan:41797, WifiFullLock:-1, LastWifiFullLock:491075, WifiRunning:-1, LastWifiRunning:200902, WifiMultiCastOn:-1, LastWifiMultiCastOn:39216, AudioOn:-1, LastAudioOn:17152, CameraOn:-1, LastCameraOn:1713189, VideoOn:-1, LastVideoOn:6136416, LowPowerModeOn:0, LastLowPowerModeOn:86400, FlashlightOn:-1, LastFlashlightOn:268018147, ChargingOn:1, LastChargingOn:566578, PhoneInCall:-1, LastPhoneInCall:68422779, PhoneScanning:-1, LastPhoneScanning:91040249, BleScanning:-1, LastBleScanning:1028520350, WifiHotspotOn:0, LastWifiHotspotOn:86400,
2020-03-02 09:44:04.770 20450-24521/? I/Icing: Usage reports ok 0, Failed Usage reports 0, indexed 0, rejected 0
2020-03-02 09:44:04.770 26134-26162/? I/TENGINE: Creating shader program: tg_embedded_plugin_skydome
2020-03-02 09:44:04.773 2585-2585/? D/StatusBar: setSystemUiVisibility originVis=170e vis=170e mask=ffffffff oldVal=8 newVal=170e diff=1706
2020-03-02 09:44:04.775 20450-20588/? I/Icing: IndexChimeraService.getServiceInterface callingPackage=com.google.android.gms componentName=null serviceId=36
2020-03-02 09:44:04.778 844-844/? E/SurfaceFlinger: [se.tension.gateway.app/se.tension.gateway.app.TenGineActivity#0] rejecting buffer: bufWidth=1080, bufHeight=2213, front.active.{w=1080, h=2340}
2020-03-02 09:44:04.781 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.782 20450-22882/? I/Icing: Usage reports ok 0, Failed Usage reports 0, indexed 0, rejected 0
2020-03-02 09:44:04.784 14320-26167/? D/NextAppCoreTrainingJobService: [filter predict result] current pkg = com.asus.launcher, predict 1 = com.facebook.katana:0.2262597680091858, predict 2 = com.android.chrome:0.11539454013109207, predict 3 = com.facebook.orca:0.08900726586580276, predict 4 = com.snapchat.android:0.07173154503107071, predict 5 = com.google.android.apps.maps:0.06376175582408905
2020-03-02 09:44:04.784 14320-26167/? D/NextAppCoreTrainingJobService: [predict result] current pkg = com.asus.launcher, predict 1 = com.facebook.katana:0.2262597680091858, predict 2 = com.android.chrome:0.11539454013109207, predict 3 = com.facebook.orca:0.08900726586580276, predict 4 = com.snapchat.android:0.07173154503107071, predict 5 = com.google.android.apps.maps:0.06376175582408905
2020-03-02 09:44:04.784 14320-26167/? D/NextAppCoreTrainingJobService: [predictAll] pkg = com.facebook.katana,com.android.chrome,com.facebook.orca,com.snapchat.android,com.google.android.apps.maps,se.avanzabank.androidapplikation,com.google.android.gm,com.asus.camera,com.addictive.strategy.army,com.computerlunch.evolution,com.bankid.bus,com.Slack,com.azurgames.idle,se.swedbank.mobil,com.spotify.music
2020-03-02 09:44:04.784 14320-26167/? D/NextAppCoreTrainingJobService: [predictAll] rate= 2262,1153,890,717,637,547,433,304,264,263,231,196,195,173,145
2020-03-02 09:44:04.785 14320-26167/? D/NextAppCoreTrainingJobService: [predictAll] userId= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2020-03-02 09:44:04.786 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:04.787 26206-26206/? D/AppsPredictionProvider: NextAppCoreObserver onChange:false
2020-03-02 09:44:04.788 26134-26162/? I/TENGINE: Creating quad: DebugBackgroundLeft
2020-03-02 09:44:04.788 26134-26162/? I/TENGINE: Creating quad: DebugBackgroundLeftBorder
2020-03-02 09:44:04.788 26134-26162/? I/TENGINE: Creating quad: DebugBackgroundTop
2020-03-02 09:44:04.789 26134-26162/? I/TENGINE: Creating quad: DebugBackgroundTopBorder
2020-03-02 09:44:04.789 26134-26162/? I/TENGINE: Creating font: fonts/proggytiny_14_normal
2020-03-02 09:44:04.789 26134-26162/? I/TENGINE: Creating font: fonts/proggytiny_21_normal
2020-03-02 09:44:04.793 26206-26235/? D/AppsPredictionProvider: app prediction list:com.facebook.katana,com.android.chrome,com.facebook.orca,com.snapchat.android,com.google.android.apps.maps,se.avanzabank.androidapplikation,com.google.android.gm,com.asus.camera,com.addictive.strategy.army,com.computerlunch.evolution,com.bankid.bus,com.Slack,com.azurgames.idle,se.swedbank.mobil,com.spotify.music
2020-03-02 09:44:04.793 26206-26235/? D/AppsPredictionProvider: app prediction user id list:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2020-03-02 09:44:04.793 26134-26162/? I/TENGINE: Creating font: fonts/proggytiny_14_normal
2020-03-02 09:44:04.795 1453-1453/? W/JobServiceContext: App Op not allow JobScheduler to start app com.reddit.frontpage/10304
2020-03-02 09:44:04.795 1453-1453/? D/JobScheduler: Error executing JobStatus{f42d004 #u0a304/2 com.reddit.frontpage/androidx.work.impl.background.systemjob.SystemJobService u=0 s=10304 TIME=-2d8h32m14s164ms:none BATNOTLOW READY}
2020-03-02 09:44:04.795 1453-1453/? W/JobServiceContext: App Op not allow JobScheduler to start app com.reddit.frontpage/10304
2020-03-02 09:44:04.795 1453-1453/? D/JobScheduler: Error executing JobStatus{f42d004 #u0a304/2 com.reddit.frontpage/androidx.work.impl.background.systemjob.SystemJobService u=0 s=10304 TIME=-2d8h32m14s164ms:none BATNOTLOW READY}
2020-03-02 09:44:04.797 26134-26162/? I/TENGINE: Creating camera: 3D Camera
2020-03-02 09:44:04.797 26134-26162/? I/TENGINE: Creating camera: 2D Camera
2020-03-02 09:44:04.802 26134-26162/? I/TENGINE: Creating font: fonts/proggytiny_21_normal
2020-03-02 09:44:04.803 26134-26162/? I/TENGINE: Noesis Init v2.2.5 (Android on ARM64 Profile)
2020-03-02 09:44:04.805 795-795/? I/QTI PowerHAL: power_hint =8 data=0
2020-03-02 09:44:04.805 795-795/? I/QTI PowerHAL: power_hint_override hint=8, data=0, data=0
2020-03-02 09:44:04.808 1453-1508/? D/ActivityTrigger: ActivityTrigger activityStopTrigger
2020-03-02 09:44:04.812 26206-26206/? D/LauncherLife: [onStop] called, Launcher@31e591f
2020-03-02 09:44:04.816 1453-1506/? I/ActivityManager: Displayed se.tension.gateway.app/.TenGineActivity: +392ms
2020-03-02 09:44:04.818 2889-2965/? D/PowerSaverHandler: PACKAGE_NAME: se.tension.gateway.app, isAutoStart: false
2020-03-02 09:44:04.818 26206-26206/? V/LauncherLife: Time spent in onStop: 6 ms
2020-03-02 09:44:04.818 2889-2889/? D/TaskWatcherService: pkgName: se.tension.gateway.app taskId: 8168 game app:0
2020-03-02 09:44:04.818 2889-2965/? D/OpenedTimeAppInfoProvider: Update DB : number of affected records : 1
2020-03-02 09:44:04.818 2889-2889/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1531 android.content.ContextWrapper.startService:671 com.asus.powersaver.TaskWatcherService$IncomingHandler.handleMessage:112 android.os.Handler.dispatchMessage:106 android.os.Looper.loop:198
2020-03-02 09:44:04.820 2889-2889/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1005 android.content.ContextWrapper.sendBroadcast:451 com.asus.powersaver.TaskWatcherService$IncomingHandler.handleMessage:127 android.os.Handler.dispatchMessage:106 android.os.Looper.loop:198
2020-03-02 09:44:04.820 2889-2889/? D/PowerSaverService: onStartCommand PowerSaverService:
2020-03-02 09:44:04.820 2889-2889/? D/PowerSaverService: current package:se.tension.gateway.app act:se.tension.gateway.app.TenGineActivity sMode:0 pMode:2, game:0
2020-03-02 09:44:04.822 2889-2965/? I/AppOpsStatusUpdateHandler: pkgName = se.tension.gateway.app
2020-03-02 09:44:04.822 2889-2965/? I/AppOpsStatusUpdateHandler: taskId = 8168
2020-03-02 09:44:04.822 2889-2965/? D/CNAppLockHandler: CNAppLockHandler handleAppFocus
2020-03-02 09:44:04.822 2889-2965/? D/GameGenieHandler: packageName: se.tension.gateway.app taskId: 8168 reason: report-launched isExternalDisplay: false isWorkingOnExternalDisplay: false isFirstLaunchInMem: false
2020-03-02 09:44:04.822 2889-2965/? D/GameGenieHandler: intent: Intent { cmp=se.tension.gateway.app/.TenGineActivity } action: null className: se.tension.gateway.app.TenGineActivity
2020-03-02 09:44:04.823 2889-2965/? D/GameGenieHandler: PACKAGE_NAME: se.tension.gateway.app, isAutoStart: false
2020-03-02 09:44:04.824 2889-2965/? D/GameGenieHandler: isGameGenieStart false
2020-03-02 09:44:04.824 2889-2965/? D/GameGenieHandler: triggerGameGenieIntent isKeyguradLocked: false
2020-03-02 09:44:04.824 2889-2965/? D/GameGenieHandler: mLastTriggerIntent: null
2020-03-02 09:44:04.825 2889-2965/? D/GameGenieHandler: PACKAGE_NAME: se.tension.gateway.app, isAutoStart: false
2020-03-02 09:44:04.826 2889-2965/? D/GameGenieHandler: PACKAGE_NAME: se.tension.gateway.app, isGame: false
2020-03-02 09:44:04.826 2889-2965/? V/GameGenieHandler: Start set gaming type
2020-03-02 09:44:04.826 2889-2965/? D/GameGenieHandler: isAutoStartApp = false, isGameApp = false, isExternalDisplay = false
2020-03-02 09:44:04.826 2889-2965/? V/GameGenieHandler: End set gaming type
2020-03-02 09:44:04.834 2889-2966/? D/GameModeHandler: handleAppFocus exit
2020-03-02 09:44:04.853 26134-26162/? I/TENGINE: 'NoesisTheme.xaml' loaded
2020-03-02 09:44:04.853 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_ambient_vertex
2020-03-02 09:44:04.860 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_ambient_pixel
2020-03-02 09:44:04.862 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.863 26134-26162/? I/TENGINE: Creating shader program: mesh_default_ambient
2020-03-02 09:44:04.868 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 6 ms
2020-03-02 09:44:04.873 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_directional_vertex
2020-03-02 09:44:04.882 4255-4255/? D/TCSystemService: get app's name: se.tension.gateway.app
2020-03-02 09:44:04.883 4255-4255/? D/TouchpadMgrServ: vsyncAlgorithmOnOrOff set true is success
2020-03-02 09:44:04.883 844-2795/? E/SurfaceFlinger: onTransact: code=20001
2020-03-02 09:44:04.883 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_directional_pixel
2020-03-02 09:44:04.883 4255-4255/? D/TouchpadNative: write touch sysfs success
2020-03-02 09:44:04.886 26134-26162/? I/TENGINE: Creating shader program: mesh_default_directional
2020-03-02 09:44:04.899 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_point_vertex
2020-03-02 09:44:04.901 20775-25300/? I/PBSessionCacheImpl: Deleted sessionId[91370999177130991] from persistence.
2020-03-02 09:44:04.903 20775-20844/? W/SearchServiceCore: Abort, client detached.
2020-03-02 09:44:04.904 20775-20844/? I/StreamController: cleanUpControllerScope(nowcards-15-64d9421d-8e7f)
2020-03-02 09:44:04.907 2862-13619/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 phoneId=0
2020-03-02 09:44:04.907 2862-13619/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 retVal=false
2020-03-02 09:44:04.909 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_point_pixel
2020-03-02 09:44:04.912 26134-26162/? I/TENGINE: Creating shader program: mesh_default_point
2020-03-02 09:44:04.913 844-927/? W/SurfaceFlinger: Attempting to set client state on removed layer: Splash Screen se.tension.gateway.app#0
2020-03-02 09:44:04.913 844-927/? W/SurfaceFlinger: Attempting to destroy on removed layer: Splash Screen se.tension.gateway.app#0
2020-03-02 09:44:04.924 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.926 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_spot_vertex
2020-03-02 09:44:04.926 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_default_spot_pixel
2020-03-02 09:44:04.929 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:04.929 26134-26162/? I/TENGINE: Creating shader program: mesh_default_spot
2020-03-02 09:44:04.943 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.944 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_video_vertex
2020-03-02 09:44:04.948 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:04.951 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_video_pixel
2020-03-02 09:44:04.954 26134-26162/? I/TENGINE: Creating shader program: mesh_video
2020-03-02 09:44:04.964 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_default_vertex
2020-03-02 09:44:04.968 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_default_pixel
2020-03-02 09:44:04.969 26134-26162/? I/TENGINE: Creating shader program: quad_default
2020-03-02 09:44:04.972 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_video_vertex
2020-03-02 09:44:04.972 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_video_pixel
2020-03-02 09:44:04.974 26134-26162/? I/TENGINE: Creating shader program: quad_video
2020-03-02 09:44:04.978 26134-26162/? I/TENGINE: Creating shader: shaders/android/sprite_default_vertex
2020-03-02 09:44:04.978 26134-26162/? I/TENGINE: Creating shader: shaders/android/sprite_default_pixel
2020-03-02 09:44:04.978 26134-26162/? I/TENGINE: Creating shader program: sprite_default
2020-03-02 09:44:04.979 26134-26162/? I/TENGINE: Creating shader: shaders/android/font_default_vertex
2020-03-02 09:44:04.979 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:04.982 26134-26162/? I/TENGINE: Creating shader: shaders/android/font_default_pixel
2020-03-02 09:44:04.983 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:04.984 26134-26162/? I/TENGINE: Creating shader program: font_default
2020-03-02 09:44:04.986 26134-26162/? I/TENGINE: Creating shader: shaders/android/debug_default_vertex
2020-03-02 09:44:04.989 26134-26162/? I/TENGINE: Creating shader: shaders/android/debug_default_pixel
2020-03-02 09:44:04.991 26134-26162/? I/TENGINE: Creating shader program: debug_default
2020-03-02 09:44:04.993 26134-26162/? I/TENGINE: Creating shader: shaders/android/particle_default_vertex
2020-03-02 09:44:04.993 26134-26162/? I/TENGINE: Creating shader: shaders/android/particle_default_pixel
2020-03-02 09:44:04.994 26134-26162/? I/TENGINE: Creating shader program: particle_default
2020-03-02 09:44:04.994 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_surface_vertex
2020-03-02 09:44:04.994 26134-26162/? I/TENGINE: Creating shader: shaders/android/mesh_surface_pixel
2020-03-02 09:44:04.997 26134-26162/? I/TENGINE: Creating shader program: mesh_surface
2020-03-02 09:44:05.007 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.008 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_surface_vertex
2020-03-02 09:44:05.008 26134-26162/? I/TENGINE: Creating shader: shaders/android/quad_surface_pixel
2020-03-02 09:44:05.011 26134-26162/? I/TENGINE: Creating shader program: quad_surface
2020-03-02 09:44:05.012 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:05.015 842-16295/? V/AudioFlinger: registerClient() client 0xe79be600, pid 26134
2020-03-02 09:44:05.015 842-16295/? V/AudioFlinger: sendConfigEvent_l() num events 1 event 0
2020-03-02 09:44:05.016 842-16295/? V/AudioFlinger: sendConfigEvent_l() num events 1 event 0
2020-03-02 09:44:05.016 842-1558/? V/AudioFlinger: thread 0xe7283480 type 0 TID 1558 waking up
2020-03-02 09:44:05.016 842-16295/? V/AudioFlinger: sendConfigEvent_l() num events 1 event 0
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: thread 0xe6c83f40 type 0 TID 1559 waking up
2020-03-02 09:44:05.016 842-16295/? V/AudioFlinger: sendConfigEvent_l() num events 1 event 0
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: thread 0xe6b03bc0 type 0 TID 1561 waking up
2020-03-02 09:44:05.016 842-1558/? V/AudioFlinger: acquireWakeLock_l() AudioOut_D status 0
2020-03-02 09:44:05.016 842-1558/? D/AudioFlinger: updateWakeLockUids_l AudioOut_D uids:
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: acquireWakeLock_l() AudioOut_1D status 0
2020-03-02 09:44:05.016 842-1559/? D/AudioFlinger: updateWakeLockUids_l AudioOut_1D uids:
2020-03-02 09:44:05.016 842-1558/? V/AudioFlinger: updateWakeLockUids_l() AudioOut_D status 0
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: updateWakeLockUids_l() AudioOut_1D status 0
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: acquireWakeLock_l() AudioOut_25 status 0
2020-03-02 09:44:05.016 842-1561/? D/AudioFlinger: updateWakeLockUids_l AudioOut_25 uids:
2020-03-02 09:44:05.016 842-1558/? V/AudioFlinger: processConfigEvents_l() remaining events 1
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: updateWakeLockUids_l() AudioOut_25 status 0
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: processConfigEvents_l() remaining events 1
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: PlaybackThread::ioConfigChanged, thread 0xe6c83f40, event 0
2020-03-02 09:44:05.016 842-1558/? V/AudioFlinger: PlaybackThread::ioConfigChanged, thread 0xe7283480, event 0
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: processConfigEvents_l() remaining events 1
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: PlaybackThread::ioConfigChanged, thread 0xe6b03bc0, event 0
2020-03-02 09:44:05.016 842-1559/? V/AudioFlinger: processConfigEvents_l() DONE thread 0xe6c83f40
2020-03-02 09:44:05.016 842-1563/? V/AudioFlinger: thread 0xe6783140 type 0 TID 1563 waking up
2020-03-02 09:44:05.016 842-1561/? V/AudioFlinger: processConfigEvents_l() DONE thread 0xe6b03bc0
2020-03-02 09:44:05.016 842-1563/? V/AudioFlinger: acquireWakeLock_l() AudioOut_2D status 0
2020-03-02 09:44:05.017 842-1563/? D/AudioFlinger: updateWakeLockUids_l AudioOut_2D uids:
2020-03-02 09:44:05.017 842-1563/? V/AudioFlinger: updateWakeLockUids_l() AudioOut_2D status 0
2020-03-02 09:44:05.017 842-1563/? V/AudioFlinger: processConfigEvents_l() remaining events 1
2020-03-02 09:44:05.017 842-1563/? V/AudioFlinger: PlaybackThread::ioConfigChanged, thread 0xe6783140, event 0
2020-03-02 09:44:05.017 842-1558/? V/AudioFlinger: processConfigEvents_l() DONE thread 0xe7283480
2020-03-02 09:44:05.017 26134-26162/? I/libOpenSLES: Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
2020-03-02 09:44:05.017 842-16295/? V/APM_AudioPolicyManager: getOutputForAttr() usage=1, content=2, tag= flags=00000000 session 43745 selectedDeviceId 0
2020-03-02 09:44:05.017 842-16295/? V/APM_AudioPolicyManager: getOutputForAttr() device 0x2, sampling rate 48000, format 0x1, channel mask 0x3, flags 0x104
2020-03-02 09:44:05.017 842-16295/? V/APM_AudioPolicyManager: selectOutput() commonFlags for output 13, 0001
2020-03-02 09:44:05.017 842-16295/? V/AudioPolicyManagerCustom: getOutputForDevice() returns output 13
2020-03-02 09:44:05.017 842-1563/? V/AudioFlinger: processConfigEvents_l() DONE thread 0xe6783140
2020-03-02 09:44:05.017 842-16295/? V/APM_AudioPolicyManager: getOutputForAttr() returns output 13 selectedDeviceId 3
2020-03-02 09:44:05.017 842-16295/? V/AudioFlinger: createTrack() sessionId: 43745
2020-03-02 09:44:05.017 842-16295/? W/AudioFlinger: createTrack_l(): mismatch between requested flags (00000104) and output flags (00000006)
2020-03-02 09:44:05.017 842-16295/? V/AudioFlinger: AUDIO_OUTPUT_FLAG_FAST accepted: frameCount=192 mFrameCount=192
2020-03-02 09:44:05.017 842-16295/? D/AudioFlinger: Client defaulted notificationFrames to 192 for frameCount 768
2020-03-02 09:44:05.017 842-16295/? V/AudioFlinger: sendConfigEvent_l() num events 1 event 1
2020-03-02 09:44:05.017 842-1558/? V/AudioFlinger: processConfigEvents_l() remaining events 1
2020-03-02 09:44:05.017 842-1558/? V/AudioFlinger: processConfigEvents_l() DONE thread 0xe7283480
2020-03-02 09:44:05.018 779-779/? D/compress_voip: voice_extn_compress_voip_out_get_parameters: enter
2020-03-02 09:44:05.018 26134-26162/? I/AudioTrack: AUDIO_OUTPUT_FLAG_FAST successful; frameCount 0 -> 768
2020-03-02 09:44:05.018 842-16295/? V/AudioFlinger: acquiring 43745 from 26134, for 26134
2020-03-02 09:44:05.018 842-16295/? V/AudioFlinger: added new entry for 43745
2020-03-02 09:44:05.019 842-16295/? V/AudioFlinger: start(1), calling pid 26134 session 43745
2020-03-02 09:44:05.019 842-16295/? V/AudioFlinger: AUDIO_SET_AUDIOWIZARD_CHANNEL_COUNT mAudioWizardChannelCount(2)
2020-03-02 09:44:05.019 842-16295/? V/AudioFlinger: ? => ACTIVE (1) on thread 0xe7db8200
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: startOutput() output 13, stream 3, session 43745
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: selectOutputForMusicEffects activeOnly 1 output 13 flags 0x00000006
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: selectOutputForMusicEffects selected output 13
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: getNewOutputDevice() selected device 2
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: setOutputDevice() device 0002 delayMs 0
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: setOutputDevice() prevDevice 0x0002
2020-03-02 09:44:05.020 842-1482/? V/APM_AudioPolicyManager: setOutputDevice() setting same device 0x0002 or null device
2020-03-02 09:44:05.020 842-1482/? V/AudioPolicyManagerCustom: checkOutputForStrategy(): policy related outputs
2020-03-02 09:44:05.020 842-16295/? V/AudioFlinger: signal playback thread
2020-03-02 09:44:05.020 842-1558/? D/AudioFlinger: updateWakeLockUids_l AudioOut_D uids:10378
2020-03-02 09:44:05.020 842-1558/? V/AudioFlinger: updateWakeLockUids_l() AudioOut_D status 0
2020-03-02 09:44:05.020 779-3955/? D/audio_hw_primary: start_output_stream: enter: stream(0xe8c3f000)usecase(1: low-latency-playback) devices(0x2)
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: select_devices for use case (low-latency-playback)
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: )
2020-03-02 09:44:05.021 779-3955/? I/msm8974_platform: platform_check_and_set_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 2, backend_idx 0 usecase = 1 device (speaker)
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(1) new_snd_devices(0)
2020-03-02 09:44:05.021 779-3955/? I/msm8974_platform: platform_check_and_set_codec_backend_cfg: new_snd_devices[0] is 2
2020-03-02 09:44:05.021 779-3955/? I/msm8974_platform: platform_check_codec_backend_cfg:becf: afe: bitwidth 16, samplerate 48000 channels 2, backend_idx 0 usecase = 1 device (speaker)
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_check_codec_backend_cfg:becf: afe: playback on codec device not supporting native playback set default Sample Rate(48k)
2020-03-02 09:44:05.021 779-3955/? I/msm8974_platform: platform_check_codec_backend_cfg:becf: afe: Codec selected backend: 0 updated bit width: 16 and sample rate: 48000
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: check_usecases_codec_backend:becf: force routing 0
2020-03-02 09:44:05.021 779-3955/? E/msm8974_platform: platform_check_backends_match: Invalid snd_device =
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: check_usecases_codec_backend:becf: (63) check_usecases curr device: speaker, usecase device: backends match 0
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: check_usecases_codec_backend:becf: check_usecases num.of Usecases to switch 0
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.021 779-3955/? D/hardware_info: hw_info_append_hw_type : device_name = speaker
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_tfa98xx_feedback: can_enable_feedback_on_device: device 2 cause feedback
2020-03-02 09:44:05.021 779-3955/? D/hardware_info: hw_info_append_hw_type : device_name = vi-feedback
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(147) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_primary: enable_snd_device: snd_device(147: vi-feedback)
2020-03-02 09:44:05.021 779-3955/? I/soundtrigger: audio_extn_sound_trigger_update_device_status: device 0x93 of type 1 for Event 1, with Raise=0
2020-03-02 09:44:05.021 779-3955/? E/audio_route: Path: vi-feedback, length: 0
2020-03-02 09:44:05.021 779-3955/? D/audio_route: Apply path: vi-feedback
2020-03-02 09:44:05.021 779-3955/? D/soundtrigger: audio_extn_sound_trigger_update_stream_status: uc_info->id 48 of type 1 for Event 3, with Raise=0
2020-03-02 09:44:05.021 779-3955/? D/audio_hw_utils: audio_extn_utils_send_app_type_cfg: usecase->in_snd_device vi-feedback
2020-03-02 09:44:05.021 779-3955/? E/voice: voice_is_in_call_rec_stream: input stream is NULL
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(147) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.021 779-3955/? E/audio_hw_utils: send_app_type_cfg_for_device: Could not get ctl for mixer cmd - Audio Stream Capture 35 App Type Cfg
2020-03-02 09:44:05.021 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(147) num devices(1) new_snd_devices(0)
2020-03-02 09:44:05.021 779-3955/? D/ACDB-LOADER: ACDB -> send_audio_cal, acdb_id = 102, path = 1, app id = 0x11132, sample rate = 48000
2020-03-02 09:44:05.021 779-3955/? D/ACDB-LOADER: ACDB -> send_asm_topology
2020-03-02 09:44:05.021 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TOPOLOGY_ID
2020-03-02 09:44:05.021 779-3955/? D/ACDB-LOADER: ACDB -> send_adm_topology
2020-03-02 09:44:05.021 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_audtable
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_COMMON_TABLE_SIZE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_COMMON_TABLE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_CAL cal_type[11] acdb_id[102] app_type[69938]
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_audvoltable
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE_SIZE
2020-03-02 09:44:05.022 779-3955/? E/ACDB-LOADER: Error: ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE_SIZE Returned = -19
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE, vol index 0
2020-03-02 09:44:05.022 779-3955/? E/ACDB-LOADER: Error: ACDB AudProc vol returned = -19
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_VOL_CAL cal type = 12
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_STREAM_TABLE_SIZE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_audstrmtable
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_STREAM_TABLE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> audstrm_cal->cal_type.cal_data.cal_size = 20
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_afe_topology
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_TOPOLOGY_ID
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> GET_AFE_TOPOLOGY_ID for adcd_id 102, Topology Id 1000b909
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_afe_cal
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_INSTANCE_COMMON_TABLE_SIZE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_INSTANCE_COMMON_TABLE
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_AFE_CAL cal_type[17] acdb_id[102]
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> send_hw_delay : acdb_id = 102 path = 1
2020-03-02 09:44:05.022 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
2020-03-02 09:44:05.022 26134-26162/? I/TENGINE: Creating texture: textures/android/loading_background.pvr
2020-03-02 09:44:05.022 779-3955/? E/audio_hw_extn: audio_extn_set_custom_mtmx_params: invalid input stream for capture usecase id:48
2020-03-02 09:44:05.022 779-3955/? D/audio_hw_primary: enable_audio_route: apply mixer and update path: spkr-vi-record
2020-03-02 09:44:05.022 779-3955/? E/audio_route: Path: spkr-vi-record, length: 1
2020-03-02 09:44:05.022 779-3955/? E/audio_route: id=0: ctl=QUAT_MI2S_RX_VI_FB_MUX
2020-03-02 09:44:05.022 779-3955/? E/audio_route: id=0 value=1
2020-03-02 09:44:05.022 779-3955/? E/audio_route: id=1 value=1
2020-03-02 09:44:05.022 779-3955/? D/audio_route: Apply path: spkr-vi-record
2020-03-02 09:44:05.024 26134-26162/? I/TENGINE: Creating quad: modeload Fade Quad
2020-03-02 09:44:05.024 26134-26162/? I/TENGINE: Creating quad: modeload Load Quad
2020-03-02 09:44:05.024 26134-26162/? I/TENGINE: Creating quad: modeload Back Quad
2020-03-02 09:44:05.024 26134-26162/? I/TENGINE: Creating texture: textures/android/loading_background2.pvr
2020-03-02 09:44:05.025 26134-26162/? I/TENGINE: Creating quad: modeload Flash Quad
2020-03-02 09:44:05.025 26134-26162/? I/TENGINE: Creating quad: sceneload Fade Quad
2020-03-02 09:44:05.025 26134-26162/? I/TENGINE: Creating quad: sceneload Load Quad
2020-03-02 09:44:05.025 26134-26162/? I/TENGINE: Creating quad: sceneload Back Quad
2020-03-02 09:44:05.025 26134-26162/? I/TENGINE: Creating quad: sceneload Flash Quad
2020-03-02 09:44:05.027 779-3955/? E/audio_hw_tfa98xx_feedback: pcm file opened 35
2020-03-02 09:44:05.031 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.036 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:05.038 779-3955/? V/audio_hw_tfa98xx_feedback: audio_extn_tfa98xx_update_feedback: Exit
2020-03-02 09:44:05.038 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.038 779-3955/? D/audio_hw_primary: enable_snd_device: snd_device(2: speaker)
2020-03-02 09:44:05.038 779-3955/? I/soundtrigger: audio_extn_sound_trigger_update_device_status: device 0x2 of type 0 for Event 1, with Raise=0
2020-03-02 09:44:05.038 779-3955/? E/audio_route: Path: speaker, length: 1
2020-03-02 09:44:05.038 779-3955/? E/audio_route: id=0: ctl=TFA_CHIP_SELECTOR
2020-03-02 09:44:05.038 779-3955/? E/audio_route: id=0 value=0
2020-03-02 09:44:05.038 779-3955/? D/audio_route: Apply path: speaker
2020-03-02 09:44:05.039 779-3955/? D/audio_hw_tfa98xx_feedback: can_enable_feedback_on_device: device 2 cause feedback
2020-03-02 09:44:05.039 779-3955/? V/audio_hw_tfa98xx_feedback: audio_extn_tfa98xx_update_feedback: Exit
2020-03-02 09:44:05.039 779-3955/? D/soundtrigger: audio_extn_sound_trigger_update_stream_status: uc_info->id 1 of type 0 for Event 3, with Raise=0
2020-03-02 09:44:05.039 779-3955/? D/audio_hw_utils: audio_extn_utils_send_app_type_cfg: usecase->out_snd_device speaker
2020-03-02 09:44:05.039 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.039 779-3955/? D/audio_hw_utils: audio_extn_btsco_get_sample_rate:Not a BT SCO device, need not update sampling rate
2020-03-02 09:44:05.039 779-3955/? I/audio_hw_utils: send_app_type_cfg_for_device PLAYBACK app_type 69937, acdb_dev_id 15, sample_rate 48000, snd_device_be_idx 39
2020-03-02 09:44:05.040 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(1) new_snd_devices(0)
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_audio_cal, acdb_id = 15, path = 0, app id = 0x11131, sample rate = 48000
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_asm_topology
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_STREAM_TOPOLOGY_ID
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_adm_topology
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_audtable
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_COMMON_TABLE_SIZE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_COMMON_TABLE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_AUDPROC_CAL cal_type[11] acdb_id[15] app_type[69937]
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_audvoltable
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE_SIZE
2020-03-02 09:44:05.040 779-3955/? E/ACDB-LOADER: Error: ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE_SIZE Returned = -19
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_GAIN_DEP_STEP_TABLE, vol index 5
2020-03-02 09:44:05.040 779-3955/? E/ACDB-LOADER: Error: ACDB AudProc vol returned = -19
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_VOL_CAL cal type = 12
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_STREAM_TABLE_SIZE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_audstrmtable
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AUDPROC_INSTANCE_STREAM_TABLE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> audstrm_cal->cal_type.cal_data.cal_size = 20
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_afe_topology
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_TOPOLOGY_ID
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> GET_AFE_TOPOLOGY_ID for adcd_id 15, Topology Id 1000b910
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_afe_cal
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_INSTANCE_COMMON_TABLE_SIZE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_CMD_GET_AFE_INSTANCE_COMMON_TABLE
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> AUDIO_SET_AFE_CAL cal_type[16] acdb_id[15]
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> send_hw_delay : acdb_id = 15 path = 0
2020-03-02 09:44:05.040 779-3955/? D/ACDB-LOADER: ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY
2020-03-02 09:44:05.040 779-3955/? D/msm8974_platform: platform_split_snd_device: snd_device(2) num devices(0) new_snd_devices(0)
2020-03-02 09:44:05.040 779-3955/? I/msm8974_platform: platform_get_custom_mtmx_params: no matching param with id 0 ip_ch 2 op_ch 2 uc_id 1 snd_dev 2
2020-03-02 09:44:05.040 779-3955/? D/audio_hw_primary: enable_audio_route: apply mixer and update path: low-latency-playback speaker
2020-03-02 09:44:05.040 779-3955/? E/audio_route: Path: low-latency-playback speaker, length: 1
2020-03-02 09:44:05.040 779-3955/? E/audio_route: id=0: ctl=QUAT_MI2S_RX Audio Mixer MultiMedia5
2020-03-02 09:44:05.040 779-3955/? E/audio_route: id=0 value=1
2020-03-02 09:44:05.040 779-3955/? E/audio_route: id=1 value=1
2020-03-02 09:44:05.040 779-3955/? D/audio_route: Apply path: low-latency-playback speaker
2020-03-02 09:44:05.042 779-3955/? D/audio_hw_primary: select_devices: done
2020-03-02 09:44:05.043 779-3955/? D/msm8974_platform: platform_set_channel_map mixer_ctl_name:Playback Channel Map13
2020-03-02 09:44:05.043 779-3955/? D/msm8974_platform: platform_set_channel_map: set mapping(1 2 0 0 0 0 0 0) for channel:2
2020-03-02 09:44:05.057 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.061 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.064 26134-26162/? I/TENGINE: CommandHandler: APP_CMD_GAINED_FOCUS
2020-03-02 09:44:05.069 779-3955/? D/audio_hw_primary: start_output_stream: exit
2020-03-02 09:44:05.074 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.079 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.102 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.106 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.119 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.123 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.144 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.147 26134-26162/? I/TENGINE: Creating thread: LoadEntry
2020-03-02 09:44:05.147 26134-26180/? I/TENGINE: Creating quad: splash_tengine
2020-03-02 09:44:05.150 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.157 31221-31248/? D/AppInstallController: packageName =se.tension.gateway.app, scanResult=RESULT_OK
2020-03-02 09:44:05.158 1453-4021/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:05.158 1453-4021/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:05.159 1453-4021/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:05.160 1453-4019/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:05.160 1453-4019/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:05.160 1453-4019/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:05.166 1453-13885/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:05.166 1453-13885/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:05.166 1453-13885/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:05.168 1453-13885/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:05.168 1453-13885/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:05.168 1453-13885/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:05.169 1453-13885/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:05.169 1453-13885/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:05.169 1453-13885/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:05.179 26134-26162/? I/TENGINE: Destroying thread: LoadEntry
2020-03-02 09:44:05.196 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.200 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:05.218 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.222 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.245 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.249 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:05.265 1453-1453/? I/NotificationService: Cannot find enqueued record for key: 0|com.asus.mobilemanager|100|null|10011
2020-03-02 09:44:05.278 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.282 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.299 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.303 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 5 ms
2020-03-02 09:44:05.362 17240-26101/? D/GameUtils: Retry too many times, don't fetch category from internet
2020-03-02 09:44:05.366 17240-26101/? V/[AppInfoRetriever]: queryAppFromAsusLauncher took 4 ms
2020-03-02 09:44:05.379 2889-15572/? V/GameAppProvider: [update] package name: com.asus.gamewidget.allparsed
2020-03-02 09:44:05.732 20450-22882/? I/Icing: Indexing com.google.android.gms-apps from com.google.android.gms
2020-03-02 09:44:05.760 20450-24521/? I/Icing: Indexing done com.google.android.gms-apps
2020-03-02 09:44:05.775 20450-24521/? I/Icing: Indexing com.google.android.gms-apps from com.google.android.gms
2020-03-02 09:44:05.775 20450-24521/? I/Icing: Indexing done com.google.android.gms-apps
2020-03-02 09:44:05.865 1453-5820/? I/OpenGLRenderer: Initialized EGL, version 1.4
2020-03-02 09:44:05.865 1453-5820/? D/OpenGLRenderer: Swap behavior 2
2020-03-02 09:44:06.020 2889-5899/? I/AudioFocusListHandler: AudioFocusHandler update
2020-03-02 09:44:06.020 2889-5899/? I/AudioFocusHandler: list: com.asus.camera
2020-03-02 09:44:06.020 2889-5899/? I/AudioFocusHandler: list: com.facebook.katana
2020-03-02 09:44:06.020 2889-5899/? I/AudioFocusHandler: list: se.tension.gateway.app
2020-03-02 09:44:06.020 2889-5899/? I/AudioFocusHandler: list: com.facebook.orca
2020-03-02 09:44:06.021 2889-5899/? D/AudioFocusListHandler: Update DB : number of affected records : 1
2020-03-02 09:44:06.116 14070-25760/? W/cgjy: [{0}] Failed to resolve name. status={1}
2020-03-02 09:44:06.212 1198-1339/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
2020-03-02 09:44:06.284 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=21
2020-03-02 09:44:06.284 3120-3120/? D/QcrilMsgTunnelIfaceManager: handleMessage what = 0
2020-03-02 09:44:06.297 1453-4019/? D/AlarmManagerService: Kernel timezone updated to -60 minutes west of GMT
2020-03-02 09:44:06.299 2585-2951/? D/NetworkController.MobileSignalController(1): onServiceStateChanged voiceState=0 dataState=0
2020-03-02 09:44:06.299 2585-2951/? D/NetworkController.MobileSignalController(1): updateTelephonySignalStrength: hasService=true ss=SignalStrength: 99 0 -120 -160 -120 -160 -1 27 -79 -8 186 2147483647 0 2147483647 99 255 2147483647 gsm|lte use_rsrp_and_rssnr_for_lte_level [-126, -119, -114, -109, -100] [-113, -106, -101, -96, -89]
2020-03-02 09:44:06.299 2585-2951/? D/NetworkController.MobileSignalController(1): Change in state from: connected=true,enabled=true,level=5,inetCondition=1,iconGroup=IconGroup(4G),activityIn=false,activityOut=false,rssi=0,lastModified=03-02 09:43:54,dataSim=true,networkName=hallon,networkNameData=hallon,dataConnected=false,roaming=false,isDefault=false,isEmergency=false,airplaneMode=false,
        to: connected=true,enabled=true,level=5,inetCondition=1,iconGroup=IconGroup(4G+),activityIn=false,activityOut=false,rssi=0,lastModified=03-02 09:43:54,dataSim=true,networkName=hallon,networkNameData=hallon,dataConnected=false,roaming=false,isDefault=false,isEmergency=false,airplaneMode=false,
2020-03-02 09:44:06.303 2862-2862/? D/ServiceStateProvider: subId=1
2020-03-02 09:44:06.303 2862-2862/? D/ChangeTimeZoneReceiver: ChangeTimeZoneReceiver onReceive(): action = android.intent.action.NETWORK_SET_TIMEZONE
2020-03-02 09:44:06.303 2862-2862/? D/ChangeTimeZoneReceiver: ChangeTimeZoneReceiver onReceive(): intent.getAction() == TelephonyIntents.ACTION_NETWORK_SET_TIMEZONE, unregister mAutoTimeZoneObserver and cancel mPendingIntent
2020-03-02 09:44:06.303 2862-2862/? D/PhoneGlobals: [mPhoneStateListener] onServiceStateChanged, subId[0] = 1, phoneId = 0
2020-03-02 09:44:06.303 2862-2862/? D/PhoneGlobals: [mPhoneStateListener] onServiceStateChanged, state.getState() = 0
2020-03-02 09:44:06.303 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: tryToNotifyOffDataRoamingOption(), bRoaming = false, slot = 0
2020-03-02 09:44:06.303 31995-31995/? I/CarrierServices: [2] csb.onReceive: Received SERVICE_STATE intent, clearing cached cell info
2020-03-02 09:44:06.304 2862-13619/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 phoneId=0
2020-03-02 09:44:06.304 2862-3180/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 phoneId=0
2020-03-02 09:44:06.304 2585-2585/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.SERVICE_STATE
2020-03-02 09:44:06.304 2585-2585/? V/KeyguardUpdateMonitor: action android.intent.action.SERVICE_STATE serviceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=6200, duplexMode()=1, mCellBandwidths=[10000, 10000], mVoiceRoamingType=home, mDataRoamingType=home, mVoiceOperatorAlphaLong=hallon, mVoiceOperatorAlphaShort=hallon, mDataOperatorAlphaLong=hallon, mDataOperatorAlphaShort=hallon, isManualNetworkSelection=false(automatic), mRilVoiceRadioTechnology=14(LTE), mRilDataRadioTechnology=14(LTE), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, mIsDataRoamingFromRegistration=false, mIsUsingCarrierAggregation=true, mLteEarfcnRsrpBoost=0, mNetworkRegistrationStates=[]} subId=1
2020-03-02 09:44:06.304 2862-13619/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 retVal=false
2020-03-02 09:44:06.304 2585-2585/? D/KeyguardUpdateMonitor: handleServiceStateChange(subId=1, serviceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=6200, duplexMode()=1, mCellBandwidths=[10000, 10000], mVoiceRoamingType=home, mDataRoamingType=home, mVoiceOperatorAlphaLong=hallon, mVoiceOperatorAlphaShort=hallon, mDataOperatorAlphaLong=hallon, mDataOperatorAlphaShort=hallon, isManualNetworkSelection=false(automatic), mRilVoiceRadioTechnology=14(LTE), mRilDataRadioTechnology=14(LTE), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, mIsDataRoamingFromRegistration=false, mIsUsingCarrierAggregation=true, mLteEarfcnRsrpBoost=0, mNetworkRegistrationStates=[]}
2020-03-02 09:44:06.304 2585-2585/? D/CarrierText: updateCarrierText(): 1
2020-03-02 09:44:06.304 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, isNonRoamingInService = true
2020-03-02 09:44:06.304 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, state.getRoaming() = false, phone.getDataRoamingEnabled() = true
2020-03-02 09:44:06.305 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getMobileSlot(): slotId = 0
2020-03-02 09:44:06.305 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getRoamingNotificationDB: iRoamingNotificationState = 1, ret = true
2020-03-02 09:44:06.305 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, mobileDataOn = false
2020-03-02 09:44:06.305 2862-2862/? D/PhoneGlobals: onServiceStateChanged(): AsusPhoneUtils.sServiceState = 0, AsusPhoneUtils.sServiceState2 = 1
2020-03-02 09:44:06.305 2862-2862/? D/PhoneGlobals: handleMessage() msg.what: 102
2020-03-02 09:44:06.305 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: cancelDataRoamingAccessAllowed(): iSlotId = 0
2020-03-02 09:44:06.305 1453-1508/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:06.305 1453-1508/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:06.305 1453-1508/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:06.305 2862-3180/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 retVal=false
2020-03-02 09:44:06.305 2862-2862/? D/PhoneGlobals: onReceive(): action = android.intent.action.SERVICE_STATE
2020-03-02 09:44:06.305 2862-2862/? D/PhoneGlobals: mReceiver: ACTION_SERVICE_STATE_CHANGED
2020-03-02 09:44:06.305 2862-2862/? D/PhoneGlobals: handleServiceStateChanged: intent = Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 (has extras) }
2020-03-02 09:44:06.305 2862-2862/? V/PhoneGlobals: handleServiceStateChanged
2020-03-02 09:44:06.305 22235-22235/? V/AsusCellBroadcast: [CellBroadcastReceiver] onReceive Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 cmp=com.android.cellbroadcastreceiver/.CellBroadcastReceiver (has extras) } , privileged=false
2020-03-02 09:44:06.305 2585-2585/? D/CarrierText: isBrazilCountryCode(): subId = 1 / simCountryISO = se / result = false
2020-03-02 09:44:06.306 1453-13885/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:06.306 1453-13885/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:06.306 1453-13885/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:06.306 2585-2585/? D/CarrierText: subId:1 / status:Normal / ss:true
2020-03-02 09:44:06.306 2585-2585/? D/CarrierText: getRoaming:false
2020-03-02 09:44:06.306 2585-2585/? D/CarrierText: Handling (subId=1): READY hallon
2020-03-02 09:44:06.306 2585-2585/? D/CarrierText: Handling subId=1 simState=READY carrierName=hallon carrierTextForSimState=hallon mSimSlotMessage={}
2020-03-02 09:44:06.306 2585-2585/? D/CarrierText: displayText=null carrierTextForSimState=hallon
2020-03-02 09:44:06.306 2862-2862/? D/PhoneGlobals: handleServiceStateChanged: state = 0, ss.getVoiceRoaming() = false
2020-03-02 09:44:06.306 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: setHasShowedmRoamingDialog(): on = false, slotId = 0
2020-03-02 09:44:06.307 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getMobileSlot(): slotId = 0
2020-03-02 09:44:06.307 2862-2862/? V/PhoneGlobals: subId=1,mDefaultDataSubId=1,ss roaming=false
2020-03-02 09:44:06.307 2862-2862/? V/PhoneGlobals: updateDataRoamingStatus
2020-03-02 09:44:06.307 2585-2585/? D/CarrierText: displayText--hallon
2020-03-02 09:44:06.307 2585-2585/? D/CarrierText: updateCarrierText(): 1
2020-03-02 09:44:06.308 2585-2585/? D/CarrierText: isBrazilCountryCode(): subId = 1 / simCountryISO = se / result = false
2020-03-02 09:44:06.308 2585-2951/? D/NetworkController: onReceive: intent=Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 (has extras) }
2020-03-02 09:44:06.309 2862-2862/? V/PhoneGlobals: dataAllowed=false, reasons=Data disallowed, reasons: DATA_DISABLED
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus dataAllowed = false, reasons = Data disallowed, reasons: DATA_DISABLED, mNoDataDueToRoaming = false
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bROAMING_DISABLED_NOT_ATTACHED = false
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bNOT_ATTACHED_ROAMING_DISABLED = false
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bAsusRoamingDisabled = false
2020-03-02 09:44:06.309 8965-8965/? D/SimCardReceiver: onReceive actioncode: android.intent.action.SERVICE_STATE
2020-03-02 09:44:06.309 2585-2585/? D/CarrierText: subId:1 / status:Normal / ss:true
2020-03-02 09:44:06.309 2585-2585/? D/CarrierText: getRoaming:false
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: handleMessage() msg.what: 11
2020-03-02 09:44:06.309 2862-2862/? D/PhoneGlobals: mHandler: EVENT_DATA_ROAMING_OK
2020-03-02 09:44:06.309 2585-2585/? D/CarrierText: Handling (subId=1): READY hallon
2020-03-02 09:44:06.309 2585-2585/? D/CarrierText: Handling subId=1 simState=READY carrierName=hallon carrierTextForSimState=hallon mSimSlotMessage={}
2020-03-02 09:44:06.309 2585-2585/? D/CarrierText: displayText=null carrierTextForSimState=hallon
2020-03-02 09:44:06.310 2585-2585/? D/CarrierText: displayText--hallon
2020-03-02 09:44:06.311 1453-13885/? D/Telecom: TelecomServiceImpl: getCallCapablePhoneAccounts callingPackage = com.asus.contacts
2020-03-02 09:44:06.311 1453-13885/? D/Telecom: TelecomServiceImpl: canReadPhoneState callingPackage = com.asus.contacts: TSI.gCCPA@W4Q
2020-03-02 09:44:06.311 1453-13885/? D/Telecom: TelecomServiceImpl: isPrivilegedDialerCalling = com.asus.contacts: TSI.gCCPA@W4Q
2020-03-02 09:44:06.312 8965-26185/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] accountHandles size = 1, slotId = 0
2020-03-02 09:44:06.314 2862-3140/? D/PhoneUtils: getPhoneForPhoneAccountHandle handle.getComponentName().equals(getPstnConnectionServiceName()) = true
2020-03-02 09:44:06.316 8965-26185/? D/PhoneCapabilityTester: sim1 isActive = true
2020-03-02 09:44:06.317 1453-4021/? D/Telecom: TelecomServiceImpl: getCallCapablePhoneAccounts callingPackage = com.asus.contacts
2020-03-02 09:44:06.318 1453-4021/? D/Telecom: TelecomServiceImpl: canReadPhoneState callingPackage = com.asus.contacts: TSI.gCCPA@W4c
2020-03-02 09:44:06.318 1453-4021/? D/Telecom: TelecomServiceImpl: isPrivilegedDialerCalling = com.asus.contacts: TSI.gCCPA@W4c
2020-03-02 09:44:06.318 8965-26185/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] accountHandles size = 1, slotId = 1
2020-03-02 09:44:06.319 2862-3140/? D/PhoneUtils: getPhoneForPhoneAccountHandle handle.getComponentName().equals(getPstnConnectionServiceName()) = true
2020-03-02 09:44:06.319 8965-26185/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] Can't find PhoneAccountHandle for slot:1
2020-03-02 09:44:06.319 8965-26185/? D/PhoneCapabilityTester: sim2 isActive = false
2020-03-02 09:44:06.449 816-846/? E/ANDR-PERF-RESOURCEQS: pending level < current->level, so apply next pending optimization
2020-03-02 09:44:06.553 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=21
2020-03-02 09:44:06.554 3120-3120/? D/QcrilMsgTunnelIfaceManager: handleMessage what = 0
2020-03-02 09:44:06.569 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=21
2020-03-02 09:44:06.570 3120-3120/? D/QcrilMsgTunnelIfaceManager: handleMessage what = 0
2020-03-02 09:44:06.670 3340-4578/? D/ClClient: Not sending keepalive. Current connection state=STOPPED
2020-03-02 09:44:07.016 844-844/? I/BufferQueueConsumer: se.tension.gateway.app/se.tension.gateway.app.TenGineActivity#0, Set Low Latency Mode = 1, IntervalNsec = 1000000000
2020-03-02 09:44:07.078 1453-3957/? V/BackupManagerConstants: getFullBackupRequiredNetworkType(...) returns 2
2020-03-02 09:44:07.078 1453-3957/? V/BackupManagerConstants: getFullBackupRequireCharging(...) returns true
2020-03-02 09:44:07.267 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=21
2020-03-02 09:44:07.267 3120-3120/? D/QcrilMsgTunnelIfaceManager: handleMessage what = 0
2020-03-02 09:44:07.285 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=21
2020-03-02 09:44:07.285 3120-3120/? D/QcrilMsgTunnelIfaceManager: handleMessage what = 0
2020-03-02 09:44:07.295 2862-3106/? I/QImsService: ImsSenderRxr : [UNSL]< UNSOL_VOPS_CHANGED false[SUB0]
2020-03-02 09:44:07.298 3120-3144/? I/QcrilOemhookMsgTunnel: [0]processOemHookIndication length=22
2020-03-02 09:44:07.299 2862-2862/? I/QImsService: ImsServiceSubHandler : Message received: what = 25
2020-03-02 09:44:07.299 2862-2862/? I/QImsService: ImsServiceSub : [0] broadcastVopsSsacIntent Vops = false , Ssac = false , PhoneId = 0
2020-03-02 09:44:07.303 2862-2862/? D/VopsReceiver: VopsReceiver VOIP_VOPS_SSAC_STATUS iPhoneId = 0, bInVops = false
2020-03-02 09:44:07.332 1453-21108/? D/AlarmManagerService: Kernel timezone updated to -60 minutes west of GMT
2020-03-02 09:44:07.338 2585-2951/? D/NetworkController.MobileSignalController(1): onServiceStateChanged voiceState=0 dataState=0
2020-03-02 09:44:07.338 2585-2951/? D/NetworkController.MobileSignalController(1): updateTelephonySignalStrength: hasService=true ss=SignalStrength: 99 0 -120 -160 -120 -160 -1 27 -79 -8 186 2147483647 0 2147483647 99 255 2147483647 gsm|lte use_rsrp_and_rssnr_for_lte_level [-126, -119, -114, -109, -100] [-113, -106, -101, -96, -89]
2020-03-02 09:44:07.351 2862-3796/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 phoneId=0
2020-03-02 09:44:07.351 2862-3796/? D/PhoneInterfaceManager: [PhoneIntfMgr] isUserDataEnabled: subId=1 retVal=false
2020-03-02 09:44:07.355 2862-2862/? D/ServiceStateProvider: subId=1
2020-03-02 09:44:07.357 31995-31995/? I/CarrierServices: [2] csb.onReceive: Received SERVICE_STATE intent, clearing cached cell info
2020-03-02 09:44:07.358 2862-2862/? D/ChangeTimeZoneReceiver: ChangeTimeZoneReceiver onReceive(): action = android.intent.action.NETWORK_SET_TIMEZONE
2020-03-02 09:44:07.358 2862-2862/? D/ChangeTimeZoneReceiver: ChangeTimeZoneReceiver onReceive(): intent.getAction() == TelephonyIntents.ACTION_NETWORK_SET_TIMEZONE, unregister mAutoTimeZoneObserver and cancel mPendingIntent
2020-03-02 09:44:07.358 2862-2862/? D/PhoneGlobals: [mPhoneStateListener] onServiceStateChanged, subId[0] = 1, phoneId = 0
2020-03-02 09:44:07.358 2862-2862/? D/PhoneGlobals: [mPhoneStateListener] onServiceStateChanged, state.getState() = 0
2020-03-02 09:44:07.358 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: tryToNotifyOffDataRoamingOption(), bRoaming = false, slot = 0
2020-03-02 09:44:07.359 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, isNonRoamingInService = true
2020-03-02 09:44:07.360 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, state.getRoaming() = false, phone.getDataRoamingEnabled() = true
2020-03-02 09:44:07.360 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getMobileSlot(): slotId = 0
2020-03-02 09:44:07.360 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getRoamingNotificationDB: iRoamingNotificationState = 1, ret = true
2020-03-02 09:44:07.360 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: [mPhoneStateListener] onServiceStateChanged, mobileDataOn = false
2020-03-02 09:44:07.360 2862-2862/? D/PhoneGlobals: onServiceStateChanged(): AsusPhoneUtils.sServiceState = 0, AsusPhoneUtils.sServiceState2 = 1
2020-03-02 09:44:07.360 2862-2862/? D/PhoneGlobals: onReceive(): action = android.intent.action.SERVICE_STATE
2020-03-02 09:44:07.360 2862-2862/? D/PhoneGlobals: mReceiver: ACTION_SERVICE_STATE_CHANGED
2020-03-02 09:44:07.360 2862-2862/? D/PhoneGlobals: handleServiceStateChanged: intent = Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 (has extras) }
2020-03-02 09:44:07.360 2862-2862/? V/PhoneGlobals: handleServiceStateChanged
2020-03-02 09:44:07.361 2862-2862/? D/PhoneGlobals: handleServiceStateChanged: state = 0, ss.getVoiceRoaming() = false
2020-03-02 09:44:07.361 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: setHasShowedmRoamingDialog(): on = false, slotId = 0
2020-03-02 09:44:07.361 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: getMobileSlot(): slotId = 0
2020-03-02 09:44:07.361 2862-2862/? V/PhoneGlobals: subId=1,mDefaultDataSubId=1,ss roaming=false
2020-03-02 09:44:07.361 2862-2862/? V/PhoneGlobals: updateDataRoamingStatus
2020-03-02 09:44:07.362 2862-2862/? V/PhoneGlobals: dataAllowed=false, reasons=Data disallowed, reasons: DATA_DISABLED
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus dataAllowed = false, reasons = Data disallowed, reasons: DATA_DISABLED, mNoDataDueToRoaming = false
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bROAMING_DISABLED_NOT_ATTACHED = false
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bNOT_ATTACHED_ROAMING_DISABLED = false
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: updateDataRoamingStatus bAsusRoamingDisabled = false
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: handleMessage() msg.what: 102
2020-03-02 09:44:07.363 2862-2862/? D/[TELESERVICE][AsusPhoneUtils]: cancelDataRoamingAccessAllowed(): iSlotId = 0
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: handleMessage() msg.what: 11
2020-03-02 09:44:07.363 2862-2862/? D/PhoneGlobals: mHandler: EVENT_DATA_ROAMING_OK
2020-03-02 09:44:07.366 2585-2951/? D/NetworkController: onReceive: intent=Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 (has extras) }
2020-03-02 09:44:07.367 1453-1508/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:07.367 1453-1508/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:07.367 1453-1508/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:07.367 2585-2585/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.SERVICE_STATE
2020-03-02 09:44:07.368 2585-2585/? V/KeyguardUpdateMonitor: action android.intent.action.SERVICE_STATE serviceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=350, duplexMode()=1, mCellBandwidths=[10000, 10000], mVoiceRoamingType=home, mDataRoamingType=home, mVoiceOperatorAlphaLong=hallon, mVoiceOperatorAlphaShort=hallon, mDataOperatorAlphaLong=hallon, mDataOperatorAlphaShort=hallon, isManualNetworkSelection=false(automatic), mRilVoiceRadioTechnology=14(LTE), mRilDataRadioTechnology=14(LTE), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, mIsDataRoamingFromRegistration=false, mIsUsingCarrierAggregation=true, mLteEarfcnRsrpBoost=0, mNetworkRegistrationStates=[]} subId=1
2020-03-02 09:44:07.368 2585-2585/? D/KeyguardUpdateMonitor: handleServiceStateChange(subId=1, serviceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE), mChannelNumber=350, duplexMode()=1, mCellBandwidths=[10000, 10000], mVoiceRoamingType=home, mDataRoamingType=home, mVoiceOperatorAlphaLong=hallon, mVoiceOperatorAlphaShort=hallon, mDataOperatorAlphaLong=hallon, mDataOperatorAlphaShort=hallon, isManualNetworkSelection=false(automatic), mRilVoiceRadioTechnology=14(LTE), mRilDataRadioTechnology=14(LTE), mCssIndicator=unsupported, mNetworkId=-1, mSystemId=-1, mCdmaRoamingIndicator=-1, mCdmaDefaultRoamingIndicator=-1, mIsEmergencyOnly=false, mIsDataRoamingFromRegistration=false, mIsUsingCarrierAggregation=true, mLteEarfcnRsrpBoost=0, mNetworkRegistrationStates=[]}
2020-03-02 09:44:07.368 2585-2585/? D/CarrierText: updateCarrierText(): 1
2020-03-02 09:44:07.368 2585-2585/? D/CarrierText: isBrazilCountryCode(): subId = 1 / simCountryISO = se / result = false
2020-03-02 09:44:07.368 22235-22235/? V/AsusCellBroadcast: [CellBroadcastReceiver] onReceive Intent { act=android.intent.action.SERVICE_STATE flg=0x1000010 cmp=com.android.cellbroadcastreceiver/.CellBroadcastReceiver (has extras) } , privileged=false
2020-03-02 09:44:07.369 1453-21108/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:07.369 1453-21108/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:07.369 1453-21108/? D/CompatibilityInfo: applicationScale - 1.0
2020-03-02 09:44:07.370 2585-2585/? D/CarrierText: subId:1 / status:Normal / ss:true
2020-03-02 09:44:07.370 2585-2585/? D/CarrierText: getRoaming:false
2020-03-02 09:44:07.370 2585-2585/? D/CarrierText: Handling (subId=1): READY hallon
2020-03-02 09:44:07.370 2585-2585/? D/CarrierText: Handling subId=1 simState=READY carrierName=hallon carrierTextForSimState=hallon mSimSlotMessage={}
2020-03-02 09:44:07.370 2585-2585/? D/CarrierText: displayText=null carrierTextForSimState=hallon
2020-03-02 09:44:07.371 2585-2585/? D/CarrierText: displayText--hallon
2020-03-02 09:44:07.371 8965-8965/? D/SimCardReceiver: onReceive actioncode: android.intent.action.SERVICE_STATE
2020-03-02 09:44:07.371 2585-2585/? D/CarrierText: updateCarrierText(): 1
2020-03-02 09:44:07.371 2585-2585/? D/CarrierText: isBrazilCountryCode(): subId = 1 / simCountryISO = se / result = false
2020-03-02 09:44:07.372 2585-2585/? D/CarrierText: subId:1 / status:Normal / ss:true
2020-03-02 09:44:07.372 2585-2585/? D/CarrierText: getRoaming:false
2020-03-02 09:44:07.372 2585-2585/? D/CarrierText: Handling (subId=1): READY hallon
2020-03-02 09:44:07.372 2585-2585/? D/CarrierText: Handling subId=1 simState=READY carrierName=hallon carrierTextForSimState=hallon mSimSlotMessage={}
2020-03-02 09:44:07.372 2585-2585/? D/CarrierText: displayText=null carrierTextForSimState=hallon
2020-03-02 09:44:07.375 2585-2585/? D/CarrierText: displayText--hallon
2020-03-02 09:44:07.376 1453-4021/? D/Telecom: TelecomServiceImpl: getCallCapablePhoneAccounts callingPackage = com.asus.contacts
2020-03-02 09:44:07.376 1453-4021/? D/Telecom: TelecomServiceImpl: canReadPhoneState callingPackage = com.asus.contacts: TSI.gCCPA@W4o
2020-03-02 09:44:07.376 1453-4021/? D/Telecom: TelecomServiceImpl: isPrivilegedDialerCalling = com.asus.contacts: TSI.gCCPA@W4o
2020-03-02 09:44:07.377 8965-26195/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] accountHandles size = 1, slotId = 0
2020-03-02 09:44:07.380 2862-3140/? D/PhoneUtils: getPhoneForPhoneAccountHandle handle.getComponentName().equals(getPstnConnectionServiceName()) = true
2020-03-02 09:44:07.384 8965-26195/? D/PhoneCapabilityTester: sim1 isActive = true
2020-03-02 09:44:07.385 1453-4021/? D/Telecom: TelecomServiceImpl: getCallCapablePhoneAccounts callingPackage = com.asus.contacts
2020-03-02 09:44:07.386 1453-4021/? D/Telecom: TelecomServiceImpl: canReadPhoneState callingPackage = com.asus.contacts: TSI.gCCPA@W40
2020-03-02 09:44:07.386 1453-4021/? D/Telecom: TelecomServiceImpl: isPrivilegedDialerCalling = com.asus.contacts: TSI.gCCPA@W40
2020-03-02 09:44:07.386 8965-26195/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] accountHandles size = 1, slotId = 1
2020-03-02 09:44:07.389 2862-3140/? D/PhoneUtils: getPhoneForPhoneAccountHandle handle.getComponentName().equals(getPstnConnectionServiceName()) = true
2020-03-02 09:44:07.390 8965-26195/? D/AsusContactsTelephonyManager: [getSimCardPhoneAccountHandle] Can't find PhoneAccountHandle for slot:1
2020-03-02 09:44:07.390 8965-26195/? D/PhoneCapabilityTester: sim2 isActive = false
2020-03-02 09:44:08.018 842-1559/? V/AudioFlinger: releaseWakeLock_l() AudioOut_1D
2020-03-02 09:44:08.019 842-1559/? V/AudioFlinger: thread 0xe6c83f40 type 0 TID 1559 going to sleep
2020-03-02 09:44:08.025 842-1563/? V/AudioFlinger: releaseWakeLock_l() AudioOut_2D
2020-03-02 09:44:08.025 842-1563/? V/AudioFlinger: thread 0xe6783140 type 0 TID 1563 going to sleep
2020-03-02 09:44:08.026 842-1561/? V/AudioFlinger: releaseWakeLock_l() AudioOut_25
2020-03-02 09:44:08.026 842-1561/? V/AudioFlinger: thread 0xe6b03bc0 type 0 TID 1561 going to sleep
2020-03-02 09:44:08.500 26134-26162/? I/TENGINE: Creating thread: LoadEntry
2020-03-02 09:44:08.501 26134-26198/? I/TENGINE: Destroying quad: splash_tengine
2020-03-02 09:44:08.502 26134-26198/? I/TENGINE: Creating light: Ambient
2020-03-02 09:44:08.517 26134-26162/? I/TENGINE: Destroying thread: LoadEntry
2020-03-02 09:44:08.519 26134-26162/? I/TENGINE: [GUI] App
2020-03-02 09:44:08.519 26134-26162/? E/TENGINE: Line: 1101 - xaml/App.xaml(1): Unknown member Application.StartupUri
2020-03-02 09:44:08.520 26134-26162/? I/TENGINE: 'xaml/App.xaml' loaded
2020-03-02 09:44:08.522 26134-26162/? I/TENGINE: 'xaml/MainWindow.xaml' loaded
2020-03-02 09:44:08.885 26134-26162/? I/TENGINE: Creating thread: LoadEntry
2020-03-02 09:44:08.891 26134-26199/? I/TENGINE: Creating texture: textures/android/menu_background.pvr
2020-03-02 09:44:08.892 26134-26199/? I/TENGINE: Creating quad: menu_background
2020-03-02 09:44:08.892 26134-26199/? I/TENGINE: Creating quad: SampleQuad_Network
2020-03-02 09:44:08.892 26134-26199/? I/TENGINE: Creating quad: SampleQuad_Media
2020-03-02 09:44:08.892 26134-26199/? I/TENGINE: Creating quad: SampleQuad_WebApi
2020-03-02 09:44:08.893 26134-26199/? I/TENGINE: Creating quad: SampleQuad_FileWatcher
2020-03-02 09:44:08.893 26134-26199/? I/TENGINE: Creating quad: SampleQuad_Location
2020-03-02 09:44:08.893 26134-26199/? I/TENGINE: Creating quad: SampleQuad_Noesis
2020-03-02 09:44:08.893 26134-26199/? I/TENGINE: Creating quad: SampleQuad_FFMpeg
2020-03-02 09:44:08.906 26134-26162/? I/TENGINE: Destroying thread: LoadEntry
2020-03-02 09:44:09.499 796-25725/? I/SSC_HAL: handle_sns_std_sensor_event:396, [SSC_HAL] ACCEL, ts:1692155.983354 s X:0.00 Y:0.11 Z:9.70
2020-03-02 09:44:09.601 1453-1509/? V/WindowOrientationListener: [SensorN] Result: currentRotation=0, proposedRotation=-1, oldProposedRotation=-1, predictedRotation=-1, timeDeltaMS=66.66698, isAccelerating=false, isFlat=true, isSwinging=false, isOverhead=false, isTouched=false, timeUntilSettledMS=0.0, timeUntilAccelerationDelayExpiredMS=0.0, timeUntilFlatDelayExpiredMS=500.0, timeUntilSwingDelayExpiredMS=0.0, timeUntilTouchDelayExpiredMS=0.0, now=1692156.050020627, mTouchEndedTimestamp=1692133.487025079
2020-03-02 09:44:10.474 816-846/? E/ANDR-PERF-MPCTL: Request does not exist, nothing released
2020-03-02 09:44:10.852 26134-26162/? I/TENGINE: Creating thread: LoadEntry
2020-03-02 09:44:10.853 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_Network
2020-03-02 09:44:10.853 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_Media
2020-03-02 09:44:10.853 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_WebApi
2020-03-02 09:44:10.853 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_FileWatcher
2020-03-02 09:44:10.853 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_Location
2020-03-02 09:44:10.854 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_Noesis
2020-03-02 09:44:10.854 26134-26203/? I/TENGINE: Destroying quad: SampleQuad_FFMpeg
2020-03-02 09:44:10.854 26134-26203/? I/TENGINE: Destroying quad: menu_background
2020-03-02 09:44:10.854 26134-26203/? I/TENGINE: Destroying texture: menu_background
2020-03-02 09:44:10.855 26134-26203/? I/TENGINE: Creating light: Directional
2020-03-02 09:44:10.868 26134-26162/? I/TENGINE: Destroying thread: LoadEntry
2020-03-02 09:44:11.816 1453-1995/? I/BatteryService: health = 2, mPlugType = 2, mUsbAbnormal = 0
2020-03-02 09:44:11.820 2889-2889/? I/AlwaysOn:BatteryStatusMonitor: onReceive(): [BATTERY] - action=android.intent.action.BATTERY_CHANGED
2020-03-02 09:44:11.821 2889-2889/? D/FirmwareManager: ACTION_BATTERY_CHANGED level: 35, mPadLevel: 0, mPadPresent: 0, mState: 0, mNeedCheckUpdatePower: true
2020-03-02 09:44:11.821 2889-6780/? I/AlwaysOn:BatteryStatusMonitor: BatteryStatus: (percentage=35, status=2, plug=2) ...
2020-03-02 09:44:11.823 2889-2889/? D/PowerSaverService: extraBatteryHealth:2 changed:false extraStatus:2
2020-03-02 09:44:11.823 2585-2585/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.BATTERY_CHANGED
2020-03-02 09:44:11.823 2889-2889/? D/PowerSaverService: changed:false mCurrentBatteryLevel:35 level:35 statusChange:false plugChange:false mExtraPlugged:2 extraPlugged:2
2020-03-02 09:44:11.823 2585-2585/? D/KeyguardUpdateMonitor: handleBatteryUpdate
2020-03-02 09:44:11.823 2889-2889/? D/GameGenieHandler: GameWidgetReceiver onRecevie: android.intent.action.BATTERY_CHANGED
2020-03-02 09:44:11.823 2585-2585/? D/PowerUI: oldTemp=295, mTemp=292
2020-03-02 09:44:11.823 2585-2585/? D/PowerUI: findUsbOtg =false,supportReverseCharging =0
2020-03-02 09:44:11.830 2889-2889/? D/DockManagerService: mBatteryReceiver onReceive
2020-03-02 09:44:11.841 1453-1508/? D/CompatibilityInfo: mCompatibilityFlags - 0
2020-03-02 09:44:11.841 1453-1508/? D/CompatibilityInfo: applicationDensity - 460
2020-03-02 09:44:11.841 1453-1508/? D/CompatibilityInfo: applicationScale - 1.0
(0006118)
jsantos   
2020-03-02 16:05   
Thanks for the log.

Is this using our default GL ES renderer or custom one?
(0006119)
jsantos   
2020-03-02 16:06   
Plus, if you could provide minimal .apk reproducing the issue (if possible with source). So far, we are not able to reproduce it here.
(0006122)
tension_andreas   
2020-03-04 08:51   
Yes we're using your default renderer. We're looking into providing some sample
(0006123)
jsantos   
2020-03-05 10:23   
Thanks!
(0006133)
SKylander   
2020-03-10 12:17   
While working on providing a minimal example, I decided to take a stab at finding the cause of the error. It turns out that it was an unrelated OpenGL error from within our middleware. Namely, `glEnable(GL_TEXTURE2D);` which seems to be an invalid option in GLES. Our presumption as to why it prevented the font from rendering on certain devices is because the GL drivers of non-Samsung devices implements some kind of safe guard where it makes sure the GL error stack is empty before submitting the texture units to the GPU. Regardless if our presumptions are correct or not, fixing the bug in the middleware solved the font bug.
(0006134)
jsantos   
2020-03-10 14:24   
(Last edited: 2020-03-10 14:25)
That's interesting. The only point where we call glGetError() in Noesis (in Release) is to detect a bug in AMD drivers. We are flushing the error stack there. Not sure if we should do this test only in Desktop by the way.

// Check that TexStorage is not bugged (AMD Catalyst 13.90)
if (TexStorage2D_ != 0)
{
    GLuint name;
    V(glGenTextures(1, &name));
    V(glBindTexture(GL_TEXTURE_2D, name));

    while (glGetError() != GL_NO_ERROR);

    uint8_t data;
    TexStorage2D_(GL_TEXTURE_2D, 1, GL_RGBA8, 2, 2);
    glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &data);

    if (glGetError() != GL_NO_ERROR)
    {
        mExtensions[Extension::ARB_texture_storage].supported = false;
        TexStorage2D_ = 0;
        while (glGetError() != GL_NO_ERROR);
    }

    V(glDeleteTextures(1, &name));
}


Anyway, glad to know you solved it!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
878 [NoesisGUI] Unity3D minor N/A 2016-04-28 23:33 2020-03-09 19:08
Reporter: kguner Platform:  
Assigned To: jsantos OS:  
Priority: high OS Version:  
Status: resolved Product Version: 1.2.6f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version:  
Platform: Any
Summary: DropShadows
Description: I would like to use Dropshadows but effects are not yet implemented.

Would it be possible to implement this?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003868)
jsantos   
2016-05-02 21:25   
We have plans to implement this at some point in the 1.3 branch. For now you have to manually emulate it by rendering the same path displaced by the desired amount. Yes, I know it is not the same (you can't emulate the blurring for example) but it quite efficient for text for example.

Could you tell me more about where do you need to apply this effect?
(0003869)
kguner   
2016-05-02 22:13   
Yes it is for Text.

My game is a Movie Studio Tycoon type game.

In the game the users will make movies, and for each move a "Trailer" will be generated. There will be dynamically generated "Cut Scenes" overlayed with text (Movie Title & cast/crew names). Dropshadow is just one of the effects I would like to implement.

Here is an example:
http://i.giphy.com/l4HnSo5emSSUSQSVq.gifwpf
(0003878)
jsantos   
2016-05-06 19:12   
I see, so you need the blurring effect. I assume the hack used here

http://www.noesisengine.com/forums/viewtopic.php?f=12&t=485

won't work for you, right?
(0003879)
kguner   
2016-05-06 22:04   
Yes, I would need the blurring effect.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1526 [NoesisGUI] C++ SDK feature N/A 2019-07-27 04:47 2020-03-09 19:07
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Add Support for BlurEffect
Description: See ... https://www.noesisengine.com/forums/viewtopic.php?f=3&t=57&p=9291&hilit=blur+camera#p9291 and
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.effects.blureffect?view=netframework-4.8

With a built-in blur effect developers can create modal windows with behind window blur using a single camera (instead of the current two camera approach). Having a second camera with Noesis view rendering consumes about 10-12 FPS -- it would great to reduce this overhead.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1577 [NoesisGUI] Unity3D crash always 2019-10-27 20:19 2020-03-03 11:46
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Windows
Summary: NoesisGUI crashes Unity during ReloadAssembly
Description: Unity crashes often with the same call stack. After it has crashed and been restarted it is stable again until you reimport NoesisGUI assets.
Reimporting .xaml assets usually works but reimporting .cs files with NoesisGUI code behind almost always crashes .
Tags:
Steps To Reproduce: I just reimport all .cs code behind files, or if this gets triggered on startup.
Additional Information:
Attached Files: Editor.log (3,046,390 bytes) 2019-10-27 20:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1124&type=bug
error.log (81,642 bytes) 2019-10-27 20:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1125&type=bug
crash.dmp (1,200,036 bytes) 2019-10-27 20:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1126&type=bug
Notes
(0006001)
mikmueller   
2019-11-14 13:13   
I can approve this issue.
Also happens with Unity 2018.4.11


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1629 [NoesisGUI] Unity3D minor always 2020-02-25 08:53 2020-02-25 13:05
Reporter: riveranb Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Get exceptions when using TextBox in MenuItem or overflow ToolBar
Description: Uses TextBox in a ToolBar with "ToolBar.OverflowMode"="AsNeeded" or inside MenuItem, I get the exceptions in Unity when that TextBox is in overflow mode.
And TextBox seems still working well.

example xaml snippet


<ContextMenu>
...
<MenuItem>
    <MenuItem.Header>
        <Border>
            <TextBox Width="50" Height="20"/>
        </Border>
    </MenuItem.Header>
</MenuItem>
</ContextMenu>
Tags: Unity
Steps To Reproduce: Create TextBox inside MenuItem
Try it in Unity editor
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1379 [NoesisGUI] C# SDK feature N/A 2018-12-21 17:45 2020-02-19 19:35
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: New approach for loading ResourceDictionary similar to WPF's Application.Resources
Description: This feature will allow us to reduce the MergedDictionaries cross-referencing bloat we have in our ResourceDictionaries by referencing all of them in a single ResourceDictionary similar to how WPF's Application.Resources works. Supposedly, it will also improve loading times, performance and memory usage due to fewer resources duplication.


Feature explanation:
In WPF it's possible to reference any resource from Style1.xaml from Style2.xaml if they're both referenced from the Application ResourceDictionary (via MergedDictionaries). So Style2.xaml doesn't need to have a MergedDictionaries entry for Style1.xaml. (please see the attached WPF project source demonstrating this approach)

However, it's impossible to use with NoesisGUI due to API limitations. When NoesisGUI loading Resources.xaml via GUI.LoadXaml(pathToFile) it starts loading all the merged MergedDictionaries one by one - Style1.xaml, then Style2.xaml. And here an exception happens as Style2.xaml references some static resource from Style1.xaml and NoesisGUI cannot locate it.

A special API is required to allow this scenario. For example:
<code>
var applicationResourceDictionary = GUI.LoadApplicationResourcesXaml("Resources.xaml");
GUI.SetApplicationResources(applicationResourceDictionary);
</code>

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WpfSampleMergingRes.7z (5,673 bytes) 2018-12-21 17:45
https://www.noesisengine.com/bugs/file_download.php?file_id=952&type=bug
Notes
(0006098)
sfernandez   
2020-02-19 19:35   
(Last edited: 2020-02-19 19:35)
GUI.LoadApplicationResources(string filename) will load a dictionary that can have static resource references to previous dictionaries in the list of MergedDictionaries.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1558 [NoesisGUI] Unity3D major always 2019-10-03 06:30 2020-02-18 17:56
Reporter: nokola Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 3.0.0  
Platform: Any
Summary: Performance regression: RegisterNativeTypes takes 0.5 seconds on newer 8-core phone
Description: Android:
In Assets\NoesisGUI\Plugins\API\Core\Extend.cs, Init(), the RegisterNativeTypes() code takes 0.5 seconds on xiaomi redmi note 7 phone:
            long start = DateTime.Now.Ticks;
            RegisterNativeTypes();
            Debug.Log("RegisterNativeTypes: " + (DateTime.Now.Ticks - start) / 10_000);

This (perhaps...or maybe something else) makes a noticeable glitch during app load on Android compared to 2.2.4. I suspect Noesis.Gui.Init() gets called too early or there's more code in RegisterNativeTypes(). Could be something else.

I expect on slower phones the cost of RegisterNativeTypes() to be significantly higher (second or two.)
On my PC the cost is ~240ms Core i7.
Tags: Unity
Steps To Reproduce: Add this code to Assets\NoesisGUI\Plugins\API\Core\Extend.cs, Init(), the RegisterNativeTypes() code takes 0.5 seconds on xiaomi redmi note 7 phone:
            long start = DateTime.Now.Ticks;
            RegisterNativeTypes();
            Debug.Log("RegisterNativeTypes: " + (DateTime.Now.Ticks - start) / 10_000);

Run on Android and check logcat
Additional Information:
Attached Files:
Notes
(0005975)
sfernandez   
2019-10-03 11:18   
Hi,

I've been doing some tests with our samples, comparing 2.2.4 with 2.2.5 version and there is no difference with respect to that function.
The times are the same, around 700ms in a Nexus 5X, and 300ms in first generation Core i7 PC.
What numbers did you get with 2.2.4 compared to 2.2.5? Could you please use Stopwatch to do those measurements?

Those numbers are terrible, though, and it is something we should investigate.
(0005976)
nokola   
2019-10-03 17:31   
You're right - 2.2.4 is similar timing regarding the RegisterNativeTypes() function. Maybe there's slowdown somewhere else, or I'm making it up. I've noticed a longer black screen after installing 2.2.5, then profiled in Editor and found RegisterNativeTypes() taking a significant time. That's when I assumed it was this function responsible (because I haven't seen it show up in profiling before, thus assumed it's regression without further testing.)

I tried profiling startup time on Android device with Unity 2018.4.10f. Unfortunately, Unity uses ~5GB of RAM for the first 2-3 seconds of the app and crashes. I haven't been able to pinpoint what's the "hot path" on Android device yet. I can only profile in Editor currently, which makes it harder to trace function calls, also much faster on PC than phone.

If you can get profiling on device, and see if there's another hot path during startup that will be awesome. I'll try something with the native Android profilers (not through Unity.)
Sorry no specific info at the moment (apart from the function above!)
(0005977)
nokola   
2019-10-03 17:54   
I did some more testing - there seems to be *no* performance regression during startup from 2.2.4 to 2.2.5.
Not sure why RegisterNativeTypes() started showing up - maybe because I updated to new Unity (from 2017 to 2018) and profiler started showing more info.

Either way, reducing cost for RegisterNativeTypes() startup will be a very good win! :)
(0005978)
sfernandez   
2019-10-04 11:30   
(Last edited: 2019-10-04 11:32)
Great to know there is no performance regression on your side either... from our latest changes I couldn't figure out anything affecting startup times.

Regarding RegisterNativeTypes() we found an alternative implementation that will dramatically reduce the loading times (in PC from 300ms to 20ms approx.).
It will be included in our next version.

(0005979)
nokola   
2019-10-04 16:51   
Nice! Also good job on speeding up the release cadence - it's good to see smaller but more often version releases!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1624 [NoesisGUI] Unity3D crash sometimes 2020-02-04 21:56 2020-02-10 18:06
Reporter: nizesh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 2.2.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: UnityEditor crashes due to Noesis.dll caused an Access Violation
Description: I'm running into this issue where the Unity Editor crashes. The error log says that Noesis.dll caused an Access Violation. The strange thing though is that it works just fine in a Debug mode. The crash happens only in the Play mode or the binary run.
Tags: C#, Unity
Steps To Reproduce: Click Play button.
Issue some queries
Unity Editor receives result from server
Unity Editor crashes entirely
Additional Information:
Attached Files: Editor.log (28,365 bytes) 2020-02-04 21:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1158&type=bug
error.log (4,897 bytes) 2020-02-04 21:56
https://www.noesisengine.com/bugs/file_download.php?file_id=1159&type=bug
crash.dmp (1,254,223 bytes) 2020-02-05 15:16
https://www.noesisengine.com/bugs/file_download.php?file_id=1160&type=bug
Notes
(0006088)
sfernandez   
2020-02-05 10:32   
Could you please also add the .dmp file for the crash?
That way we can see the code related to the crash.
(0006090)
nizesh   
2020-02-05 15:17   
Thanks for responding. I've attached the .dmp file too. Hopefully, that can give you more detail log view
(0006091)
nizesh   
2020-02-07 18:00   
Any update on this issue so far?
(0006092)
sfernandez   
2020-02-10 10:20   
Hi, do you have a deterministic way of reproducing this crash?
The callstack of the crash has no sense to me and I don't understand what could be the source of the problem. It would help me a lot to have a way to reproduce it, a small sample project or if you can share your own project (in a private note if you want).

Thanks for your feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1619 [NoesisGUI] C++ SDK feature always 2020-01-16 12:46 2020-01-16 12:46
Reporter: sfernandez Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: TextBox.TextDecorations not implemented
Description: Missing TextDecorations property in TextBox.

https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.textbox.textdecorations?view=netframework-4.8
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1322 [NoesisGUI] Unity3D minor have not tried 2018-10-30 12:20 2020-01-14 01:18
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: Implementation of IMultiValueConverter
Description: It would be nice to have IMultiValueConverter implemented in Noesis
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005275)
admin   
2018-10-30 13:00   
----------------------------------------------------------------------
 (0005261) jsantos (manager) - 2018-09-14 15:13
 https://www.noesisengine.com/bugs/view.php?id=1322#c5261
----------------------------------------------------------------------
Thanks!
(0005276)
admin   
2018-10-30 13:00   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
791 [NoesisGUI] Unity3D minor N/A 2016-01-02 22:30 2020-01-14 01:18
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 3.0.0  
    Target Version: 3.0.0  
Platform: Any
Summary: IMultiValueConverter is missing
Description: As mentioned in my previous issue 0000790 I tried using a IMultiConverter to solve a problem but unfortunately that interface doesn't exist.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003431)
sfernandez   
2016-01-07 11:37   
You are right, MultiBinding and IMultiValueConverter are not supported yet by Noesis, and we didn't plan to include them soon.

I'll add them to Trello pending tasks and will evaluate when we can implement them.





View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1592 [NoesisGUI] Unity3D crash always 2019-11-30 23:02 2020-01-07 20:21
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Listbox Event Routing Causes Unity Crash
Description: With the enclosed project load "default" scene.
Play/Stop/Play until crash occurs. The offending logic is in Bug1Control.cs.

Reproduduction project, crash logs, and dmp included. A manifestation of this issue with a similar but somewhat different stack trace is an open issue in Stellar Conquest.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-11-30_215044902.zip (230,623 bytes) 2019-11-30 23:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1130&type=bug
Notes
(0006025)
stonstad   
2019-11-30 23:05   
Encl. link to reproduction project. See Bug1Control.cs. http://stellarconquest.blob.core.windows.net/$root/NoesisBugs2.zip
(0006053)
sfernandez   
2019-12-31 00:46   
(Last edited: 2019-12-31 12:20)
I was unable to reproduce the crash after many many Play/Stop/Play... tries.

And attached crash dump and logs are very similar to ticket 0001591, they also show in Editor.log lots of asserts in the render device inside Unity's code:

Assertion failed on expression: 'SUCCEEDED(hr)'
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/D3D11Window.cpp Line: 186)
d3d11: failed to create 2D texture id=875 width=83 height=17 mips=7 dxgifmt=28 [D3D error was 887a0005]
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 496)
d3d11: failed to create 2D texture shader resource view id=875 [D3D error was 80070057]
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 460)
d3d11: Failed to create 2D texture in GfxDeviceD3D11
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 605)
d3d11: Failed to create 2D texture in GfxDeviceD3D11
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 605)
d3d11: failed to create buffer (target 0x1 mode 0 size 96) [0x887A0005]
d3d11: failed to create buffer (target 0x2 mode 0 size 12) [0x887A0005]
Assertion failed on expression: 'SUCCEEDED(hr)'
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/D3D11Window.cpp Line: 186)
d3d11: failed to create 2D texture id=877 width=77 height=17 mips=7 dxgifmt=28 [D3D error was 887a0005]
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 496)
d3d11: failed to create 2D texture shader resource view id=877 [D3D error was 80070057]
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 460)
d3d11: Failed to create 2D texture in GfxDeviceD3D11
  (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 605)
...

The dump shows it finally crashes trying to initialize our render device code.

@jsantos Could you confirm this is not a problem in our render device?

(0006055)
stonstad   
2020-01-01 21:03   
I have not seen this behavior since it was originally reported. I want to say my GPU was in a bad state, somehow, and it is operating system, hardware, or Unity related.
(0006068)
jsantos   
2020-01-07 20:21   
I think this is device corruption. Thanks for your feedback. I am going to close this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1612 [NoesisGUI] Unity3D crash always 2020-01-01 21:00 2020-01-07 10:26
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: BaseComponent_Release() - Editor Crash During Playback
Description: Unity 2019.2.8f1.

Write to location 0000000000000000 caused an access violation.

Context:
RDI: 0x0000000000000000 RSI: 0x0000022c208a4580 RAX: 0x0000022c24040030
RBX: 0x0000022c2450d990 RCX: 0x0000022c208a4580 RDX: 0x0000000000000001
RIP: 0x0000000000000000 RBP: 0x000000a20a2ee6c0 SegCs: 0x0000000000000033
EFlags: 0x0000000000010202 RSP: 0x000000a20a2ee628 SegSs: 0x000000000000002b
R8: 0x0000000000000004 R9: 0x0000000000000001 R10: 0x0000000000008000
R11: 0x00007ffd6060e910 R12: 0x0000022c24943c60 R13: 0x000000a20a2ee750
R14: 0x0000022c2330d2d0 R15: 0x0000022c6f8043a0


Bytes at CS:EIP:
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Mono DLL loaded successfully at 'C:\Program Files\Unity\Hub\Editor\2019.2.8f1\Editor\Data\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll'.


Stack Trace of Crashed Thread 16136:
ERROR: SymGetSymFromAddr64, GetLastError: 'The specified module could not be found.' (Address: 000001D3DFDBAD90)
ERROR: SymGetModuleInfo64, GetLastError: 'A dynamic link library (DLL) initialization routine failed.' (Address: 000001D3DFDBAD90)
0x000001D3DFDBAD90 ((<unknown>)) (function-name not available)
0x0000022C2B198147 (Assembly-CSharp) Noesis.NoesisGUI_PINVOKE.BaseComponent_Release()
0x0000022C2B198023 (Assembly-CSharp) Noesis.BaseComponent.Release()
0x0000022C2DEA5B33 (Assembly-CSharp) Noesis.Extend.ReleasePending()
0x0000022C2DEA4573 (Assembly-CSharp) Noesis.Extend.Update()
0x0000022C2DEA4313 (Assembly-CSharp) Noesis.View.Update()
0x0000022C2DE96EFB (Assembly-CSharp) NoesisView.LateUpdate()
Tags:
Steps To Reproduce: Encl. editor and error logs. Editor crash dump.

I don't have repro steps yet, as this is my first test with 2.2.6. I was cyclingthrough screens in Stellar Conquest and testing functionality.
Additional Information:
Attached Files: Crash_2020-01-01_195529081.zip (449,403 bytes) 2020-01-01 21:00
https://www.noesisengine.com/bugs/file_download.php?file_id=1142&type=bug
Crash_2020-01-01_203612344.zip (416,292 bytes) 2020-01-01 21:38
https://www.noesisengine.com/bugs/file_download.php?file_id=1143&type=bug
Extend.cs (239,238 bytes) 2020-01-03 17:28
https://www.noesisengine.com/bugs/file_download.php?file_id=1145&type=bug
Notes
(0006056)
stonstad   
2020-01-01 21:07   
Changing reproducible status to 'always'. If I quickly flip between UIs the behavior happens in a few tries. I don't have any additional telemetry to share yet. This is a new behavior in 2.2.6.
(0006057)
stonstad   
2020-01-01 21:25   
I'm unable to proceed with other testing, as the crash is very repeatable and happens in as little as one or two screen clicks. I'm rolling back to 2.2.5. If you have a new version you would like me to try please feel free to send over an updated DLL.
(0006058)
stonstad   
2020-01-01 21:38   
Encl. editor and error log w/ crash dump that does not show missing DLL error. That was a separate issue on my end. The Noesis behavior and crash stacktrace remains the same. Thanks.
(0006059)
sfernandez   
2020-01-02 13:05   
(Last edited: 2020-01-02 13:07)
Hi,

I'm trying to reproduce the crashes with the copy of the game code we have from last summer but I'm getting JSON deserialization errors when logging, probably something that changed in the server.

Newtonsoft.Json.JsonSerializationException: Error resolving type specified in JSON 'StellarConquest.Model.Authentication.CheckedResponse`1[[System.Collections.Generic.List`1[[StellarConquest.Model.Authentication.AuthenticatedPlayer, StellarConquest.Model]], mscorlib]], StellarConquest.Model'. Path '$type', line 1, position 218. ---> Newtonsoft.Json.JsonSerializationException: Could not find type 'StellarConquest.Model.Authentication.CheckedResponse`1[[System.Collections.Generic.List`1[[StellarConquest.Model.Authentication.AuthenticatedPlayer, StellarConquest.Model]], mscorlib]]' in assembly 'StellarConquest.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
  at Newtonsoft.Json.Serialization.DefaultSerializationBinder.GetTypeFromTypeNameKey (Newtonsoft.Json.Serialization.DefaultSerializationBinder+TypeNameKey typeNameKey) [0x00093] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at (wrapper delegate-invoke) System.Func`2[Newtonsoft.Json.Serialization.DefaultSerializationBinder+TypeNameKey,System.Type].invoke_TResult_T(Newtonsoft.Json.Serialization.DefaultSerializationBinder/TypeNameKey)
  at Newtonsoft.Json.Utilities.ThreadSafeStore`2[TKey,TValue].AddValue (TKey key) [0x00000] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Utilities.ThreadSafeStore`2[TKey,TValue].Get (TKey key) [0x00010] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.DefaultSerializationBinder.BindToType (System.String assemblyName, System.String typeName) [0x0000d] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ResolveTypeName (Newtonsoft.Json.JsonReader reader, System.Type& objectType, Newtonsoft.Json.Serialization.JsonContract& contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.String qualifiedTypeName) [0x00096] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
   --- End of inner exception stack trace ---
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ResolveTypeName (Newtonsoft.Json.JsonReader reader, System.Type& objectType, Newtonsoft.Json.Serialization.JsonContract& contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.String qualifiedTypeName) [0x000c9] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadMetadataProperties (Newtonsoft.Json.JsonReader reader, System.Type& objectType, Newtonsoft.Json.Serialization.JsonContract& contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue, System.Object& newValue, System.String& id) [0x0015d] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000bc] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000d9] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00053] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <97722d3abc9f4cf69f9e21e6770081b3>:0 
  at StellarConquest.Services.ServiceClient+<GetPlayers>d__12.MoveNext () [0x000d9] in E:\Proyectos\Clients\Stellar Conquest\Assets\Scripts\Web Services\ServiceClient.cs:172 
UnityEngine.Debug:Log(Object)
StellarConquest.Services.<GetPlayers>d__12:MoveNext() (at Assets/Scripts/Web Services/ServiceClient.cs:178)

Could you please provide updated code or assembly?

In the meantime I found an error in our code that is probably the cause of the crashes.
Go to NoesisGUI/Plugins/API/Core/Extend.cs line 4084 and change it to:

IntPtr cPtr = new IntPtr(info.ptr);


(0006060)
stonstad   
2020-01-02 17:53   
The proposed code change seems to prevent the editor crash behavior. It throws this exception, however --

KeyNotFoundException: The given key was not present in the dictionary.
System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
Noesis.Extend.AddDestroyedExtends () (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:4094)
Noesis.Extend.Update () (at Assets/NoesisGUI/Plugins/API/Core/Extend.cs:4319)
Noesis.View.Update (System.Double timeInSeconds) (at Assets/NoesisGUI/Plugins/API/Core/View.cs:269)
NoesisView.LateUpdate () (at Assets/NoesisGUI/Plugins/NoesisView.cs:822)

I can provide a copy of the project and source code -- but it may not be something I can do today. If there are code changes and/or DLLs you would like me to try please let me know.
(0006061)
sfernandez   
2020-01-02 18:31   
Does that exception continue to be thrown after re-opening your Unity project or it was just one time after the first recompilation?
I don't see how can the key not be present in the dictionary if it is being added at the same time to both _weakExtends list and _weakExtendsHash dictionary.

(0006062)
stonstad   
2020-01-02 21:02   
(Last edited: 2020-01-02 21:04)
(nevermind)... my find all references was acting up. ** ignore: I'm reviewing 2.2.6 Extend.cs and I don't see where _weakExtendsHash is added to -- could this be why indexing into it later fails? i.e. there a line that adds an element to the dictionary?

** updated

It feels like a race condition. Twice I was able to recreate the exception by flipping through screens. This was after upgrade/shutdown/restart of the editor.

(0006063)
sfernandez   
2020-01-03 16:26   
(Last edited: 2020-01-03 17:28)
Could you please try again with the new attached Extend.cs?

(0006064)
stonstad   
2020-01-03 23:42   
No issues so far with the updated Extend.cs. It appears stable and working. If I encounter anything I'll be sure to share it here.
(0006065)
stonstad   
2020-01-05 00:26   
8+ hours of testing with no runtime crash or editor errors/warnings.
(0006066)
sfernandez   
2020-01-05 14:07   
Those are great news, thanks a lot for your feedback.
(0006067)
jsantos   
2020-01-05 14:47   
Time to close this and release! Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1614 [NoesisGUI] Unity3D major always 2020-01-03 13:56 2020-01-03 13:56
Reporter: Gwynneth Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: DynamicResource on TextBox's SelectionBrush, CaretBrush and Foreground will continuously log errors
Description: I've build a custom TextBox control which works properly in WPF. It makes use of DynamicResource bindings for all its brushes. In Noesis every interaction with the TextBox and probably every re-render logs the following error: [Error]: "[noesis] Freezable object cannot be made unmodifiable". This happens for the SelectionBrush, CaretBrush and Foreground properties. It does look like that at least the Foreground brush does get properly updated even though the error is being logged.
Tags: DynamicResource, TextBox
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1591 [NoesisGUI] Unity3D crash always 2019-11-30 21:43 2019-12-31 00:48
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Unity Crash w/ Vanilla Noesis Installation if Noesis View Component Not Instantiated
Description: I'm enclosing a project that crashes on play. Load the default scene that has a camera, light and nothing else. It's a vanilla Unity project. The short of it is that there is a fatal Unity crash if the Noesis DLL is included but no Noesis view component is instantiated within the hierarchy, and play is pressed. Unity 2019.2.11.f1
Tags:
Steps To Reproduce: Reproduction project included w/ log. Crash .dmp not generated, apparently. Resolution is to add a NoesisView component before hittting play.
Additional Information:
Attached Files: Editor.log (63,648 bytes) 2019-11-30 21:43
https://www.noesisengine.com/bugs/file_download.php?file_id=1129&type=bug
Notes
(0006024)
stonstad   
2019-11-30 21:44   
(Last edited: 2019-11-30 21:46)
Encl. NoesisBugs.zip. Unity project for reproduction.
http://stellarconquest.blob.core.windows.net/$root/Noesis%20Bugs1.zip

(0006026)
sfernandez   
2019-12-02 17:12   
(Last edited: 2019-12-02 17:45)
Hi, I'm not able to reproduce the crashes with the attached project. I can play the empty scene several times just fine, reimport the included xaml and play the scene again... everything seems fine.
In the attached Editor.log I see a lot of errors coming from Unity itself:
Assertion failed on expression: 'SUCCEEDED(hr)'
 (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/D3D11Window.cpp Line: 186)
d3d11: failed to create 2D texture id=629 width=83 height=17 mips=7 dxgifmt=28 [D3D error was 887a0005]
(Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 496)
d3d11: failed to create 2D texture shader resource view id=629 [D3D error was 80070057]
 (Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 460)
d3d11: failed to create buffer (target 0x1 mode 0 size 96) [0x887A0005]
d3d11: failed to create buffer (target 0x2 mode 0 size 12) [0x887A0005]
d3d11: failed to create 2D texture id=631 width=4 height=4 mips=1 dxgifmt=28 [D3D error was 887a0005]
(Filename: C:\buildslave\unity\build\Runtime/GfxDevice/d3d11/TexturesD3D11.cpp Line: 496)
...
d3d11: failed to create buffer (target 0x1 mode 4 size 147456) [0x887A0005]
d3d11: failed to create buffer (target 0x2 mode 4 size 16384) [0x887A0005]
d3d11: attempt to lock null buffer
Crash!!!

I don't think this has anything to do with Noesis, aren't you able to reproduce this without Noesis package being part of the project?

(0006028)
stonstad   
2019-12-02 17:38   
I can't reproduce it at all today. I opened the same test project and what caused a repeatable error before now doesn't. Sorry sfernandez. I agree -- it must be Unity.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1603 [NoesisGUI] Unity3D crash always 2019-12-17 15:57 2019-12-31 00:20
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Bad XAML Causes Crash on Unity Editor Start
Description: Referencing an unknown variable in XAML multitriggers causes crash on Assembly reload and editor start.

encl. stack dump, and log

Stack Trace of Crashed Thread 22560:
0x00007FFB02367EB6 (Noesis) DispatcherObject_GetStaticType
0x00007FFB02365BB4 (Noesis) DependencyObject_GetStaticType
0x00007FFB023665B0 (Noesis) DependencyObject_GetStaticType
0x00007FFB02375EF2 (Noesis) TriggerBase_GetStaticType
0x00007FFB0242DBA8 (Noesis) MultiTrigger_GetStaticType
0x00007FFB02481E72 (Noesis) TemplateBindingExpression_GetStaticType
...

Tags:
Steps To Reproduce: Bad XAML. PART_Grid does not exist.

 <ControlTemplate x:Key="StandardButtonTemplate" TargetType="Button">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="35"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="35"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="70"/>
            </Grid.RowDefinitions>

            <Rectangle x:Name="PART_Image_L" Grid.Column="0" Fill="{StaticResource buttonup_l}"/>
            <Rectangle x:Name="PART_Image_M" Grid.Column="1" Fill="{StaticResource buttonup_m}"/>
            <Rectangle x:Name="PART_Image_R" Grid.Column="2" Fill="{StaticResource buttonup_r}"/>

            <ContentPresenter x:Name="PART_ContentPresenter" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{DynamicResource _ContentPresenterMargin}" Opacity="1" RenderTransformOrigin="0.5, 0.5"/>
        </Grid>
        <ControlTemplate.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="IsMouseOver" Value="False"/>
                    <Condition Property="IsFocused" Value="False"/>
                    <Condition Property="IsPressed" Value="False"/>
                </MultiTrigger.Conditions>
                <MultiTrigger.Setters>
                    <Setter TargetName="PART_Image_L" Property="Fill" Value="{StaticResource buttonup_l}"/>
                    <Setter TargetName="PART_Image_M" Property="Fill" Value="{StaticResource buttonup_m}"/>
                    <Setter TargetName="PART_Image_R" Property="Fill" Value="{StaticResource buttonup_r}"/>
                    <Setter TargetName="PART_ContentPresenter" Property="Opacity" Value="0.75"/>
                    <Setter TargetName="PART_Grid" Property="Background" Value="Red"/>
                </MultiTrigger.Setters>
            </MultiTrigger>
...

Not a blocker or issue for us.
Additional Information:
Attached Files: Crashes.zip (533,822 bytes) 2019-12-17 15:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1137&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1607 [NoesisGUI] Unity3D crash always 2019-12-27 03:12 2019-12-30 12:31
Reporter: nokola Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: ArgumentException when assigning Image.Source = new TextureSource(texture) more than once
Description: [Exception] ArgumentException: An item with the same key has already been added. Key: 553260848
System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert() <7ba07f088431485bb722f3b3373e87ee>:0

System.Collections.Generic.Dictionary`2[TKey,TValue].Add() <7ba07f088431485bb722f3b3373e87ee>:0

Texture.WrapTexture() Assets/NoesisGUI/Plugins/NoesisTexture.cs:21
19: Noesis.Texture tex = new Noesis.Texture(texturePtr, true);
-->21: Textures.Add(texturePtr.ToInt64(), texture); *************************************** ISSUE HERE
23: return tex;

Noesis.TextureSource..ctor() Assets/NoesisGUI/Plugins/NoesisTextureSource.cs:12
10: }
-->12: public TextureSource(UnityEngine.Texture2D texture): this(Texture.WrapTexture(texture,
13: EnsureNativePointer(texture), texture.width, texture.height, texture.mipmapCount))
14: {

ReverseSelectControl.SetEffectImage() Assets/XAMLs/FantasiaPhone/UnityShared/ReverseSelectControl.xaml.cs:261
259: _effectThumbnail.Release();
260: _effectThumbnail = CreateThumbnailFromBitmap(effectFullSize, _origThumbnail.Width, _origThumbnail.Height);
-->261: img100.Source = new TextureSource(_effectThumbnail.Bitmap);
263: UpdateViewExceptReverseMask();

EffectPage.UpdateMaskControlEffectIfNeeded() Assets/XAMLs/FantasiaPhone/UnityShared/EffectPage.xaml.cs:2410
2408: if (_isShowingActions)
2409: {
-->2410: _maskControl.SetEffectImage(_updated);
2411: }
2412: }

EffectPage+<WorkerCoroutine>d__32.MoveNext() Assets/XAMLs/FantasiaPhone/UnityShared/EffectPage.xaml.cs:436
434: {
435: tipControl.HideTip();
-->436: UpdateMaskControlEffectIfNeeded();
437: progress.Visibility = Visibility.Collapsed;
438: imageFrame.Display.HideProgress();

SetupCoroutine.InvokeMoveNext() C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17
Tags:
Steps To Reproduce: 1. Create <Image Name="img100" .../> in XAML and assign texture source in code more than once:
img100.Source = new TextureSource(_effectThumbnail.Bitmap);

Expected: all OK
Actual: exception above
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1608 [NoesisGUI] Unity3D minor have not tried 2019-12-28 14:35 2019-12-30 12:22
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: StringFormat produces different symbols when using [, ] or | in the binding of a default ComboBox.
Description: StringFormat produces different symbols when using [, ] or | in a binding for the default ComboBox. Using a custom ComboBox does not have this problem.
Tags:
Steps To Reproduce: Use an ItemTemplate like the following with the default ComboBox:

                    <ComboBox.ItemTemplate>
                        <DataTemplate">
                            <TextBlock Text="{Binding Name, StringFormat='{}[Tag] |{0}| [Tag]'}" />
                        </DataTemplate>
                    </ComboBox.ItemTemplate>

The brackets will show as arrows and the pipe symbols will be double pipe symbols.
Additional Information:
Attached Files:
Notes
(0006048)
sfernandez   
2019-12-30 10:21   
(Last edited: 2019-12-30 10:22)
Those are the glyphs in our default font, you will see the same using them in a plain TextBlock:
<TextBlock Text="[Tag] | something | [Tag]"/>

But if you set a different FontFamily like Arial the result should be fine:
<TextBlock Text="[Tag] | something | [Tag]" FontFamily="Arial"/>


(0006049)
Gwynneth   
2019-12-30 11:07   
That explains why it works with my custom controls. Is there a reason though why Noesis uses different glyphs in its font? Now that I know this it is easy to work around, but I reckon it could be confusing for more people. Especially since it is not documented as far as I know? Anyways, I'll leave it up to you to decide whether or not you'd like to make any changes or mark this as resolved. Now that I know the cause of this previously unknown behavior I can rest easy.
(0006050)
sfernandez   
2019-12-30 12:06   
We are using ModeNine (https://www.dafont.com/modenine.font) as our default font.
We decided for that font because it is monospaced (good for showing debug stats) and it is a very small file (small memory footprint) as it gets embedded in our native library.
(0006052)
jsantos   
2019-12-30 12:22   
This is changing in 3.0 by the way, we are no longer going to embed that font by default. Thanks for your feedback


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1347 [NoesisGUI] Unity3D minor always 2018-11-21 13:20 2019-12-30 12:20
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Unity bug when scrolling on touchpad
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=941&p=5128
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1587 [NoesisGUI] Unity3D minor always 2019-11-24 14:47 2019-12-30 12:19
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: NoesisView Garbage Generation Scenario
Description: I tracked down the source of a 8 kb per frame garbage allocation to NoesisView.cs. It turns out the cause is something one could argue is developer error, but it is *definitely* a pitfall that should be avoided. These empty try/catches in Update() are dangerous to the extreme for GC allocations and they can be avoided:

        try { if (Input.GetAxis("Noesis_Vertical") > 0.5f) gamepadButtons |= GamepadButtons.Up; } catch (Exception) {}
        try { if (Input.GetAxis("Noesis_Vertical") < -0.5f) gamepadButtons |= GamepadButtons.Down; } catch (Exception) {}

        try { if (Input.GetAxis("Noesis_Horizontal") > 0.5f) gamepadButtons |= GamepadButtons.Right; } catch (Exception) {}
        try { if (Input.GetAxis("Noesis_Horizontal") < -0.5f) gamepadButtons |= GamepadButtons.Left; } catch (Exception) {}

        try { if (Input.GetButton("Noesis_Accept")) gamepadButtons |= GamepadButtons.Accept; } catch (Exception) {}
        try { if (Input.GetButton("Noesis_Cancel")) gamepadButtons |= GamepadButtons.Cancel; } catch (Exception) {}
        try { if (Input.GetButton("Noesis_Menu")) gamepadButtons |= GamepadButtons.Menu; } catch (Exception) {}
        try { if (Input.GetButton("Noesis_View")) gamepadButtons |= GamepadButtons.View; } catch (Exception) {}
        try { if (Input.GetButton("Noesis_PageLeft")) gamepadButtons |= GamepadButtons.PageLeft; } catch (Exception) {}
        try { if (Input.GetButton("Noesis_PageRight")) gamepadButtons |= GamepadButtons.PageRight; } catch (Exception) {}
        try { if (Input.GetAxis("Noesis_PageUp") > 0.5f) gamepadButtons |= GamepadButtons.PageUp; } catch (Exception) {}
        try { if (Input.GetAxis("Noesis_PageDown") > 0.5f) gamepadButtons |= GamepadButtons.PageDown; } catch (Exception) {}

        try { float v = Input.GetAxisRaw("Noesis_Scroll"); if (Math.Abs(v) > 0.05f) _uiView.Scroll(v); } catch (Exception) {}
        try { float v = Input.GetAxisRaw("Noesis_HScroll"); if (Math.Abs(v) > 0.05f) _uiView.HScroll(v); } catch (Exception) {}

A developer may choose to remove any one of these input labels for any number of reasons and Noesis will silently allocate multiple KB of garbage for each frame rendered. These thrown exceptions are caught silently. Since Unity does NOT report exceptions while a debugger is attached it is highly likely a developer will never know this is happening. The best case scenario is that they will just think, "Noesis creates garbage," when it usually doesn't.

As a proposed solution, NoesisView could check for the existence of these inputs on Awake() and then disable reading them in Update() if they were not previously defined. This design completely eliminates the need for try/catches in the Update loop and prevents possible GC allocation. This has the added benefit of allowing developers to eliminate Noesis inputs as they may find necessary to accommodate gameplay controls.


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: GC Allocations.PNG (13,372 bytes) 2019-11-24 14:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1127&type=bug
NoesisView.cs (44,122 bytes) 2019-12-30 12:19
https://www.noesisengine.com/bugs/file_download.php?file_id=1141&type=bug
Notes
(0006006)
stonstad   
2019-11-24 14:53   
NoesisView.UpdateMouse() also has an empty/try catch that is capable of allocating garbage. Easily avoided by checking for existence of input on Awake(). Or at minimum just throw an exception so we are defensive here and developers won't be unaware that per frame garbage is being allocated.
(0006009)
jsantos   
2019-11-25 18:11   
We are aware of this, and that's the reason we added a checkbox in the View to disable input from gamepads. But, you are totally right, it is better to detect each mapping on Awake() and then use that information in every frame.

Thanks for this ticket!
(0006010)
stonstad   
2019-11-25 23:50   
If you'd like a PR I'd be happy to share. I'm thinking Hashset<string> would have negligible impact...
(0006011)
jsantos   
2019-11-26 13:56   
I think I prefer a bunch of booleans but I am not sure. Thanks for the offer. I will write again here whenever I start working on it.
(0006037)
stonstad   
2019-12-16 18:11   
One of the gotchas to any design that minimizes the exception throwing invocations -- is that at some point in the future a controller may be connected. The validation logic would need to rerun to allow the connected controller to function.

I can't speak for other developers, but it would be easy for me to call a Refresh method on a view to rescan for valid inputs once the game detects a controller. You could also check for controller connected events -- but my experience is that those workflows are historically buggy in Unity, and it may be easier to offload that to the developer.
(0006038)
jsantos   
2019-12-16 18:21   
Even if the controller is not connected, Input.GetButton() shouldn't throw an exception because as far as I understand the exception is raised when the mapping is not in the list.

So the check done at init time should be valid forever, am I right?
(0006039)
stonstad   
2019-12-16 18:48   
Oy, you're right!
(0006051)
jsantos   
2019-12-30 12:19   
Fixed in the imminent 2.2.6. I have attached the new NoesisView.cs


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1610 [NoesisGUI] Unity3D major have not tried 2019-12-28 14:58 2019-12-28 14:58
Reporter: Gwynneth Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Type casting in a binding does not work
Description: When using type casting in a binding the binding fails which will get logged by Noesis as an error (with Log Verbosity set to Binding). Noesis will also warn about not being able to find the bound property on the cast object.
Tags:
Steps To Reproduce: Create a binding in which an object is cast to a specific type to access its properties. Generically this is done as follows:
      Path=Obj1.(ns1:TypeObj1.Obj2).(ns2:TypeObj2.Obj3)...(nsN:TypeObjN.BindedProp)

Specifically, I created a data template and used the binding below on a custom TextBlock. The binding will not work and Noesis will complain about OverviewViewModel not containing the property 'TextSettings'.
      TextSettings="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBox}}, Path=DataContext.(viewModels:OverviewViewModel.TextSettings).ActiveSettings}"

When exposing the viewmodel differently in a typed manner (in this case OverviewView.ViewModel is of type OverviewViewModel), the binding works:
      TextSettings="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type OverviewView}}, Path=Viewmodel.TextSettings.ActiveSettings}"
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1609 [NoesisGUI] Unity3D minor have not tried 2019-12-28 14:45 2019-12-28 14:46
Reporter: Gwynneth Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Use of an interface as DataType in a DataTemplate logs unknown type error messages
Description: Use of an interface as DataType in a DataTemplate logs unknown type error messages
Tags:
Steps To Reproduce: Create a data template making use of something similar to the following syntax:

    <DataTemplate x:Key="DataTemplate.ComboBox.Item.Profile" DataType="{x:Type interfaces:IProfile}">

The data template will work but Noesis will show the following error message: Unknown type 'interfaces:IProfile'. Unable to set DataTemplate.DataType. Setting the DataType to an actual implementation of the interface works without error messages.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1606 [NoesisGUI] Unity3D feature always 2019-12-21 10:24 2019-12-21 10:25
Reporter: chrisjbampton Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: GridViewColumn BindingExpressionBase
Description: The GridViewColumn class is missing a (BindingExpressionBase) DisplayMemberPathProperty.

This means you cannot directly create bindings in C# to GridViewColumns.

More details here:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1868
Tags:
Steps To Reproduce: Steps to reproduce here:


https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1868
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1600 [NoesisGUI] C++ SDK crash always 2019-12-12 20:37 2019-12-20 17:40
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Layout freeze
Description: The following xaml freezes NoesisGUI during layout loop because of continuous changes to the over element:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions">
    <Button Background="Red" BorderThickness="0" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="0">
        <Border>
          <TextBlock x:Name="ShortcutName" Background="Black" Text="Ctrl+Z" Visibility="Visible" />
        </Border>
        <i:Interaction.Triggers>
          <i:EventTrigger EventName="MouseEnter">
            <ei:ChangePropertyAction PropertyName="Visibility" TargetName="ShortcutName" Value="Collapsed" />
          </i:EventTrigger>
          <i:EventTrigger EventName="MouseLeave">
            <ei:ChangePropertyAction PropertyName="Visibility" TargetName="ShortcutName" Value="Visible" />
          </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1599 [NoesisGUI] Unity3D major always 2019-12-12 14:09 2019-12-20 17:40
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Unity Hard Loop/Lock on Visual Tree Update
Description: Updated: -- User Error, Please Ignore

I don't know how to provide the telemetry you need for this one -- your guidance/help on getting you what you need is requested. I have a UI that causes Unity to hard lock (loop?) with high processor utilization. Breakpoints don't fire and I am forced to terminate Unity. A freeze occurs after the UI is initialized and a subsequent change is made. Sometimes the UI disappears, but most of the time it is a lock. The visual tree is as follows:

Grid
   Grid
      Grid
         ViewBox
            Grid (which forces a specific size based on user's preferred UI 'size')
               Grid
                  Grid
                     Grid
                        HeaderedContentControl
                           Grid
                              StackPanel
                                 ScrollViewer
                                    WrapPanel
                                       UserControl w/ LayoutTransform & ScaleTransform
                                          Grid
                                             Image 1
                                             Image 2
                                             Text 1
                                             StackPanel
                                                Image 1
                                                Image N
                                             Grid (Focused 9-Slice Grid w/ Image)
                                             Grid (Unfocused 9-Slice Grid w/ Image)
                                             Grid (Over 9-Slice Grid w/ Image)
                                             Grid (Down 9-Slice Grid w/ Image)

There are 75+ UserControl instances in that wrap panel. I found that if the focused grid had negative margin (so that it extends outside of its parent) I get a hard lock every time the scrollviewer hits 0.

Clearing the wrap panel can also cause a hard lock. This could be Unity, it could be me. I'm not aware of anything I am doing to cause a layout cycle, but hey, I've done incorrect things before.

What kind of information can I provide to help us diagnose if this is a Noesis thing?

Encl. screenshots of UI and unresponsive process.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Skills.PNG (3,131,612 bytes) 2019-12-12 14:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1132&type=bug
Skills2.PNG (19,320 bytes) 2019-12-12 14:09
https://www.noesisengine.com/bugs/file_download.php?file_id=1133&type=bug
Notes
(0006034)
stonstad   
2019-12-12 14:23   
I found the code that causes the hard lock. Commenting it out resolves the behavior. The UserControl cited above has this logic:

        Button.MouseEnter += (sender2, e2) =>
            {
                if (Button.IsFocused)
                    _FocusedLayer.Visibility = Visibility.Visible;
                else
                    _OverLayer.Visibility = Visibility.Visible;
            };

Changing what is visible inside the button is most likely firing a layout event which in turn is firing a MouseEnter/MouseLeave event, and it loops indefinitely. I am going to try to resolve this with different logic. If you think this is actually a bug to investigate let me know, otherwise I'll reply back once I have my offending logic eliminated.
(0006035)
stonstad   
2019-12-12 14:33   
Setting IsHitTestVisible to false for UIElements which change on MouseOver resolves the behavior. Seems very much like user error on my part. Please do feel free to close this unless you feel further investigation is warranted.
(0006036)
sfernandez   
2019-12-16 12:46   
I think this is in fact a bug in Noesis because we shouldn't freeze in an infinite loop no matter what layout and triggers you decide to use.
We should be able to detect those scenarios and break the layout loop.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1604 [NoesisGUI] Unity3D major always 2019-12-17 16:48 2019-12-19 17:53
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Keyboard/Joystick Selection Fails If Intermediary UI Element Collapsed
Description: Given N focusable controls, if a control with index > 1 and < N is collapsed, keyboard and gamepad focus cannot move beyond the collapsed element. Tab selection works but keyboard (and gamepad) selection does not work. In the attached video, the following is shown:

1. All buttons are displayed. Gamepad selection and focus may traverse all visible buttons.
2. Buttons are collapsed in the middle of the container.
3. Selection may not proceed beyond the element preceding the collapsed buttons.
4. However, tab focus and selection still works.

Video:
http://stellarconquest.blob.core.windows.net/$root/Selection%20Bug.mp4

Encl. Identity Selection Control.xaml

We are submitting this as major because it is currently a release blocker for the XBOX platform and SC Alpha 2 release.


Tags:
Steps To Reproduce:
Additional Information:
Attached Files: IdentitySelectionControl.cs (22,813 bytes) 2019-12-17 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1138&type=bug
IdentitySelectionControl.xaml (34,626 bytes) 2019-12-17 16:48
https://www.noesisengine.com/bugs/file_download.php?file_id=1139&type=bug
Notes
(0006043)
stonstad   
2019-12-18 20:35   
To clarify, I see this with containers having both collapsed and disabled user controls. Please let us know if you need anything at all to better test/recreate/resolve this behavior.
(0006044)
sfernandez   
2019-12-19 12:20   
(Last edited: 2019-12-19 12:22)
I'm investigating the issue, and so far with basic examples like a stackpanel with buttons and even your xaml after commenting your BorderControl and RenderControl, if I hide elements in the xaml, gamepad navigation works as expected.
I will try to change the visibility in runtime from code like you do to see if that is the problem.

(0006045)
sfernandez   
2019-12-19 12:38   
I've been able to reproduce it by changing visibility in code.
I'll let you know what I found.
(0006046)
stonstad   
2019-12-19 16:32   
Thank goodness, thank you sir!
(0006047)
sfernandez   
2019-12-19 17:53   
The problem was that directional navigation was not correctly discarding element sub-trees that were hidden/disabled, it was only checking the Visibility/IsEnabled on the individual controls.
Until we release the version (that should be very soon) you can workaround the bug by Collapsing the Buttons not the parent container.
Sorry for the inconvenience.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1602 [NoesisGUI] Unity3D minor always 2019-12-16 12:24 2019-12-18 13:36
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Windows
Summary: Separator does not render
Description: Using the Separator control in XAML does not render the control in Unity. In WPF it does render. Setting different properties on the Separator control does not seem to have any effect.
Tags: Separator
Steps To Reproduce: Create a project, add a UserControl with a Separator defined in it. See attached screenshots and sample project.
Additional Information:
Attached Files: Unity-Separator.png (34,074 bytes) 2019-12-16 12:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1134&type=bug
WPF-Separator.png (13,826 bytes) 2019-12-16 12:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1135&type=bug
Separator-XAML-code.png (44,546 bytes) 2019-12-16 12:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1136&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1605 [NoesisGUI] C# SDK minor N/A 2019-12-17 17:14 2019-12-17 17:18
Reporter: stonstad Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Add RemoveStoryboard for WPF/XAML Parity
Description: Noesis does not support RemoveStoryboard: https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.animation.removestoryboard?view=netframework-4.8

RemoveStoryboard is commonly used in control template triggers, as shown below:

<MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="IsMouseOver" Value="False"/>
                    <Condition Property="IsFocused" Value="True"/>
                    <Condition Property="IsPressed" Value="False"/>
                </MultiTrigger.Conditions>
                <MultiTrigger.Setters>
                    <Setter TargetName="PART_Image" Property="Source" Value="{DynamicResource _FocusedImage}"/>
                    <Setter TargetName="PART_Image" Property="Opacity" Value="1"/>
                </MultiTrigger.Setters>
                <MultiTrigger.EnterActions>
                    <BeginStoryboard x:Name="PART_Focus_Storyboard">
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="PART_Image" Storyboard.TargetProperty="(Rectangle.Opacity)" From="0.5" To="1.0" Duration="0:0:0.5" RepeatBehavior="Forever" AutoReverse="True"/>
                        </Storyboard>
                    </BeginStoryboard>
                </MultiTrigger.EnterActions>
                <MultiTrigger.ExitActions>
                    <RemoveStoryboard BeginStoryboardName="PART_Focus_Storyboard"/>
                </MultiTrigger.ExitActions>
            </MultiTrigger>

Please correct me if I am wrong -- without RemoveStoryboard there is no mechanism to end an animation on trigger exit.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: error message.PNG (28,979 bytes) 2019-12-17 17:15
https://www.noesisengine.com/bugs/file_download.php?file_id=1140&type=bug
Notes
(0006040)
stonstad   
2019-12-17 17:18   
Please consider this a candidate for removal. StopStoryboard works great as an alternative.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1598 [NoesisGUI] C++ SDK feature N/A 2019-12-12 00:55 2019-12-12 00:58
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Increase performance by rendering primitives front to back
Description: We experimented with this in NoesisGUI 2.1, using the zBuffer to discard non-visible pixels but we didn't find a good way to make this faster in all scenarios. The fact that our PPAA algorithm is using alpha-blending is not helping. Also increasing the size of dynamic geometry to include a fake z coordinate in every vertex was making performance worse. The alternative was disabling our batching algorithm, but this is not definitely a good idea in older APIs like D3D11 or OpenGL (probably good on Vulkan or D3D12).

We need to investigate this more.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1597 [NoesisGUI] C++ SDK minor always 2019-12-09 19:27 2019-12-09 19:28
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version:  
Platform: Any
Summary: Warning in GLRenderContext.mm.cpp
Description: NoesisApp.lib is not building in Debug because there are two warnings in GLRenderContext.mm.cpp
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006033)
jsantos   
2019-12-09 19:28   
Fixed in 2.2.6

Index: GLRenderContext.mm.cpp
===================================================================
--- GLRenderContext.mm.cpp	(revision 8517)
+++ GLRenderContext.mm.cpp	(working copy)
@@ -510,7 +510,9 @@
             flags |= WGL_CONTEXT_DEBUG_BIT_ARB;
         #endif
 
-        bool createContextNoError = strstr(extensions, "WGL_ARB_create_context_no_error") != 0;
+        #ifndef NS_DEBUG
+            bool createContextNoError = strstr(extensions, "WGL_ARB_create_context_no_error") != 0;
+        #endif
 
         for (int i = 0; i < NS_COUNTOF(versions) && mContext == 0; i++)
         {
@@ -833,7 +835,9 @@
             flags |= GLX_CONTEXT_DEBUG_BIT_ARB;
         #endif
 
-        bool createContextNoError = strstr(extensions, "GLX_ARB_create_context_no_error") != 0;
+        #ifndef NS_DEBUG
+            bool createContextNoError = strstr(extensions, "GLX_ARB_create_context_no_error") != 0;
+        #endif
 
         for (uint32_t i = 0; i < NS_COUNTOF(versions) && context == 0; i++)
         {



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1588 [NoesisGUI] Unity3D minor always 2019-11-24 20:59 2019-12-05 20:00
Reporter: stonstad Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: MouseEnter Events Fire When NoesisView.MouseEnabled Disabled
Description: I have UI elements which are visible while the cursor is locked and hidden.

To prevent UI events from firing I am setting NoesisView.EnableMouse = false. I am finding that the invisible cursor still interacts with these visible UI elements via MouseEnter event. They occur even when NoesisView.EnableMouse is false. Here is the strange thing -- it happens only if EnableMouse is set via code. If I change this boolean property via the NoesisView.cs Editor UI, events do not fire, as expected.

I looked at NoesisView.cs and I don't even know how this is possible.

I put debug statements in NoesisView --

 private void UpdateInputs()
    {
        if (_enableMouse)
        {
            Debug.Log(name + " " + "Mouse Enabled");
            UpdateMouse();
        }

I can confirm that with API calls and the checkbox via the editor, this setting flips properly. However, while I can see that the setting is NOT checked and I get NO debug output from the above, MouseEnter events STILL fire.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0006007)
stonstad   
2019-11-24 21:00   
(Last edited: 2019-11-24 21:00)
Also disabled touch and gamepad input at the same time as mouse -- and if flipped via code, I can confirm no change in behavior -- still seeing MouseEnter events fire.

(0006032)
stonstad   
2019-12-05 20:00   
This behavior does not reproduce in a separate project that is designed to just show the error. I'll report back after I find success reproducing it in a separate project.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1594 [NoesisGUI] C++ SDK crash always 2019-12-05 14:20 2019-12-05 18:32
Reporter: Joren Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Crash with InlineUIContainer inside a style
Description: As posted on the forums, together with a repro.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1866
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1465 [NoesisGUI] C++ SDK feature have not tried 2019-05-11 18:57 2019-11-26 19:53
Reporter: mingingmingler Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Allow 3D world-view-projection transforms in MVVM, independent of screen space for high performance spatial UI
Description: Hi, I've been dabbling with spatial UI in Noesis. I have a need to render many spatial elements at the same time, each with their own storyboards.

I first started doing it the render texture method. The performance of doing this isn't good, and the visual quality can suffer when the camera gets close to the element. So it's not desirable.

I decided it'd be far better to render the geometry directly into the world. So I tried something else - each spatial element now has its own view, and manages its own world view projection matrix. Before I tell Noesis to render each spatial view, I tell the grpahics device that I'm about to render a spatial element, and I pass it the element's world view projection. Now, when Noesis sets the buffers for this view, I override batch.projMtx directly with the new matrix.

The result is I get wonderful graphics quality, and the performance is better than using tons of render textures. But it's still not as good as it could be. Because each view is rendered separately, it doesn't take advantage of batching across all the views, and performance can suffer when each element has text in it.

I can't achieve what I want with the Noesis Projection attached property. Try as I might, I just can't work around the way Noesis handles a Matrix3DProjection behind the scenes.

So I believe the best solution would be, for example, to have a single Noesis scene/view, which has an ItemsControl bound to a collection of SpatialElement view models, which contain their own world-view-projection matrices. Then in the DataTemplate, we can assign this matrix to the root element, where Noesis would render the element (applying the transform directly to the vertices?) while ignoring any screen space projection that is applied behind the scenes. To be able to do this via MVVM would be incredibly powerful.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005675)
jsantos   
2019-05-14 20:56   
you nailed this. We are working on this feature for the next major version. We are going to deprecate the current implementation of the Projection property in favor of having real 3D.
(0005677)
mingingmingler   
2019-05-15 01:09   
That's exciting, thanks for getting back to me!
(0005678)
realesmedia   
2019-05-15 14:32   
Hi

in version 2.3 there will be support for 3D primitives (mesh, line ...)?

I want to implement 3D Gizmo (manipulators) on Noesis)))
(0005679)
jsantos   
2019-05-15 22:01   
We are working in a feature to inject 3D geometries inside a XAML. For example, to have a button that is a 3D-mesh. But the render must be done by the engine (Unity, Unreal, custom). That's something Noesis won't do, apart from calling a callback at the right time.
(0005682)
realesmedia   
2019-05-16 14:26   
ok
thank
(0006012)
jsantos   
2019-11-26 19:51   
(Last edited: 2019-11-26 19:53)
Many internal changes are coming in the next major version about this. Externally, the API has been improved to support setting a projection matrix to the view.
    /// Sets the projection matrix that transforms the coordinates of each primitive to a
    /// non-normalized homogeneous space where (0, 0) is at the lower-left corner and
    /// (width, height) is at the upper-right cornet after projection
    virtual void SetProjectionMatrix(const Matrix4& projection) = 0;


Also we added, this overload to IRenderer to allow rendering each eye in VR
    /// Renders UI into the current render target and viewport. This function overrides the default
    /// view projection matrix. Can be used for example to render each eye in VR
    virtual void Render(const Matrix4& projection, bool flipY = false) = 0;

Each view, by default, is initialized to a perspective transform that behaves like the identity (like Noesis 2.2) at the near plane but includes perspective when elements are rotated in 3D using the new Transform3D property

<Rectangle>
  <Rectangle.Transform3D>
    <CompositeTransform3D RotateY="45"/>
  </Rectangle.Transform3D>
</Rectangle>


<Rectangle>
  <Rectangle.Transform3D>
    <MatrixTransform3D Matrix="{Binding NodeMatrix}"/>
  </Rectangle.Transform3D>
</Rectangle>


We also added support to rotate in XamlPlayer with ALT + right button drag.
We are preparing a document explaining all this.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1567 [NoesisGUI] C# SDK major random 2019-10-14 13:03 2019-11-25 12:02
Reporter: Vince_1990 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Opening 2 Windows / RenderContexts in Main() crahses.
Description: See topic below for info and test project.
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1821
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1585 [NoesisGUI] C++ SDK feature always 2019-11-22 09:00 2019-11-25 08:26
Reporter: staffan Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Inner scrollviewer captures all manipulation events
Description: When trying to create a nested ScrollViewer, the innermost will capture all touch/manipulation events, making it impossible to Scroll the outer ScrollViewer
Tags:
Steps To Reproduce: create a vertical stack of horizontal ScrollViewers and wrap it in a vertical ScrollViewer
Additional Information:
Attached Files:
Notes
(0006005)
jsantos   
2019-11-23 16:30   
This is also a problem for WPF right?

We have plans to move away from WPF and implement manipulations like in UWP.
(0006008)
staffan   
2019-11-25 08:26   
Yes it's also a problem in wpf


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1581 [NoesisGUI] C++ SDK minor always 2019-11-03 18:05 2019-11-18 15:28
Reporter: firelight Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 3.0.0  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: GLRenderDevice.cpp sscanf on MSVC
Description: I'm not sure what compile flags you use, but the second sscanf line in GlRenderDevice::DetectGLVersion won't compile with W4 WX.
It uses _sscanf_s underneath the hood, which needs a size for characters (%c).


To fix,
        if (sscanf(version, "OpenGL ES-%c%c %d.%d", profile, 1, profile + 1, 1,
                     &major, &minor)

Good day
Tags:
Steps To Reproduce: Build app framework with W4 WX.
Additional Information:
Attached Files:
Notes
(0006002)
jsantos   
2019-11-17 20:17   
Thanks for reporting this. Are you compiling OpenGL ES with Visual Studio? We don't so that's the reason we observe that warning.
(0006003)
firelight   
2019-11-17 21:03   
Using Core GL 4.4 with glad. I had to heavily massage the file to get it to render ;)

BTW, if I may ask, I'm getting quite low performance with the default static demo. Your provided test renderer re-generates vbos all the time. Is that by design or simply the reason why you encourage writing your own renderer?

What I mean is, do your APIs allow storing vbos (and vaos for me) so they aren't re-generated?

Also the tutorial mentions this : " Greater performance can be achieved if your application implements a way to invalidate its required states. This is faster because you avoid getting the current state from the driver."

Do you know what the API is to "invalidate required states". Google hasn't provided much details on this.

Cheers & thx
(0006004)
jsantos   
2019-11-18 15:27   
I am going to close this bug because that line is only being compiled for OpenGL ES in our repository and we are only using gcc or clang for that.

Regarding the performance, please open a new thread at the forums to follow up the conversation. We are not regenerating the VBOs per frame, they are being updated dynamically and that should be quite fast.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1546 [NoesisGUI] Unity3D major always 2019-08-26 06:57 2019-11-17 18:04
Reporter: bungarra Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: PS4 Controller "Noesis_Accept" does not work.
Description: clicking on a button with a PS4 controller does not register, the click event has been called but does not execute the function on the button, have tested with other controllers and it works as well as mouse and keyboard.
Tags: C#, Unity
Steps To Reproduce: plug in a ps4 controller and use on every example scene
Additional Information:
Attached Files: NoesisView.cs (44,719 bytes) 2019-08-29 02:58
https://www.noesisengine.com/bugs/file_download.php?file_id=1104&type=bug
Notes
(0005939)
sfernandez   
2019-08-26 11:01   
Is this happening even if you apply the workaround in https://www.noesisengine.com/bugs/view.php?id=1524#c5907?
(0005940)
bungarra   
2019-08-27 02:34   
Yes, I have applied these workarounds, everything works fine on the Xbox controller just not the PS4
(0005944)
jsantos   
2019-08-28 18:32   
I tried with a PS4 controller and was able to reproduce the issue. The problem is that the axis and buttons in this controller are not compatible with the default mapping we provide with our samples, we configured the Input Manager with a Xbox controller in mind. If you want support for more controllers you need to configure them following our mapping.

I am not sure what's the best way to do this, I would say the current Input implementation in Unity is quite trivial and incomplete and probably extra work is needed.

This is not a bug. Ok with closing this?
(0005946)
bungarra   
2019-08-29 02:58   
We have created a system using unity new Input system, which maps the controllers correctly, the problem is that it doesn't call the click event on any of the buttons. the Noesis_Accept doesn't call the accept button on any PS4 controller but works with Xbox, Switch and generic Logitech. I have uploaded the noesisView edited without input system.
(0005948)
jsantos   
2019-08-29 10:27   
(Last edited: 2019-08-29 10:27)
That's happening because 'Noesis_Scroll' or 'Noesis_HScroll' are still being triggered with the incorrect input in the following lines:

line 692:        try { float v = Input.GetAxisRaw("Noesis_Scroll"); if (Math.Abs(v) > 0.05f) _uiView.Scroll(v); } catch (Exception) {}
line 693:        try { float v = Input.GetAxisRaw("Noesis_HScroll"); if (Math.Abs(v) > 0.05f) _uiView.HScroll(v); } catch (Exception) {}

I fixed it here, by properly adjusting all the axis for the PS4 controller. If you comment out that code, I am sure it will work for you. But I am not sure what's the right solution. Is that new Input System already stable?

(0005949)
bungarra   
2019-08-29 10:43   
We are using 2.2.4 which has these added in, I have also attached a gif of it working with an xbox and not working with the PS4. The noesis View is still using the old system in regards to the new lines, the only thing that has changed is the Accept call, but does not deviate away from your system and still calls the accept button.
(0005950)
jsantos   
2019-08-29 10:46   
Comment out those lines and you will see it works (it should :) ).

Problem is, our default Input System settings is incorrectly mapping the axis for the PS4 Controller because it is configured for Xbox controller.

Yesterday, I attached a PS4 controller, properly configured it and everything was working,
(0005951)
bungarra   
2019-08-29 10:53   
Removing the lines fixed thank you :).
(0005952)
jsantos   
2019-08-29 10:55   
Yes, but the right solution is not removing the lines. It is properly configuring the axis for the PS4 controller.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1584 [NoesisGUI] C# SDK trivial always 2019-11-13 11:30 2019-11-13 11:30
Reporter: Vince_1990 Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Changing WindowStyle / WindowState freezes window.
Description: Thread Ref: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1857
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1582 [NoesisGUI] C++ SDK minor always 2019-11-08 16:52 2019-11-08 16:59
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Changing Grid.Row/Column while measuring the Grid ignores the changes
Description: From forum topic: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1850
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1580 [NoesisGUI] C++ SDK minor N/A 2019-11-03 17:59 2019-11-03 17:59
Reporter: firelight Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 3.0.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Gather NsApp and NsRender headers in single folder
Description: It would be nice if the headers were gathered in a single NsApp and NsRender include folder.

My use-case :
- external linkage with the app framework as a starting point for an integration.

I understand it isn't the recommended way, and I plan to fully replace the app framework. From a new user perspective however, it is a great way to get up to speed and explore what noesis has to offer.

Good day
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1574 [NoesisGUI] C++ SDK minor always 2019-10-18 17:07 2019-10-21 16:36
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Opacity groups disappear when overlap bottom screen edge
Description: The following xaml does not render the ellipse:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Ellipse Fill="Blue" Opacity="0.5" VerticalAlignment="Bottom" Width="200" Height="300" Margin="0,0,0,-10"/>
</Grid>

If negative bottom margin is removed, then the ellipse renders just fine.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1565 [NoesisGUI] Unity3D block always 2019-10-12 18:06 2019-10-21 16:36
Reporter: nokola Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Regression from 2.2.*: Image not visible if clipped outside of screen with opacity less than 1
Description: An image in XAML isn't visible when following conditions are met:
1) its opacity is < 1
2) the parent canvas Clip height is such that canvas goes beyond screen bottom edge
3) image TranslateY is such that image's bottom edge is outside the screen

See attached minimal project to reproduce
Tags:
Steps To Reproduce: 1. Open attached project, open SampleScene
2. Run in editor -> all OK
3. In CopyPastePage.xaml, uncomment line to change canvas opacity to 0.6 (from 1):
            <!-- ATTENTION: to reproduce image disappearing change opacity to < 1, like 0.6 -->
            <!-- <Canvas IsHitTestVisible="False" Visibility="Visible" x:Name="panelClone" Opacity="0.6"> -->
            <Canvas IsHitTestVisible="False" Visibility="Visible" x:Name="panelClone" Opacity="0.9">
4. Run again
Expected: all OK
Actual: image disappears

This is a blocker for us, because we are working on a paint app and if the customer rotates their canvas to have one edge exit the screen, the whole image disappears.
Additional Information:
Attached Files: NoesisCanvasImageIssue.7z (2,962,764 bytes) 2019-10-12 18:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1116&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1576 [NoesisGUI] C++ SDK minor always 2019-10-18 17:59 2019-10-18 18:25
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: StoryboardCompletedTrigger does not work if used inside a template
Description: The following xaml does not execute the action specified for the StoryboardCompletedTrigger:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions">
  
    <Grid.Resources>
        <Storyboard x:Key="anim">
            <ColorAnimation Storyboard.TargetName="rect" Storyboard.TargetProperty="Fill.Color" To="Green"/>
        </Storyboard>
        <ControlTemplate x:Key="controlTemplate" TargetType="Control">
            <StackPanel x:Name="root" Background="Silver">
                <Button Content="Start Anim">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Click">
                            <ei:ControlStoryboardAction Storyboard="{StaticResource anim}"/>
                        </i:EventTrigger>
                        <ei:StoryboardCompletedTrigger Storyboard="{StaticResource anim}">
                            <ei:ChangePropertyAction TargetName="rect" PropertyName="Height" Value="50"/>
                        </ei:StoryboardCompletedTrigger>
                    </i:Interaction.Triggers>
                </Button>
                <Rectangle x:Name="rect" Fill="Red" Height="20" Margin="10"/>
            </StackPanel>
        </ControlTemplate>
    </Grid.Resources>

    <Control Width="200" Height="100" Template="{StaticResource controlTemplate}"/>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1575 [NoesisGUI] C++ SDK minor always 2019-10-18 17:58 2019-10-18 18:25
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: ControlStoryboardAction cannot use Storyboard defined in application resources
Description: If a Storyboard was defined in Application.Resources then ControlStoryboardAction can't play it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1573 [NoesisGUI] C++ SDK tweak always 2019-10-18 15:06 2019-10-18 15:06
Reporter: SUMO_LWakeford Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis::DependencyObject::InternalGetValue is expensive.
Description: Noesis::DependencyObject::InternalGetValue consumes quite a relatively high amount of CPU resources.

It's slow because it has to recurse through many layers of indirection to recover the correct value, and it is called a lot because recalculating the layout of objects requires retrieving the values of many depencency properties.

After a discussion with Sergio Fernandez and Jesús de Santos García it appears there is room to improve the performance of this function.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1562 [NoesisGUI] Unity3D major always 2019-10-04 17:23 2019-10-18 13:57
Reporter: nokola Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Performance: Startup cost of NoesisXaml.OnEnable is 0000387:0001300 msec
Description: Opening this issue, to track startup performance, for sure related to https://noesisengine.com/bugs/view.php?id=1558, however I expect there may be something else too.
I managed to obtain a performance trace!

I'm willing to test intermediate versions if you have with fixes.
Please see attached perf trace.
Tags:
Steps To Reproduce: Build an app with il2cpp Android.
1. Profile the cost of NoesisXaml.OnEnable() [or use my perf trace]
2. In perf trace, go to step 5 that takes 2100ms in my case
3. Change Unity view in second window from Timeline to Hierarchy, expand data. You'll see NoeisXaml.OnEnable() using 1300ms.



Additional Information:
Attached Files: noesis_225_profile.data (4,891,776 bytes) 2019-10-04 17:23
https://www.noesisengine.com/bugs/file_download.php?file_id=1113&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1570 [NoesisGUI] C++ SDK minor have not tried 2019-10-16 05:13 2019-10-17 10:17
Reporter: tkawa Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: About Style of generated TextBlocks from DisplayMemberBinding
Description: Follow up from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1824

A Style defined in ListView.Resource is doesn't apply to generated TextBlocks from DisplayMemberBinding.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1559 [NoesisGUI] Unity3D minor always 2019-10-03 13:27 2019-10-17 10:17
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: GridViewColumn bindings not working when inside a template
Description: When a ListView is defined inside a ControlTemplate, the bindings specified in the GridViewColumn.Header are not working.
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.Resources>
        <Grid x:Key="ctx">
            <TextBlock Text="Offset"/>
            <TextBlock Text="Color"/>
        </Grid>
        <GradientStopCollection x:Key="list">
            <GradientStop Offset="1" Color="Red"/>
            <GradientStop Offset="2" Color="Green"/>
            <GradientStop Offset="3" Color="Blue"/>
        </GradientStopCollection>
        <DataTemplate x:Key="cellEmpty">
            <Decorator/>
        </DataTemplate>
          <Style x:Key="headerEmpty" TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
                        <Decorator/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <ControlTemplate x:Key="ctrlTemplate" TargetType="Control">
            <Grid>
                <TabControl>
                    <TabItem Header="Rect">
                        <Rectangle Margin="20" Fill="Salmon"/>
                    </TabItem>
                    <TabItem Header="List">
                        <ListView ItemsSource="{StaticResource list}" ScrollViewer.PanningMode="VerticalOnly">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Width="4" HeaderContainerStyle="{StaticResource headerEmpty}" CellTemplate="{StaticResource cellEmpty}"/>
                                    <GridViewColumn Header="{Binding Children[0].Text}">
                                        <GridViewColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBlock Text="{Binding Offset}" HorizontalAlignment="Right" Margin="10,0"/>
                                            </DataTemplate>
                                        </GridViewColumn.CellTemplate>
                                    </GridViewColumn>
                                    <GridViewColumn Header="{Binding Children[1].Text}">
                                        <GridViewColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBlock Text="{Binding Color}" HorizontalAlignment="Center" Margin="10,0">
                                                    <TextBlock.Foreground>
                                                        <SolidColorBrush Color="{Binding Color}"/>
                                                    </TextBlock.Foreground>
                                                </TextBlock>
                                            </DataTemplate>
                                        </GridViewColumn.CellTemplate>
                                    </GridViewColumn>
                                </GridView>
                            </ListView.View>
                        </ListView>
                    </TabItem>
                </TabControl>
            </Grid>
        </ControlTemplate>
    </Grid.Resources>
    <Grid x:Name="LayoutRoot" DataContext="{StaticResource ctx}">
        <Control Width="400" Height="400" Template="{StaticResource ctrlTemplate}"/>
    </Grid>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1499 [NoesisGUI] C# SDK minor have not tried 2019-06-19 19:39 2019-10-17 10:16
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: GridViewColumnHeader Click event not raised
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1450
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
937 [NoesisGUI] Unity3D minor always 2016-08-26 03:48 2019-10-17 10:16
Reporter: XaeroDegreaz Platform:  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 1.2.6f5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Click events are not registered on GridViewColumnHeader objects.
Description: I'm trying to latch on to the click events of GridViewColumnHeader objects for sorting data in a ListView.

The click even does not fire under normal circumstances. If I set the GridViewColumnHeader.ClickMode to "Press" then it will work every 2nd mouse click. It seems to work 100% of the time with Hover.

I've tried other mouse events but nothing seems to be working reliably.


I read the post at http://www.noesisengine.com/forums/viewtopic.php?f=3&t=168&p=936&hilit=clickmode#p936 but it is quite dated and I'm not sure if there was a resolution or not.
Tags:
Steps To Reproduce: XAML:
<ListView x:Name="gameList" Margin="10,10,10,482">
    <ListView.View>
        <GridView x:Name="gridView">
            <GridViewColumn DisplayMemberBinding="{Binding Host}">
                <GridViewColumn.Header>
                    <GridViewColumnHeader Tag="Host">Host</GridViewColumnHeader>
                </GridViewColumn.Header>
            </GridViewColumn>
            <GridViewColumn DisplayMemberBinding="{Binding GameName}">
                <GridViewColumn.Header>
                    <GridViewColumnHeader Tag="Game Name">Game Name</GridViewColumnHeader>
                </GridViewColumn.Header>
            </GridViewColumn>
            <GridViewColumn DisplayMemberBinding="{Binding Players}">
                <GridViewColumn.Header>
                    <GridViewColumnHeader Tag="Players">Players</GridViewColumnHeader>
                </GridViewColumn.Header>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

C#:
var gridView = (GridView) gameList.FindName( "gridView" );
foreach ( var column in gridView.Columns )
{
    var c = (GridViewColumn) column;
    var h = (GridViewColumnHeader) c.Header;
    h.Click+= ( sender, args ) => { throw new System.NotImplementedException(); };
}
Additional Information:
Attached Files:
Notes
(0004098)
XaeroDegreaz   
2016-08-26 04:23   
I was able to get it to work by using ClickMode=Press and explicitly calling ReleaseMouseCapture() on the sender:

var gridView = (GridView) gameList.FindName( "gridView" );
var cols = gridView.Columns.Cast<GridViewColumn>().ToList();
cols.ForEach( c =>
{
    GridViewColumnHeader h = (GridViewColumnHeader) c.Header;
    h.ClickMode = ClickMode.Press;
    h.Click += ( sender, args ) =>
    {
        Debug.Log( sender );
        ((GridViewColumnHeader)sender).ReleaseMouseCapture();
    };
} );


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1566 [NoesisGUI] Website minor always 2019-10-12 21:45 2019-10-13 13:28
Reporter: nokola Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Forum ">" navigation character appears as square (font load fails)
Description: Go to https://noesisengine.com/forums/viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820

Forum font will not load, making the ">" character after Board Index appear as squares.
OS: Windows 10

web Console shows these errors:

Access to font at 'https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.woff2?v=1.2.64' from origin 'https://noesisengine.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820:564 GET https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.woff2?v=1.2.64 net::ERR_FAILED
viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820:1 Access to font at 'https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.woff?v=1.2.64' from origin 'https://noesisengine.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820:1 GET https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.woff?v=1.2.64 net::ERR_FAILED
viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820:1 Access to font at 'https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.ttf?v=1.2.64' from origin 'https://noesisengine.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
viewforum.php?f=11&sid=b3d42c14e98798a9793d5577fae36820:1 GET https://www.noesisengine.com/forums/styles/canvas/theme/bower_components/mdi/fonts/materialdesignicons-webfont.ttf?v=1.2.64 net::ERR_FAILED

Browser: Chrome Version 77.0.3865.120 (Official Build) (64-bit) (LATEST)

Tags:
Steps To Reproduce: See description
Additional Information:
Attached Files:
Notes
(0005992)
sfernandez   
2019-10-13 13:28   
Thanks for reporting this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1548 [NoesisGUI] C# SDK feature always 2019-08-27 14:59 2019-10-11 10:33
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: Need the ability to Invoke calls onto the UI thread in the managed SDK
Description: Most UI frameworks provide mechanisms for running code on the UI thread… we think we can implement something like that ourselves, but think the solution would be much better if it was baked into the framework.
 
Essentially, we would like an implementation of the ThreadSwitcher described in these blogs:
https://devblogs.microsoft.com/oldnewthing/20190328-00/?p=102368
https://devblogs.microsoft.com/oldnewthing/20190329-00/?p=102373
You can see that ThreadSwitcher is implemented using the CoreDispatcher class for UWP, the Dispatcher for WPF, etc… we need a Dispatcher for Noesis Managed SDK that we can call BeginInvoke on and a way to tell if we are on the UI thread or not.
I don’t fully understand all the classes involved, but I noticed that Noesis doesn’t set SynchronizationContext.Current at startup, so I think an implementation of a custom SynchronizationContext would also be part of this solution.
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1470 [NoesisGUI] C# SDK feature have not tried 2019-05-21 08:39 2019-10-11 10:33
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: CheckAccess not implemented by Noesis.DependencyObject
Description: // BDMTODO:
// CheckAccess determines whether the calling thread has access to this DispatcherObject.
// but is not implemented by Noesis.DependencyObject. Is there another way?
//if (targetElement.CheckAccess())
//{
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1557 [NoesisGUI] C++ SDK feature always 2019-09-30 06:54 2019-10-11 10:32
Reporter: tkawa Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Windows
Summary: Support FontSizeConverter to convert string to float
Description: Follow up from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1817

I'd like to bind FontSize and specify "pt".
In WPF, it can convert from string to double by FontSizeConverter().

XAML
<TextBlock  FontSize="{Binding FontSize}"... />

cpp
float GetFontSize() const{
    NsString fontSizeString = "20pt";
    float fontSize;
    //Convert from NsString to float
    return fontSize;
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005989)
sfernandez   
2019-10-10 12:34   
I've been doing some tests in WPF and it looks like WPF doesn't allow that either.
I have a TextBlock with its FontSize bound to a string property in my ViewModel and WPF doesn't know how to convert it:
<TextBlock Text="This text's size is bound to a string" FontSize="{Binding TextSize}"/>

public class ViewModel
{
    public string TextSize { get; set; }
}

DataContext = new ViewModel { TextSize = "30pt" };

I was surprised by this behavior because I though WPF will use TypeConverter attribute specified in the FontSize property, but I found that bindings ignore that attribute and only use TargetProperty.PropertyType to decide which dynamic converter it should create. In this situation is creating a SystemConvertConverter that just calls Convert.ChangeType from String to Double which is trying to parse a double from the string, and is failing because of the "pt" suffix.

At the end FontSizeConverter is only used when parsing the xaml, and we already support that, should we close this?
(0005990)
tkawa   
2019-10-11 05:25   
I see it.
I had thought that it have to bind as float.
It was solved by returning NsString.
Thank you very much!!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1560 [NoesisGUI] C++ SDK minor N/A 2019-10-03 18:52 2019-10-07 13:12
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: SupportsFocusEngagement is not a recognised attribute in the Noesis.Gui.Extensions Blend extension
Description: Hi guys,

I'm trying to prevent a custom list box from stealing focus when I press gamepad_accept. The focus stealing is coming from focus engagement. I've managed to disable it by setting noesis:Element.SupportsFocusEngagement="False" on the custom list box, but this is not a recognised dependency property in Noesis.Gui.Extensions Blend extension. This stops the XAML from being loaded in Blend as it throws an error.

Any chance we can update the extension to recognise this attribute?

Cheers,

-Steven
Tags: NuGet
Steps To Reproduce: 1. Add a Reference to Noesis.Gui.Extensions app (I had the matching 2.2.1 version of the extension, but I've just updated to 2.2.5 and it still isn't solved).
2. Create a ListBox
3. Add noesis:Element.SupportsFocusEngagement=False to the listbox.
4. Notice that Blend does not recognize the attribute and it stops updating the viewport until the error is resolve (i.e. by removing the attribute).
Additional Information:
Attached Files:
Notes
(0005983)
sfernandez   
2019-10-07 13:12   
Resolved for 2.2.6 version, can be tested using pre-release NuGet: https://www.nuget.org/packages/Noesis.GUI.Extensions/2.2.6-beta1


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1561 [NoesisGUI] C++ SDK minor have not tried 2019-10-04 16:19 2019-10-07 10:23
Reporter: LarianStudios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.6  
    Target Version: 2.2.6  
Platform: Any
Summary: CommandConverter does not support prefixes
Description: Can't use a custom command in xaml that is registered in a class that requires using a prefix: "local.MyClass.MyCommand"
Tags:
Steps To Reproduce:
<Grid x:Class="MyNamespace.MyClass"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:MyNamespace">
    <Grid.CommandBindings>
        <CommandBinding Command="local:MyClass.MyCommand" Executed="OnMyCommand" />
    </Grid.CommandBindings>
    <Button Command="local:MyClass.MyCommand" Content="Raise Command"/>
</Grid>
Additional Information:
Attached Files:
Notes
(0005980)
sfernandez   
2019-10-04 16:54   
Fixed in trunk revision 8390.
(0005981)
jsantos   
2019-10-06 03:01   
Trunk is quite unstable right now, could we integrate this into 2.2 sergio?
(0005982)
sfernandez   
2019-10-07 10:23   
Sure, it is integrated into 2.2 branch in revision 8391.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1521 [NoesisGUI] Unity3D crash unable to reproduce 2019-07-19 17:07 2019-09-27 17:48
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis.dll Runtime Crash / Breakpoint (Box_TickBarPlacement)
Description: Unity Editor by Unity Technologies [version: Unity 2019.1.8f1_7938dd008a75]

Noesis.dll caused a Breakpoint (0x80000003)
  in module Noesis.dll at 0033:7a20903f.

Stack Trace of Crashed Thread 7752:
0x00007FFD7A20903F (Noesis) Box_TickBarPlacement
0x00007FFD7A2180F1 (Noesis) Box_TickBarPlacement
0x00007FFD7A218544 (Noesis) Box_TickBarPlacement
0x00007FFD7A218289 (Noesis) Box_TickBarPlacement
0x00007FFD7A217E9A (Noesis) Box_TickBarPlacement
0x00007FFD7A21623A (Noesis) Box_TickBarPlacement
0x00007FFD7A2093A6 (Noesis) Box_TickBarPlacement
0x00007FFD7A204682 (Noesis) Box_TickBarPlacement
0x00007FFD7A5A3BEF (Noesis) Box_TickBarPlacement
0x00007FFD7A5A157D (Noesis) Box_TickBarPlacement
0x00007FF627E0D347 (Unity) PAL_Memory_Free
0x00007FF627E1324B (Unity) PAL_Memory_Free
0x00007FF627E13615 (Unity) PAL_Memory_Free
0x00007FF6289C6867 (Unity) PAL_Memory_Free
0x00007FFE0EFA7974 (KERNEL32) BaseThreadInitThunk
0x00007FFE11D3A271 (ntdll) RtlUserThreadStart
Tags:
Steps To Reproduce: This occurred randomly as I played the game via the Unity editor. In this particular run view memory clean-up was disabled.
Additional Information:
Attached Files: Crash_2019-07-19_145918903.zip (357,665 bytes) 2019-07-19 17:07
https://www.noesisengine.com/bugs/file_download.php?file_id=1087&type=bug
Notes
(0005909)
stonstad   
2019-07-27 04:29   
I haven't seen this error repeat since it initially happened on 7/19. I am OK with us closing and reopening if it reoccurs in the future.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1538 [NoesisGUI] Unity3D crash always 2019-08-16 00:30 2019-09-27 17:47
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.5  
    Target Version: 2.2.5  
Platform: Any
Summary: Unity Crash on Project Load
Description: I'm getting a repeatable crash on Unity editor startup ... during project load. It appears to be related to an assertion from Noesis.

Editor.Log:

Assertion failed on expression: 'g_ThreadedGfxDevice'
Noesis.PropertyMetadata:.ctor(Object) (at Assets\NoesisGUI\Plugins\API\Proxies\PropertyMetadataExtend.cs:33)
StellarConquest.Presentation.Unity.UI.ViewboxGridControl:.cctor() (at Assets\User Interface\Controls\Viewbox Grid Control\ViewBoxGridControl.cs:10)

[C:\buildslave\unity\build\Runtime/GfxDevice/GfxDevice.cpp line 148]
(Filename: Assets/NoesisGUI/Plugins/API/Proxies/PropertyMetadataExtend.cs Line: 33)


The offending line of code is this:
   public static readonly DependencyProperty ScalingEnabledProperty = DependencyProperty.Register("ScalingEnabled", typeof(bool), typeof(ViewboxGridControl), new PropertyMetadata(true));

If I move the line of code the stack trace line number changes, too. So I think this is the line.

I am attaching log, dump files, and the Noesis user control that seems to cause the crash. I am going to look to see if I can stop the crash. I might be doing something crazy -- I'll take a look. I thought this might be useful since it's a fatal editor crash.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-08-15_222455133.zip (138,372 bytes) 2019-08-16 00:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1098&type=bug
ViewBoxGridControl.cs (2,102 bytes) 2019-08-16 00:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1099&type=bug
ViewboxGridControl.xaml (401 bytes) 2019-08-16 00:30
https://www.noesisengine.com/bugs/file_download.php?file_id=1100&type=bug
Works.cs (2,243 bytes) 2019-08-16 00:45
https://www.noesisengine.com/bugs/file_download.php?file_id=1101&type=bug
Notes
(0005923)
stonstad   
2019-08-16 00:33   
Commenting out the dependency property and turning the property setter/getter to no-ops resolves the behavior. I'm investigating further...
(0005924)
stonstad   
2019-08-16 00:45   
(Last edited: 2019-08-16 00:59)
Things I tried to prevent crash that does *not* work
1) comment out all code in constructor, including loaded event.
2) make get/set no-op.
3) rename to ScalingEnabledProperty to ScalingEnabled2Property.
4) use different constructor for dependency property to avoid using PropertyMetadata(true) parameter. Result: crash occurs in DependencyPropertyExtend, Line 13 instead.

Things I tried that *does* prevent the crash
1) comment out the dependency property, ScalingEnabledProperty. See works.cs for what code looks like that does work every time.

What is strange is that this worked fine for several days (2+ weeks?) and now it is happening every time I load/start Unity. My only workaround right now is to remove the DependencyProperty ScalingEnabledProperty.

(0005926)
stonstad   
2019-08-16 01:00   
Maybe bool needs to be added as a valid property type?
(0005932)
sfernandez   
2019-08-21 14:33   
(Last edited: 2019-08-21 14:39)
It seems a problem with the loading of Noesis library while starting Unity.

Could you please try the following code for your ViewboxGridControl?
using Noesis;
using System.Collections.Generic;
using Vector2 = UnityEngine.Vector2;
using Grid = Noesis.Grid;

namespace StellarConquest.Presentation.Unity.UI
{
    public partial class ViewboxGridControl : Grid
    {
        static ViewboxGridControl()
        {
            Noesis.GUI.Init();

            ScalingEnabledProperty = DependencyProperty.Register("ScalingEnabled", typeof(bool), typeof(ViewboxGridControl), new PropertyMetadata(true));
        }

        public static readonly DependencyProperty ScalingEnabledProperty = null; // DependencyProperty.Register("ScalingEnabled", typeof(bool), typeof(ViewboxGridControl), new PropertyMetadata(true));
        ...
    }
}

If this fixes the problem then I need to understand why this class is used without Noesis being initialized. Are you using that class from code in a MonoBehavior?

(0005933)
stonstad   
2019-08-21 20:56   
OK, perfect. Your analysis is spot on. The change worked, and helped me identify the cause.

The class contains a static property, ViewBoxGridControl.DefaultAspectRatioIndex. MonoBehavior code referred to this variable which, when accessed, caused the static initializer for ViewBoxGridControl to be called, which includes initialization of the dependency property. I moved the constant to a better location and all is well. Candidate for closure -- thank you for helping me understand this.
(0005934)
jsantos   
2019-08-22 01:25   
Thanks for the feedback stonstad.

I wonder if we could detect this scenario sergio, like having asserts if Noesis API is trying to be used without initialization. Not sure how many entries and how many asserts would be needed. And we don't want this code to be present in the non-editor build.
(0005937)
sfernandez   
2019-08-23 01:13   
Yes, we should be more robust against this scenario.
I'll move this ticket for the next release so we can think about how to solve it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1276 [NoesisGUI] Unreal minor always 2018-04-05 14:48 2019-09-12 13:33
Reporter: GeorgeR Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unknown type "PathGeometry"
Description: LogNoesis: Warning: /Game/Frontier/UI/Themes/Generic.Generic(590): Unknown type 'PathGeometry'.

Is PathGeometry really not supported?
Tags:
Steps To Reproduce: 1. Import the provided file
Additional Information: This is what produces the error:
                                                    <Path Stroke="{TemplateBinding Foreground}"
                                                          StrokeThickness="{TemplateBinding StrokeThickness}"
                                                          Canvas.Left="8" Canvas.Top="8">
                                                        <Path.Data>
                                                            <PathGeometry>
                                                                <PathFigure StartPoint="40, 0">
                                                                    <ArcSegment RotationAngle="0"
                                                                                SweepDirection="Clockwise"
                                                                                Size="40, 40"
                                                                                Point="{Binding Path=Angle, Converter={StaticResource AngleToPointConverter}, RelativeSource={RelativeSource FindAncestor, AncestorType=ProgressBar}}"
                                                                                IsLargeArc="{Binding Path=Angle, Converter={StaticResource AngleIsTooLargeConverter}, RelativeSource={RelativeSource FindAncestor, AncestorType=ProgressBar}}" />
                                                                </PathFigure>
                                                            </PathGeometry>
                                                        </Path.Data>
                                                    </Path>
Attached Files: Generic.xaml (77,433 bytes) 2018-04-05 14:48
https://www.noesisengine.com/bugs/file_download.php?file_id=919&type=bug
Notes
(0005176)
jsantos   
2018-04-09 18:24   
PathGeometry is not implemented so far. We recommend converting to Path, even if we supported Geometries (that we will in the future) Path is always a more efficient.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1553 [NoesisGUI] Unity3D block always 2019-09-10 16:45 2019-09-10 19:46
Reporter: JinFox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.4  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Empty project with unity package 2.2.4 does not boot on Android
Description: Hello,

I have tried to do a test build of the new version from an empty project. Each time, after the build i get the Unity splashscreen then black screen with nothing on it.
I have tried to logcat but there is no error and no warning (as if the process was stuck on an infinite loop potentially).

Here is what I have tested so far :
- I tested both version unity 2019.2.4f1 and 2019.1.14f1
- I have tested to build with the Hello World scene and the ControlGallery
- We have tested on another computer with different architecture (just in case)
- we have also tested to disable Multithreaded rendering without success.

For all the different tests scenario, an empty project was used with just the unitypackage installed and then directly built for Android (a windows/standalone build works)

Thank you

Regards,
Tags:
Steps To Reproduce: 1 - Create a new Unity Project
2 - import Noesis2.2.4 unitypackage
3 - open a scene from the samples
4 - Click on File>Build settings...
5 - add current scene to build.
6 - switch to Android Platform
7 - build or "build & run"
8 - see the error on the mobile device
Additional Information:
Attached Files:
Notes
(0005960)
jsantos   
2019-09-10 16:50   
Make sure you are not using Vulkan renderer. It is yet not supported.
(0005962)
JinFox   
2019-09-10 17:50   
I have indeed disabled Vulkan and it now worked. I didn't know it was using Vulkan by default.
Is Unity 2019.2.x is the minimum supported version or should it also be supported for 2019.1.14?
You can now close this issue, sorry for the inconvenience.
(0005963)
sfernandez   
2019-09-10 19:46   
NoesisGUI is compatible with Unity 2017 LTS and later.
NoesisGUI 2.2.2 added support for Unity 2019.1, and NoesisGUI 2.2.4 added support for Unity 2019.2.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1544 [NoesisGUI] Unity3D major always 2019-08-22 18:45 2019-08-23 17:36
Reporter: samc Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Unity plugin modifies packages
Description: The plugin is attempting to modify packages that include true type font files. Unity packages are read only and should never be manipulated by other plugins.
Tags: Unity
Steps To Reproduce: 1) Create a new unity project
2) Add some packages such as pro-builder, pro grids, etc.
3) Add Noesis
4) Observe that Noesis is generating assets and trying to place them beside package assets.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1545 [NoesisGUI] Unity3D block always 2019-08-22 20:33 2019-08-23 17:01
Reporter: samc Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Unity 2019.1.14f1 HDRP new project doesn't render, causes errors
Description: Noesis samples don't work in Unity2019.1.14f1 and there are errors after importing the noesis package.

Also tested in 2019.2.2f1 and it has the same behavior
Tags: Unity
Steps To Reproduce: Create a new unity project using Unity 2019.1.14f1
Select "High Definition RP" for the template
Import the Noesis 2.2.3 package
Check the console and you'll see errors such as:

Read only asset Packages/com.unity.render-pipelines.high-definition/Runtime/Core/Debugging/Prefabs/Fonts/Perfect DOS VGA 437.asset has no meta file.
UnityEditor.AssetDatabase:CreateAsset(Object, String)
NoesisPostprocessor:ImportFont(String, Boolean) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:139)
NoesisPostprocessor:ImportAssets(String[], UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:72)
NoesisPostprocessor:ImportAllAssets(UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:28)
NoesisUpdater:CheckVersion() (at Assets/NoesisGUI/Plugins/Editor/NoesisUpdater.cs:76)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()


Open a Noesis Sample scene, "Buttons" for example
Click play
Observe:
 - you can hear sounds and mouse clicks register, but nothing is rendered on screen
Additional Information:
Attached Files:
Notes
(0005936)
jsantos   
2019-08-22 23:30   
Just updated the title mentioning HDRP
(0005938)
jsantos   
2019-08-23 17:01   
For now, I am going to close this, because it is not a bug.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1669

Let's continue the discussion at the forums.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
885 [NoesisGUI] Unity3D minor always 2016-05-04 22:26 2019-08-23 13:14
Reporter: roland.tomczak Platform:  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.6f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version:  
Platform: Any
Summary: Wrong GetTouchPosition (Parent) result in GotTouchCapture callback
Description: I've defined a custom draggable control.

I've various handlers on touch events :

- In TouchDown event handler, I capture the touch device
- In GotTouchCapture event handler, I start the dragging process. I store the initial position ( e.GetTouchPoint ( this.Parent ) ).

=> e.GetTouchPoint ( this.Parent ) returns a wrong value.
I don't have the issue when calling GetTouchPoint in the TouchDown event handler.
Tags:
Steps To Reproduce:         private void OnTouchDown(object sender, TouchEventArgs e)
        {
            if (m_nCapturedTouchDevice == -1)
            {
                // THIS RETURNS THE RIGHT POSITION :
                m_ptTouchDownPosition = e.GetTouchPoint(this.Parent);
                // Capture the touch
                this.CaptureTouch( (uint) e.TouchDevice);
            }
        }

        private void OnGotTouchCapture(object sender, TouchEventArgs e)
        {
            // Handle a pointer capture
            
            // THIS RETURNS A WRONG POSITION :
            var ptWrongPosition = e.GetTouchPoint(this.Parent);

            OnPointerCaptured(m_ptTouchDownPosition);
            // Set the captured touch device
            m_nCapturedTouchDevice = e.TouchDevice;
        }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1537 [NoesisGUI] Documentation text N/A 2019-08-14 14:11 2019-08-23 01:10
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Improve Gamepad mapping documentation
Description: There is no reference in documentation tutorial https://www.noesisengine.com/docs/Gui.Core.SDKGuide.html#gamepad about how gamepad keys are automatically mapped to keyboard keys:

Key_GamepadLeft      : Key_Left
Key_GamepadUp        : Key_Up
Key_GamepadRight     : Key_Right
Key_GamepadDown      : Key_Down
Key_GamepadAccept    : Key_Space
Key_GamepadCancel    : Key_Escape
Key_GamepadPageUp    : Key_PageUp
Key_GamepadPageDown  : Key_PageDown
Key_GamepadPageLeft  : Key_PageLeft
Key_GamepadPageRight : Key_PageRight
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1508 [NoesisGUI] Unity3D minor always 2019-06-25 06:50 2019-08-22 19:26
Reporter: horeaper Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Windows
Summary: Using NoesisGUI with ProGrid together cause some errors.
Description: NoesisGUI 2.2.3 with Unity 2019.1.7.
When ProGrid and NoesisGUI exist together, the following error happens:

[code]
Read only asset Packages/com.unity.progrids/Font/Asap-Regular-ProGrids.asset has no meta file.
UnityEditor.AssetDatabase:CreateAsset(Object, String)
NoesisPostprocessor:ImportFont(String, Boolean) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:139)
NoesisPostprocessor:ImportAssets(String[], UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:72)
<>c__DisplayClass4_1:<OnPostprocessAllAssets>b__0() (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:107)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
[/code]
[code]
Read only asset Packages/com.unity.progrids/Font/Asap-Medium-ProGrids.asset has no meta file.
UnityEditor.AssetDatabase:CreateAsset(Object, String)
NoesisPostprocessor:ImportFont(String, Boolean) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:139)
NoesisPostprocessor:ImportAssets(String[], UpdateProgress) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:72)
<>c__DisplayClass4_1:<OnPostprocessAllAssets>b__0() (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:107)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
[/code]

The solution are to remove [i]Asap-Medium-ProGrids.asset[/i] and [i]Asap-Regular-ProGrids.asset[/i] from "Library\PackageCache\com.unity.progrids@(whatever.the.version.is)\Font" directory, then reopen the project.

Looks like those were generated by Noesis's font importer.
Tags: Unity
Steps To Reproduce: 1. Import NoesisGUI package.
2. Add ProGrid from package manager.
    The error will pop up.
4. Delete Asap-Medium-ProGrids.asset and Asap-Regular-ProGrids.asset in ProGrid's cache directory.
    Errors will go away after reopen the project.
5. Hit "Reimport All XAMLs", or re-import NoesisGUI.
   Errors will come back.
Additional Information:
Attached Files: 20190625125042.png (61,764 bytes) 2019-06-25 06:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1048&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1072 [NoesisGUI] Unity3D minor always 2017-05-06 10:58 2019-08-22 08:53
Reporter: monstercho Platform: Android/iOS  
Assigned To: jsantos OS: Android  
Priority: normal OS Version: 7.1  
Status: resolved Product Version: 2.0.1f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version:  
Platform: Any
Summary: Fast touch swipe on ScrollViewer scrolls even after hitting edge if you try to set scroll offset from code after swipe
Description: If I do a fast swipe over a scrollviewer to get high inertia it will quickly scroll to start or end of its content as expected.
But if very soon after that (1-2s) I try to scroll content from code with:
- scroll.ScrollToHorizontalOffset (...)
- child.BringIntoView()
Then I see the scrollviewer again scrolling content instead of going to the offset I give (or bringing into view the child).

Tested with horizontal scrollviewers. Have not tried vertical.
Tags:
Steps To Reproduce: 1) Open the attached project.
2) Build and run on Android or iOS
3) Fast swipe left on the numbers - the swipe should lead to high inertia scroll
4) When content is scrolled to end (number 29) start repeatedly touching the button below the numbers
5) Bug - content starts scrolling again instead of going to offset 0.

Also see the wrong behavior in the the attached short video.
Additional Information: It can also be reproduced on PC if I manually feed Unity input events to Noesis so the mouse can be used to swipe over the scrollviewer (using scrollbar gives no inertia).
Attached Files: NoesisScrollViewerTest 20170506.mp4 (1,803,323 bytes) 2017-05-06 10:58
https://www.noesisengine.com/bugs/file_download.php?file_id=794&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1405 [NoesisGUI] C# SDK minor always 2019-02-05 23:16 2019-08-22 08:53
Reporter: nokola Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version:  
Platform: Any
Summary: Cannot stop manipulation inertia in ListBox/ScrollViewer
Description: See forum https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1581

I have a ListBox with list of fonts that the user can scroll through and a separate control for paging through the fonts.
pagescroll.png
pagescroll.png (28.25 KiB) Viewed 15 times
When the user switches to another page, I replace the contents of the ListBox with another set of fonts and scroll to position 0.
There are situations when a user starts scrolling the ScrollViewer using touch on phone, then realizes they want to switch to another page and quickly presses the page switch buttons.

When the above happens, the ListBox keeps scrolling even though its contents are now different.
How do I cancel the inertia velocity for the ListBox to "stop it in its tracks"? :)
Tags:
Steps To Reproduce: 1. Create listbox with items and a button with text "scroll to 0" that calls call ScrollToHorizontalOffset(0)
2. Run on Android (touch device)
3. During scrolling with finger, quickly lift finger up and tap "Scroll to 0"

Expected:
Listbox scrolls to 0 and doesn't move

Actual:
Listbox scrolls to 0 and continues to scroll due to inertia from user's touch.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
866 [NoesisGUI] Unity3D minor always 2016-04-13 21:14 2019-08-22 08:53
Reporter: Scherub Platform:  
Assigned To: jsantos OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Scrolling doesn't stop if parent control is hidden
Description: I've stumbled over a kinda amusing error. When using gestures and scrollviewer manipulation is enabled, it scrolls to the end of the scrollviewer. If you now hide this control viewer and show it again, while telling it to jump to the front it will just continue scrolling. Of course you have to give it enough momentum for it to work. You can test it in my game in two views:

1. Accept Eula, open it, scroll down fast, click cancel, click "Register" again and you will see it scrolling. If you wait long enough it will have stopped or you can see stop it midway.

2. Level Selection: Just swipe to the right quickly, go back, enter the world again and you can see it scrolling.


It's not really a problem right now. But I guess it should be fixed at some point.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1536 [NoesisGUI] C++ SDK minor always 2019-08-13 18:45 2019-08-22 01:29
Reporter: steveh Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Can't bind to array index element - "Array properties can't be boxed"
Description: Hi guys, trying to bind to a fixed array declared in a data model. This works fine in Blend but I hit an assert in the C++ API here:

template<class T, uint32_t N>
Ptr<BaseComponent> TypePropertyArray<T,N>::GetComponent(const void*) const
{
    // Array properties can't be boxed
    NS_ASSERT_UNREACHABLE;
}

This is my data model

// C#
class Baz
{
    public Baz() : i(0) {}
    public int i { get; set;}
}
class Foo
{
    public Foo() { Bar = new Baz[2]; }
    public Baz Bar[];
};

// WPF
<TextBlock Text="{Binding Bar[0].i}" >
    <TextBlock.DataContext>local:Foo</TextBlock.DataContext>
</TextBlock>

// C++ .h
class Baz : BaseComponent
{
public:
    int i = 0;
    NS_DECLARE_REFLECTION(Baz, BaseComponent)
}
class Foo : BaseComponent
{
 public:
    Foo();
    Ptr<Baz> Bar[2];
private:
    NS_DECLARE_REFLECTION(Foo, BaseComponent)
}

// C++ .cpp
Foo::Foo() {
    Bar[0] = MakePtr<Baz>();
    Bar[1] = MakePtr<Baz>();
}

NS_IMPLEMENT_REFLECTION(Baz)
{
    NsMeta<Noesis::TypeId>("Local.Baz");
    NsProp("i", &SelfClass::i);
}

NS_IMPLEMENT_REFLECTION(Foo)
{
    NsMeta<Noesis::TypeId>("Local.Foo");
    NsProp("Bar", &SelfClass::Bar);
}
Tags:
Steps To Reproduce: 1. Have a fixed array of objects derived from BaseComponent in a data model.
2. Try to bind to an index on a component.
3. Try to instance the component, see the assert fire.
Additional Information:
Attached Files:
Notes
(0005935)
jsantos   
2019-08-22 01:29   
Right now this is not possible, you need to use an ObservableCollection. Yeah, I know it is far from optimal and not as efficient as a static array.
This scenario and more things are going to be improved in the next reflection architecture we are working on.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1422 [NoesisGUI] C++ SDK minor always 2019-03-11 20:17 2019-08-21 16:12
Reporter: Pawel Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: missing namespace in macro NS_IMPLEMENT_INLINE_REFLECTION_ENUM
Description: in macro:

NS_IMPLEMENT_INLINE_REFLECTION_ENUM

first line is:
template<> struct TypeEnumFiller<T> \

and should be (missing namespace):
template<> struct Noesis::TypeEnumFiller<T> \
Tags: NS_IMPLEMENT_INLINE_REFLECTION_ENUM
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1542 [NoesisGUI] C++ SDK crash always 2019-08-21 08:13 2019-08-21 12:16
Reporter: unvestigate Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.4  
Platform: Windows
Summary: Crash in InlineCollection::Clear()
Description: Adding InlineUIContainers with images to an inline collection and calling Clear() on that collection causes the app to crash. It seems to be 100% reproducible in debug configurations. In release it does not occur as reliably.
Tags:
Steps To Reproduce: Do something like this:

Noesis::Ptr<Noesis::BitmapImage> bm = *new Noesis::BitmapImage(texturePath);

Noesis::Ptr<Noesis::Image> img = *new Noesis::Image();
img->SetSource(bm);

Noesis::Ptr<Noesis::InlineUIContainer> iuc = *new Noesis::InlineUIContainer(img);
inlineCollection->Add(iuc);

Then clear the collection. More information available in this forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1786&sid=fd932eba6135173063ef13dadea33315
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1540 [NoesisGUI] C++ SDK major always 2019-08-19 18:24 2019-08-19 20:42
Reporter: pgrubyi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ListBox catches focus during ControlTab navigation instead of passing it to its children
Description: ListBox catches focus during ControlTab navigation instead of passing it to its children
Tags: xaml
Steps To Reproduce: An example of ListBox declaration:
<ListBox
x:Name="TimeTable"
DataContext="{StaticResource GhostTable}"
ItemsSource="{Binding Ghosts}"
ItemContainerStyle="{StaticResource TimeRecordGhostListBoxItem}"
Background="{x:Null}"
BorderBrush="{x:Null}"
Foreground="{x:Null}"
BorderThickness="0"
HorizontalAlignment="Right"
RenderTransformOrigin="0.5,0.5"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Padding="0"
Style="{DynamicResource GhostsListBoxStyle}"
Margin="0,24,0,0"
KeyboardNavigation.DirectionalNavigation="Cycle"
KeyboardNavigation.TabNavigation="Once"
KeyboardNavigation.ControlTabNavigation="Once" />
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1450 [NoesisGUI] Unity3D crash have not tried 2019-04-16 10:57 2019-08-17 00:24
Reporter: shawn Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Crash creating Unity render device
Description: From crashes posted in https://www.noesisengine.com/bugs/view.php?id=1429#c5620

In the first one the 'resource' pointer seems to be null.
The second callstack refers to a crash in Unity without Noesis being involved, but it could be related to the first crash.

 	Noesis.dll!SetDebugObjectName(ID3D11DeviceChild * resource, const char * str, ...) Line 117	C++
>	[Inline Frame] Noesis.dll!NoesisApp::D3D11RenderDevice::AllocatePage(NoesisApp::D3D11RenderDevice::DynamicBuffer &) Line 870	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::CreateBuffer(NoesisApp::D3D11RenderDevice::DynamicBuffer & buffer, unsigned int size, D3D11_BIND_FLAG flags, const char * label) Line 896	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::CreateBuffers() Line 909	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::D3D11RenderDevice(ID3D11DeviceContext * context, bool sRGB) Line 343	C++
     Noesis.dll!NoesisApp::D3D11Factory::CreateDevice(ID3D11DeviceContext * context, bool sRGB) Line 21	C++
     Noesis.dll!Noesis::UnityDeviceD3D11::UnityDeviceD3D11(IUnityInterfaces * unityInterfaces, bool sRGB) Line 38	C++
     [Inline Frame] Noesis.dll!`anonymous-namespace'::DeviceInitialize::__l5::<lambda_19a8d8fc18ebce0158ac87709b130cfd>::operator()() Line 155	C++
     Noesis.dll!<lambda_19a8d8fc18ebce0158ac87709b130cfd>::<lambda_invoker_cdecl>() Line 156	C++
     Noesis.dll!`anonymous namespace'::CreateDevice() Line 207	C++
     Noesis.dll!Noesis_GetRenderOffscreenCallback::__l2::<lambda>(int eventId, void * data) Line 391	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 1551	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::RunExt(ThreadedStreamBuffer & stream) Line 491	C++
     [Inline Frame] Unity.exe!GfxDeviceWorker::Run() Line 475	C++
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker(void * data) Line 454	C++
     Unity.exe!Thread::RunThreadWrapper(void * ptr) Line 76	C++


 	Unity.exe!D3D11CommonShader::ApplyGpuProgram(const GpuProgramParameters & params, const unsigned char * buffer, bool bindCBs) Line 184	C++
>	Unity.exe!GfxDeviceD3D11Base::SetShadersThreadable(GpuProgram * * programs, const GpuProgramParameters * * params, const unsigned char * const * paramsBuffer) Line 1260	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 772	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::CallImmediate(ThreadedDisplayList * dlist) Line 363	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 2004	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::RunExt(ThreadedStreamBuffer & stream) Line 491	C++
     [Inline Frame] Unity.exe!GfxDeviceWorker::Run() Line 475	C++
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker(void * data) Line 454	C++
     Unity.exe!Thread::RunThreadWrapper(void * ptr) Line 76	C++
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005643)
jsantos   
2019-04-25 18:50   
I think this is probably not related to Noesis. It seems to be an out of memory or driver issue in the GPU. The second crash is not related to Noesis at all and the first one is a crash that's is happening when Noesis D3D11 is initialized and a buffer of 512KB for dynamic geometry is created but the driver returns a NULL pointer.

So, I think we should close this...


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1518 [NoesisGUI] Unity3D crash random 2019-07-16 00:06 2019-08-14 13:58
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Assertion Failed, False at Vector.h 778
Description: [noesis] Assertion failed: false, at vector.h(778)
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
NoesisUnity:UnityLog(Int32, String) (at Assets\NoesisGUI\Plugins\NoesisUnity.cs:116)
Noesis.View:Noesis_View_MouseMove(HandleRef, Int32, Int32)
Noesis.View:MouseMove(Int32, Int32) (at Assets\NoesisGUI\Plugins\API\Core\View.cs:114)
NoesisView:UpdateMouse() (at Assets\NoesisGUI\Plugins\NoesisView.cs:595)
NoesisView:UpdateInputs() (at Assets\NoesisGUI\Plugins\NoesisView.cs:721)
NoesisView:LateUpdate() (at Assets\NoesisGUI\Plugins\NoesisView.cs:753)
(Filename: Assets/NoesisGUI/Plugins/NoesisUnity.cs Line: 116)
Tags:
Steps To Reproduce: Was moving mouse across XAML UI elements. Exception from NoesisView.MouseMove.
Additional Information:
Attached Files: Crash_2019-07-15_220007767.zip (653,862 bytes) 2019-07-16 00:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1078&type=bug
Notes
(0005910)
stonstad   
2019-07-27 04:34   
I have not seen this error since I initially reported it on 7/15. I was using debug Noesis.dll builds. I am OK with closing this and I can report if it happens again.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1520 [NoesisGUI] Unity3D crash always 2019-07-17 19:35 2019-08-12 20:55
Reporter: ivan_b Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Using sytsem fonts on iPad 2 crashes the app
Description: I have tried with Haiti SC, PingFang SC and Helvetica one at a time and I am always getting the same error.
Those were the only fonts used and I have only used them one at a time.
In the attachment is the screenshoot of the XCode project.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: WhatsApp Image 2019-07-17 at 15.12.51.jpeg (400,462 bytes) 2019-07-17 19:35
https://www.noesisengine.com/bugs/file_download.php?file_id=1081&type=bug
Assets.zip (5,940 bytes) 2019-07-25 21:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1093&type=bug
Assets-2.zip (6,217 bytes) 2019-07-25 21:47
https://www.noesisengine.com/bugs/file_download.php?file_id=1094&type=bug
Notes
(0005866)
jsantos   
2019-07-17 19:38   
If you use a different system font to those 3 you mention, the crash doesn't happen?
(0005867)
ivan_b   
2019-07-17 19:49   
Those are the only system fonts that I have tried for now.
(0005875)
jsantos   
2019-07-17 21:20   
Could you try more system fonts to see if it is happening with ALL system fonts? Thanks
(0005890)
ivan_b   
2019-07-20 19:54   
I have tried some other fonts but the problem remains.
I have extracted the Helvetica.ttc font from /System/Library/Fonts/Core on the iPad 2 and imported it as a normal font inside the unity project.
I was able to use it this way on the iPad 2.
What could be my next step?
(0005894)
jsantos   
2019-07-23 03:23   
Could you please do the following things:

1. That the device with problems is an A1395, A1396 or A1397 (can check the number in the back of the iPad)
2. Attach a minimal unity project reproducing the issue (for example a single XAML with a textblock using a system font)
3. Verify the the minimal sample works in rest of iPads but crash on iPad2.

Thanks!
(0005896)
ivan_b   
2019-07-23 20:31   
Yes, the iPad model is A1395. I will create a small project and submit it.
If it is possible can I know what is the problem :)?
(0005900)
jsantos   
2019-07-24 16:19   
I don't know what is going on because I am not able to reproduce it in the iPads we have here. I ordered an iPad2 for testing.
(0005902)
ivan_b   
2019-07-25 21:37   
Here is the project.
I have tested it on the iPad 2 and the problem is still there.
I will just need to check that it works on the iPad Air.
I will let you know as soon as possible.
(0005903)
ivan_b   
2019-07-25 21:47   
I Have uploaded the wrong Assests folder.
This should be the correct one.
(0005904)
jsantos   
2019-07-25 21:52   
Thanks, please, let me know when you verify it works in the iPad Air.
(0005913)
ivan_b   
2019-07-30 21:49   
Sorry for the late reply but I could test this only today.
I can confirm that it works on the iPad Air.
(0005917)
jsantos   
2019-08-08 17:19   
Thanks for the feedback! I will keep you posted.
(0005922)
jsantos   
2019-08-12 17:44   
I already tested this on iPad2 and I am able to reproduce the issue. That's a good start... :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1489 [NoesisGUI] C++ SDK minor have not tried 2019-06-12 10:41 2019-08-12 18:42
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Can't get Touch captured element
Description: There is no API to get information about the captured element for a touch device.
WPF touch events provide the TouchDevice (associated with a finger on the screen) being affected by the touch event, and that class expose the Captured element.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1488 [NoesisGUI] C++ SDK minor have not tried 2019-06-12 10:37 2019-08-12 15:50
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: LostTouchCapture not raised after manipulations are completed
Description: When a manipulation starts it tries to capture the touch device, but it is not releasing that capture when the manipulation finishes and raising the LostTouchCapture event.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1496 [NoesisGUI] C# SDK minor have not tried 2019-06-18 22:34 2019-08-09 12:43
Reporter: Vince_1990 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Textblock inside Textblock won't render
Description: <TextBlock Text="Hello">
     <TextBlock Text="World"/>
</TextBlock>
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005743)
sfernandez   
2019-06-19 11:44   
There is a workaround until we fix this, using Run inlines instead: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1672&p=9573&hilit=TextBlock#p9573


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1527 [NoesisGUI] C# SDK crash always 2019-08-01 18:12 2019-08-07 16:35
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Using the delegate version of VisualTree.HitTest crashes Unity
Description: Reference: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1768
Tags:
Steps To Reproduce: Noesis.Visual root = (Noesis.Visual)Noesis.VisualTreeHelper.GetRoot(view.Content);

            Noesis.HitTestResult result = null;

            Noesis.VisualTreeHelper.HitTest(root,
                (target) =>
                {
                    var element = target as Noesis.UIElement;

                    if ((element != null) && (!element.IsHitTestVisible || !element.IsVisible))
                    {
                        return Noesis.HitTestFilterBehavior.ContinueSkipSelfAndChildren;
                    }
                    else
                    {
                        return Noesis.HitTestFilterBehavior.Continue;
                    }
                },
               (target) =>
               {
                   result = target;

                   return Noesis.HitTestResultBehavior.Stop;
               }, new Noesis.PointHitTestParameters(new Noesis.Point(Input.mousePosition.x, Screen.height - Input.mousePosition.y)));

            return result?.VisualHit != null;
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1529 [NoesisGUI] C++ SDK major always 2019-08-07 13:38 2019-08-07 14:08
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Infinite layout loop if using the same Visual as Content for 2 ContentPresenters
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1771
Tags:
Steps To Reproduce:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.Resources>
        <ResourceDictionary>
              <Grid x:Key="A"/>
        </ResourceDictionary>
    </Grid.Resources>
    <Border>
        <StackPanel>
             <ContentControl Grid.Row="2" Content="{DynamicResource A}" />
             <ContentControl Grid.Row="2" Content="{DynamicResource A}" />
        </StackPanel>
    </Border>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1523 [NoesisGUI] C# SDK crash always 2019-07-24 18:34 2019-07-27 04:27
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Stopped on breakpoint in Noesis.dll release version
Description: Hi guys.

That's it, the game crashed for us suddenly. I've opened the crash dump and turns out this is a simple breakpoint you've set. I'm surprised the release version DLL (which I've got from NuGet) have breakpoints!

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Screenshot at 20-23-16.jpg (279,034 bytes) 2019-07-24 18:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1090&type=bug
CryoFall_Client.exe.6064.dmp.7z (4,012,760 bytes) 2019-07-24 18:34
https://www.noesisengine.com/bugs/file_download.php?file_id=1091&type=bug
Notes
(0005905)
jsantos   
2019-07-26 00:43   
It is not a breakpoint (we don't have breakpoints in release). It is random memory filled with 'int3' (breakpoint instruction). @sfernandez it seems to be a BindingExpression whose source is corrupted (already deleted).

I assume this is not easy to reproduce, right?
(0005906)
ai_enabled   
2019-07-26 00:47   
Hmm that's interesting to hear :-) after working for decades with managed code I'm truly surprised with such error :-)
Ok good to hear breakpoints are stripped away.

Yes, this is an absolutely random issue and we never saw it again.
(0005908)
stonstad   
2019-07-27 04:27   
Is filling memory with int3 a guard or mitigation against buffer overflows and unwanted code execution?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1525 [NoesisGUI] C++ SDK minor always 2019-07-26 10:21 2019-07-26 10:22
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Cannot use escaped quotes in binding StringFormat
Description: Escaped quotes in StringFormat work in WPF but not in Noesis.

Given the following xaml the text shown in the binding is:
WPF: "Michael's Profile"
Noesis: "Michael's Profile, FallbackValue=UserName's Profile"
Tags:
Steps To Reproduce:
<Grid
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock x:Name="txt1" Text="Michael" Foreground="Blue"/>
        <TextBlock Text="{Binding Text, ElementName=txt1, StringFormat={}{0}\'s Profile, FallbackValue=UserName\'s Profile}"/>
    </StackPanel>
 </Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1458 [NoesisGUI] Unity3D minor always 2019-04-29 16:41 2019-07-24 12:24
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: not fixable  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.4  
Platform: Any
Summary: Error On Subsequent Package Import
Description: I always get the error message shown (encl. erroronpackageimport.png) when I import a newer version of Noesis. I am currently having to delete the DLL, which causes problems for assets, which sometimes need to be rebuilt as a result.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ErrorOnPackageImport.PNG (19,505 bytes) 2019-04-29 16:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1012&type=bug
Error.PNG (11,063 bytes) 2019-06-13 18:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1029&type=bug
Notes
(0005699)
stonstad   
2019-06-13 18:02   
Confirmed this happens with 2.2.3.
(0005700)
jsantos   
2019-06-14 14:02   
We have contacted Unity many times about this. It is an awful limitation of native plugins in Unity. If you import a new package that tries to overwrite a native library (Noesis.dll) that is being used by Unity you will get that error, the package will be imported but you will have a mix of the new package and old one and the chances of crashing are high.

Aren't you getting a message (from our plugin) about restarting Unity? We try to detect that scenario and recommend restarting Unity.

It is also commented in the Unity tutorial. Although I think we should put more emphasis in that:

"Although not strictly necessary we recommend closing Unity and removing the folders '/Assets/NoesisGUI/Plugins and '/Assets/NoesisGUI/Samples' before installing a new version of NoesisGUI"
(0005702)
stonstad   
2019-06-14 14:41   
I didn't get to the restart message -- I think because I chose force quit and then deleted the files. I completely accept this as a limitation of Unity and I'm able to work around it.
(0005899)
sfernandez   
2019-07-24 12:24   
Unity limitation, can't fix.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1490 [NoesisGUI] Unity3D major have not tried 2019-06-13 18:01 2019-07-24 12:23
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Windows
Summary: Upgrade from 2.2.2 to 2.2.3 Crash and Corruption
Description: During the progress bar "Upgrading" step of 2.2.3 installation the Unity editor crashed. Upon project restart all game objects using Noesis are missing scripts and associated settings. Editor crash dump included.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-06-13_155334807.zip (343,369 bytes) 2019-06-13 18:01
https://www.noesisengine.com/bugs/file_download.php?file_id=1028&type=bug
Notes
(0005701)
jsantos   
2019-06-14 14:07   
(Last edited: 2019-06-14 14:32)
do everything work If you upgrade de package following the instructions in https://www.noesisengine.com/bugs/view.php?id=1458#c5700?

(0005703)
stonstad   
2019-06-14 14:43   
This happened when 1) closed Unity (due to lock), 2) deleted file, 3) reopened Unity, 4) imported package. If I understand correctly, I should delete the entire folder structure and maybe this is why it happened?
(0005712)
sfernandez   
2019-06-14 16:31   
Following the steps you described I'm not able to make Unity crash. After closing Unity, deleting Noesis.dll and opening Unity again I get an error message indicating that Noesis.dll is missing, but then I import NoesisGUI 2.2.3 again and the installation finishes fine and I can run any sample.

Would it be possible to get a copy of your project so we can debug what is happening? We can make this ticket private for that matter.
(0005713)
jsantos   
2019-06-14 16:37   
(Last edited: 2019-06-14 16:39)
I don't think it makes sense getting the project for this purpose. The plugin is in bad-state (mismatch of source and noesis.dll). I think we should put more emphasis in the upgrading process. And note, that the upgrading process is not deleting Noesis.dll and upgrading again. The procedure is:

1. Close Unity.
2. Remove the plugin (/Assets/NoesisGUI/Plugins and '/Assets/NoesisGUI/Samples')
3. Launch Unity. You will get errors because Noesis is missing, that's fine
4. Import Noesis
5. Errors gone and everything should be working

(0005714)
jsantos   
2019-06-14 16:38   
What I don't understand is why the upgrading is happening, because we detect that the dll is mismatched and recommend restarting Unity. If you restart Unity at that point (without removing noesis.dll), the upgrading process should continue and you should get the welcome screen.
(0005715)
jsantos   
2019-06-14 16:40   
So, just to avoid confusion. If when importing a new version of Noesis, Noesis.dll is locked, we detect it, emit a message about restarting and just restarting should finish the update process and show the welcome screen. That's not happening and we need to understand why.
(0005716)
stonstad   
2019-06-14 17:00   
In hindsight I suspect the crash during upgrade might be caused by https://www.noesisengine.com/bugs/view.php?id=1491. The non-debug 2.2.3 library crashes about once per hour, but sometimes it crashes more frequently.
(0005898)
sfernandez   
2019-07-24 12:23   
Related to #1491.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1514 [NoesisGUI] C++ SDK major always 2019-07-04 08:54 2019-07-18 21:23
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: [TSF] Candidate window is always shown even if the focus is not on TextBox or any input related control
Description: 1. Create any window with empty XAML e.g.

<Grid></Grid>

2. Enable Japanese Input
3. Type some text
// Candidate window is shown on top-left corner of the screen (see attachment)

I expect that the candidate window is not shown, because we are not focusing to any input element.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TSFCandidateWindow.PNG (171,765 bytes) 2019-07-04 08:54
https://www.noesisengine.com/bugs/file_download.php?file_id=1063&type=bug
Notes
(0005810)
sfernandez   
2019-07-05 17:19   
(Last edited: 2019-07-05 17:20)
The problem was that TSF was not initially disabled when initialized. You can change TSF::Init to use disabled document manager on start:
void TSF::Init()
{
    if (gInitCount++ == 0)
    {
        V(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED));

        V(CoCreateInstance(CLSID_TF_ThreadMgr, 0, CLSCTX_INPROC_SERVER, IID_ITfThreadMgr,
            (void**)&gThreadMgr));

        V(gThreadMgr->Activate(&gClientId));

        CreateTextBoxDocument();
        CreatePassBoxDocument();
        CreateDisabledDocument();

        ConfigureJapaneseIME();

        V(gThreadMgr->SetFocus(gDisabledDocumentMgr));
    }
}

We will update our code for next release.

(0005816)
nikobarli   
2019-07-09 10:55   
(Last edited: 2019-07-09 10:56)
Hi, the fix you mentioned avoid the candidate window appearing on initial application startup.
But, if I deactivate -> reactivate the window, the candidate window appeared again although the behavior is different (only appears when I typed the first alphabet, disappears when two or more alphabets completes a construction of one katakana/hiragana)

(0005817)
sfernandez   
2019-07-09 14:24   
There was another disable code missing in TSF::MoveWindow:
void TSF::MoveWindow(void* hWnd)
{
    NS_LOG_TRACE("MoveWindow(hWnd=%p)", hWnd);
    if (gCurrentWindow == hWnd && gThreadMgr != 0)
    {
        NS_ASSERT(gTextBoxStore != 0);
        if (gTextBoxStore->IsEnabled())
        {
            V(gThreadMgr->SetFocus(gTextBoxDocumentMgr));

            gTextBoxStore->OnLayoutChanged();
        }
        else if (gPassBoxStore->IsEnabled())
        {
            V(gThreadMgr->SetFocus(gPassBoxDocumentMgr));

            gPassBoxStore->OnLayoutChanged();
        }
        else
        {
            V(gThreadMgr->SetFocus(gDisabledDocumentMgr));
        }
    }
}

This should fix it, could you please confirm it works as expected in your application?
(0005818)
nikobarli   
2019-07-09 14:56   
(Last edited: 2019-07-09 14:56)
Hhhmhh, it fixed the scenario I mentioned above.
But now I cannot perform kanji conversion because anytime the alphabet sequence I input forms a valid hiragana/katakana, the hiragana/katakana is immediately recognized as the final input (the candidate window immediately disappears).

For example, normally I can type 'kanji' which will be shown as 'かんじ', then I use space key to select how I convert those hiraganas into a kanji e.g. 漢字 or 幹事.
But now, I don't have the chance for conversion because at the point I typed 'ka', it immediately fixed my input into hiragana 'か'.

(0005819)
sfernandez   
2019-07-09 15:56   
I can't reproduce your scenario, I can type the whole 'kanji' word and the candidate window does not close.
Are you getting a call to TSF::HideKeyboard after typing 'ka'?
(0005835)
nikobarli   
2019-07-10 06:50   
(Last edited: 2019-07-10 06:51)
No, TSF::HideKeyboard is not being called.

If I removed the line

     V(gThreadMgr->SetFocus(gDisabledDocumentMgr));

from TSF::Init() and let the following lines in TSF::MoveWindow()

        else
        {
            V(gThreadMgr->SetFocus(gDisabledDocumentMgr));
        }

then it works. Maybe the gThreadMgr->SetFocus() shouldn't be called at the Init() timing ?

(0005840)
sfernandez   
2019-07-11 12:54   
TSF::MoveWindow would always be called when the application starts and activates the main window because we found that enabling a TSF document was not working while handling the WM_ACTIVATE message so we forced a WM_EXITSIZEMOVE message to do that.

I guess then that it is safe to leave the Disable code only in the MoveWindow function if it is working for you that way.

To be honest Text Service Framework documentation is so minimal and horrible that developing this is mostly by try and error if you are not able to find a similar example in the web.

We will update our application framework as you suggested, thanks a lot for the feedback.
(0005844)
nikobarli   
2019-07-12 01:25   
Hi Sergio,

Ok, thanks for the support.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1388 [NoesisGUI] Unity3D block unable to reproduce 2019-01-10 19:38 2019-07-18 21:18
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: XAML freezes Unity on Begin MonoManager ReloadAssembly
Description: Forum reference: https://www.noesisengine.com/forums/viewtopic.php?f=3&p=8910#p8910

After dealing with random freezing in Unity for a week, we think we've pinned it down to an XAML change.

<ItemsControl Grid.Row="2" Grid.RowSpan="2" ItemsSource="{Binding Character.Specialty.Skills}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Image Source="{Binding Icon}" Margin="5"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

Code:
[JsonIgnore]
        public Noesis.TextureSource Icon
        {
            get
            {
                return new Noesis.TextureSource(Resources.Load<Texture2D>("Icons/Icon.1_01"));
            }
        }

The icon shows, but after the instance of the game in the editor is closed and then opened again, it freezes before it can start. The last lines in the editor logs reads:
Reloading assemblies for play mode.
Begin MonoManager ReloadAssembly

The engine will also not compile after the game has played once. It will also get stuck on Begin MonoManager ReloadAssembly. Calling the Icon property anywhere else will not freeze the editor - only after the binding is binded to the Icon property. The freeze will also not happen if the texture itself is null.
Tags:
Steps To Reproduce: Cannot reproduce in a new project. Binding needs to bind to a TextureSource and the texture itself cannot null. No runtime freezes, but after you close the instance of the game in the editor it can either freeze by clicking play again, compiling, or importing something.
Additional Information:
Attached Files: Inventory.zip (12,308 bytes) 2019-05-16 12:20
https://www.noesisengine.com/bugs/file_download.php?file_id=1018&type=bug
NoesisView.cs (42,094 bytes) 2019-07-16 12:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1079&type=bug
NoesisTexture.cs (963 bytes) 2019-07-16 12:06
https://www.noesisengine.com/bugs/file_download.php?file_id=1080&type=bug
Notes
(0005393)
nokola   
2019-01-11 04:16   
I have a similar problem (Unity hangs up) when assigning Texture2D to Image.Source in C#. Very open to testing a fix in a private build once you have it :) Or can wait for the public new version.
(0005426)
sfernandez   
2019-01-30 14:01   
(Last edited: 2019-01-30 14:02)
I created a test following the indications and I'm not able to reproduce the freezing.
@asusralis Could you please attach Visual Studio debugger to Unity process when it is frozen, pause the process and generate a Minidump (Debug menu > Save Dump As...)?

@nokola Do you have a deterministic way of reproducing the hangs? Would it be possible to share with us in private your project to see if we can reproduce it ourselves and debug it?

(0005594)
sfernandez   
2019-04-05 12:32   
Any chance to generate a mini-dump when the Unity process is frozen?
(0005680)
NirHasson   
2019-05-16 12:20   
(Last edited: 2019-05-16 12:27)
Hi,

I've stumbled with the same issue.
Was able to reproduce in your Inventory sample, see attached sources.
You'll have to run the sample and drag an item just to run my code that triggers image source property changed notification

(0005681)
NirHasson   
2019-05-16 12:21   
In General, to solve it now you can use a utility class that returns cached Noesis.TextureSource for any existing UnityEngine.Texture2D
(0005843)
asusralis   
2019-07-11 23:55   
I've ran into this problem again with a separate project. As soon as Unity froze I realized this was it!

"Save Dump as..." is grayed out. How would I be able to do that?
(0005845)
sfernandez   
2019-07-12 13:10   
In windows Task Manager, expand "Unity Editor", right click on the process "Unity Editor 2019.1.....", and then "Create dump file".
It should be enabled for that inner process.
(0005848)
asusralis   
2019-07-13 06:10   
Here it is! https://drive.google.com/open?id=1BHwP0Zj4LNxlapWST0HqFOWeTyJ5qLqS
(0005849)
stonstad   
2019-07-13 17:16   
I'm running into an issue where, after ReloadAssembly, Unity is running but cannot be focused. I try to alt-tab to Unity but it does not gain keyboard or mouse input focus. Is this how your Unity "freezes" or is the freeze behavior different?
(0005850)
asusralis   
2019-07-15 00:28   
That's the problem I have. This is what the task manager looks like: https://i.imgur.com/ovJeLOv.png
(0005860)
sfernandez   
2019-07-16 12:06   
Found a workaround to avoid Unity lock-ups, it is not the final solution but will improve your productivity until we release the fix.
Just overwrite the attached files.
(0005862)
asusralis   
2019-07-16 12:40   
I think the NoesisView file is extremely different from mine - that has 1,200 lines of code, but mine has 600. The file you sent me also doesn't have NoesisView in the Noesis namespace so I have 228 errors about ambiguity. Even when I put it in the Noesis namespace there are are 9 errors: https://i.imgur.com/14U6f5Y.png

The NoesisTexture seemed to not have any errors.
(0005863)
sfernandez   
2019-07-16 14:03   
Sorry, I forgot to mention that attached files correspond to the ones found under Assets/NoesisGUI/Plugins folder.
Don't overwrite NoesisView.cs inside API/Core folder.
(0005864)
sfernandez   
2019-07-16 14:07   
Also remark that these files are for NoesisGUI 2.2.3 version.
In case you are using an older version, go to NoesisGUI/Plugins/NoesisView.cs file and modify the function DestroyView() as follows:
private void DestroyView()
{
    if (_uiView != null)
    {
        lock (Noesis.Texture.Textures)
        {
            foreach (Noesis.Texture tex in Noesis.Texture.Textures)
            {
                tex.SetPrivateData(null);
            }
            Noesis.Texture.Textures.Clear();
        }

        // ...
    }
}
(0005865)
asusralis   
2019-07-16 14:25   
Oh, sorry! I replaced the two files. That's awesome you found the problem!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1519 [NoesisGUI] C++ SDK minor always 2019-07-16 09:03 2019-07-16 10:29
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Tab-control focusing using Shift-tab is different from WPF
Description: Follow up for https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1129 and https://bugs.noesisengine.com/view.php?id=1121

Tab-control focusing using Shift-tab is different from WPF.

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Content="Button 1"/>
        <TabControl Margin="0,20">
            <TabItem Header="Tab1">
                <Button Content="Button Tab 1" Margin="20"/>
            </TabItem>
            <TabItem Header="Tab2">
                <Button Content="Button Tab 2" Margin="10"/>
            </TabItem>
        </TabControl>
        <Button Content="Button 2"/>
    </StackPanel>
</Grid>

In WPF pressing Shift+Tab will jump from "Button 2" to "Button Tab 1", then "TabControl", and finally "Button 1";
In Noesis it will go from "Button 2" to "TabControl" and finally to "Button 1", we are incorrectly skipping the content of the TabItem when moving focus backwards.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1515 [NoesisGUI] Unity3D crash always 2019-07-09 14:40 2019-07-10 13:07
Reporter: shawn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Unity Crashed when I use control template for Slider
Description: I want to change the appearance of a Slider, So i dit it by use control template.
I clicked Edit Template->Edit a Copy and then I changed nothing. when I back to Unity Engine and selected the xaml asset. Unity must crash
Tags:
Steps To Reproduce: <UserControl x:Class="Login.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    xmlns:local="clr-namespace:Login"
    x:Name="Root"
    d:DesignWidth="1280" d:DesignHeight="720"
    FontFamily="./#Aero Matics"
    Foreground="#FF488EB5"
    Focusable="True">

    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <SolidColorBrush x:Key="SliderThumb.Static.Foreground" Color="#FFE5E5E5"/>
            <SolidColorBrush x:Key="SliderThumb.MouseOver.Background" Color="#FFDCECFC"/>
            <SolidColorBrush x:Key="SliderThumb.MouseOver.Border" Color="#FF7Eb4EA"/>
            <SolidColorBrush x:Key="SliderThumb.Pressed.Background" Color="#FFDAECFC"/>
            <SolidColorBrush x:Key="SliderThumb.Pressed.Border" Color="#FF569DE5"/>
            <SolidColorBrush x:Key="SliderThumb.Disabled.Background" Color="#FFF0F0F0"/>
            <SolidColorBrush x:Key="SliderThumb.Disabled.Border" Color="#FFD9D9D9"/>
            <SolidColorBrush x:Key="SliderThumb.Static.Background" Color="#FFF0F0F0"/>
            <SolidColorBrush x:Key="SliderThumb.Static.Border" Color="#FFACACAC"/>
            <ControlTemplate x:Key="SliderThumbHorizontalTop" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M 0,6 C0,6 5.5,0 5.5,0 5.5,0 11,6 11,6 11,6 11,18 11,18 11,18 0,18 0,18 0,18 0,6 0,6 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" SnapsToDevicePixels="True" Stroke="{StaticResource SliderThumb.Static.Border}" StrokeThickness="1" UseLayoutRounding="True" VerticalAlignment="Center"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderThumbHorizontalBottom" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M 0,12 C0,12 5.5,18 5.5,18 5.5,18 11,12 11,12 11,12 11,0 11,0 11,0 0,0 0,0 0,0 0,12 0,12 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" SnapsToDevicePixels="True" Stroke="{StaticResource SliderThumb.Static.Border}" StrokeThickness="1" UseLayoutRounding="True" VerticalAlignment="Center"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <SolidColorBrush x:Key="SliderThumb.Track.Border" Color="#FFD6D6D6"/>
            <SolidColorBrush x:Key="SliderThumb.Track.Background" Color="#FFE7EAEA"/>
            <Style x:Key="RepeatButtonTransparent" TargetType="{x:Type RepeatButton}">
                <Setter Property="OverridesDefaultStyle" Value="true"/>
                <Setter Property="Background" Value="Transparent"/>
                <Setter Property="Focusable" Value="false"/>
                <Setter Property="IsTabStop" Value="false"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type RepeatButton}">
                            <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <ControlTemplate x:Key="SliderThumbHorizontalDefault" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M 0,0 C0,0 11,0 11,0 11,0 11,18 11,18 11,18 0,18 0,18 0,18 0,0 0,0 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" SnapsToDevicePixels="True" Stroke="{StaticResource SliderThumb.Static.Border}" StrokeThickness="1" UseLayoutRounding="True" VerticalAlignment="Center"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderHorizontal" TargetType="{x:Type Slider}">
                <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <TickBar x:Name="TopTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,0,0,2" Placement="Top" Grid.Row="0" Visibility="Collapsed"/>
                        <TickBar x:Name="BottomTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,2,0,0" Placement="Bottom" Grid.Row="2" Visibility="Collapsed"/>
                        <Border x:Name="TrackBackground" BorderBrush="{StaticResource SliderThumb.Track.Border}" BorderThickness="1" Background="{StaticResource SliderThumb.Track.Background}" Height="4.0" Margin="5,0" Grid.Row="1" VerticalAlignment="center">
                            <Canvas Margin="-6,-1">
                                <Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Height="4.0" Visibility="Hidden"/>
                            </Canvas>
                        </Border>
                        <Track x:Name="PART_Track" Grid.Row="1">
                            <Track.DecreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.DecreaseRepeatButton>
                            <Track.IncreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.IncreaseRepeatButton>
                            <Track.Thumb>
                                <Thumb x:Name="Thumb" Focusable="False" Height="18" OverridesDefaultStyle="True" Template="{StaticResource SliderThumbHorizontalDefault}" VerticalAlignment="Center" Width="11"/>
                            </Track.Thumb>
                        </Track>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="TickPlacement" Value="TopLeft">
                        <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                        <Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbHorizontalTop}"/>
                        <Setter Property="Margin" TargetName="TrackBackground" Value="5,2,5,0"/>
                    </Trigger>
                    <Trigger Property="TickPlacement" Value="BottomRight">
                        <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                        <Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbHorizontalBottom}"/>
                        <Setter Property="Margin" TargetName="TrackBackground" Value="5,0,5,2"/>
                    </Trigger>
                    <Trigger Property="TickPlacement" Value="Both">
                        <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                        <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsSelectionRangeEnabled" Value="true">
                        <Setter Property="Visibility" TargetName="PART_SelectionRange" Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsKeyboardFocused" Value="true">
                        <Setter Property="Foreground" TargetName="Thumb" Value="Blue"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderThumbVerticalLeft" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M 6,11 C6,11 0,5.5 0,5.5 0,5.5 6,0 6,0 6,0 18,0 18,0 18,0 18,11 18,11 18,11 6,11 6,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderThumbVerticalRight" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M 12,11 C12,11 18,5.5 18,5.5 18,5.5 12,0 12,0 12,0 0,0 0,0 0,0 0,11 0,11 0,11 12,11 12,11 z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderThumbVerticalDefault" TargetType="{x:Type Thumb}">
                <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                    <Path x:Name="grip" Data="M0.5,0.5 L18.5,0.5 18.5,11.5 0.5,11.5z" Fill="{StaticResource SliderThumb.Static.Background}" Stretch="Fill" Stroke="{StaticResource SliderThumb.Static.Border}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.MouseOver.Border}"/>
                    </Trigger>
                    <Trigger Property="IsDragging" Value="true">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Pressed.Border}"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Fill" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Background}"/>
                        <Setter Property="Stroke" TargetName="grip" Value="{StaticResource SliderThumb.Disabled.Border}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <ControlTemplate x:Key="SliderVertical" TargetType="{x:Type Slider}">
                <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition MinWidth="{TemplateBinding MinWidth}" Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <TickBar x:Name="TopTick" Grid.Column="0" Fill="{TemplateBinding Foreground}" Margin="0,0,2,0" Placement="Left" Visibility="Collapsed" Width="4"/>
                        <TickBar x:Name="BottomTick" Grid.Column="2" Fill="{TemplateBinding Foreground}" Margin="2,0,0,0" Placement="Right" Visibility="Collapsed" Width="4"/>
                        <Border x:Name="TrackBackground" BorderBrush="{StaticResource SliderThumb.Track.Border}" BorderThickness="1" Background="{StaticResource SliderThumb.Track.Background}" Grid.Column="1" HorizontalAlignment="center" Margin="0,5" Width="4.0">
                            <Canvas Margin="-1,-6">
                                <Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Visibility="Hidden" Width="4.0"/>
                            </Canvas>
                        </Border>
                        <Track x:Name="PART_Track" Grid.Column="1">
                            <Track.DecreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.DecreaseRepeatButton>
                            <Track.IncreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.IncreaseRepeatButton>
                            <Track.Thumb>
                                <Thumb x:Name="Thumb" Focusable="False" Height="11" OverridesDefaultStyle="True" Template="{StaticResource SliderThumbVerticalDefault}" VerticalAlignment="Top" Width="18"/>
                            </Track.Thumb>
                        </Track>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="TickPlacement" Value="TopLeft">
                        <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                        <Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalLeft}"/>
                        <Setter Property="Margin" TargetName="TrackBackground" Value="2,5,0,5"/>
                    </Trigger>
                    <Trigger Property="TickPlacement" Value="BottomRight">
                        <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                        <Setter Property="Template" TargetName="Thumb" Value="{StaticResource SliderThumbVerticalRight}"/>
                        <Setter Property="Margin" TargetName="TrackBackground" Value="0,5,2,5"/>
                    </Trigger>
                    <Trigger Property="TickPlacement" Value="Both">
                        <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                        <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsSelectionRangeEnabled" Value="true">
                        <Setter Property="Visibility" TargetName="PART_SelectionRange" Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsKeyboardFocused" Value="true">
                        <Setter Property="Foreground" TargetName="Thumb" Value="Blue"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
            <Style x:Key="SliderStyle1" TargetType="{x:Type Slider}">
                <Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/>
                <Setter Property="Background" Value="Transparent"/>
                <Setter Property="BorderBrush" Value="Transparent"/>
                <Setter Property="Foreground" Value="{StaticResource SliderThumb.Static.Foreground}"/>
                <Setter Property="Template" Value="{StaticResource SliderHorizontal}"/>
                <Style.Triggers>
                    <Trigger Property="Orientation" Value="Vertical">
                        <Setter Property="Template" Value="{StaticResource SliderVertical}"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
            <Storyboard x:Key="Intro">
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="1">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <BackEase EasingMode="EaseOut" Amplitude="0.2"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="1">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <BackEase EasingMode="EaseOut" Amplitude="0.2"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="1">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <CubicEase EasingMode="EaseOut"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                </DoubleAnimationUsingKeyFrames>
                <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="Message">
                    <EasingColorKeyFrame KeyTime="0" Value="Transparent"/>
                </ColorAnimationUsingKeyFrames>
                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsEnabled)" Storyboard.TargetName="LoginBtn">
                    <DiscreteBooleanKeyFrame KeyTime="0" Value="False"/>
                    <DiscreteBooleanKeyFrame KeyTime="0:0:0.6" Value="True"/>
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
            <Storyboard x:Key="Login">
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="1.2">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <BackEase EasingMode="EaseIn" Amplitude="0.3"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                    <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1.2"/>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="1.2">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <BackEase EasingMode="EaseIn" Amplitude="0.3"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                    <EasingDoubleKeyFrame KeyTime="0:0:2" Value="1.2"/>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Dialog">
                    <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="0">
                        <EasingDoubleKeyFrame.EasingFunction>
                            <CubicEase EasingMode="EaseIn"/>
                        </EasingDoubleKeyFrame.EasingFunction>
                    </EasingDoubleKeyFrame>
                    <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
            <Storyboard x:Key="ShowLoginMessage">
                <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="Message">
                    <EasingColorKeyFrame KeyTime="0" Value="#00A3F461"/>
                    <EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FFA3F461"/>
                    <EasingColorKeyFrame KeyTime="0:0:0.4" Value="#FF91D441"/>
                    <EasingColorKeyFrame KeyTime="0:0:2.7" Value="#FF92D441"/>
                    <EasingColorKeyFrame KeyTime="0:0:3.0" Value="#0092D441"/>
                </ColorAnimationUsingKeyFrames>
            </Storyboard>
            <Storyboard x:Key="ShowErrorMessage">
                <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="Message">
                    <EasingColorKeyFrame KeyTime="0" Value="#00F48861"/>
                    <EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FFF48861"/>
                    <EasingColorKeyFrame KeyTime="0:0:0.4" Value="#FFD45941"/>
                    <EasingColorKeyFrame KeyTime="0:0:2.7" Value="#FFD45941"/>
                    <EasingColorKeyFrame KeyTime="0:0:3.0" Value="#00D45941"/>
                </ColorAnimationUsingKeyFrames>
            </Storyboard>
        </ResourceDictionary>
    </UserControl.Resources>
    <Slider Style="{StaticResource SliderStyle1}" Width="150" Height="30"/>
</UserControl>
Additional Information:
Attached Files: Crash_2019-07-09_081654312.zip (285,265 bytes) 2019-07-09 14:40
https://www.noesisengine.com/bugs/file_download.php?file_id=1064&type=bug
Notes
(0005820)
sfernandez   
2019-07-09 18:51   
There was a bug in DynamicResource extension when the key was null.

That occurred because in the provided xaml you used x:Static to specify the key on some resources, and static extension is not supported (only in a few scenarios like enum values):
<Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Height="4.0" Visibility="Hidden"/>

<Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Visibility="Hidden" Width="4.0"/>
(0005834)
shawn   
2019-07-10 05:15   
Thank you! but I still have a problem. if the static extension are not supported. how to write a control template for a Slider.
acording to the default template. It seems that I have to write two RepeatButton and bind Command by x:Static

<Track x:Name="PART_Track" Grid.Row="1">
                            <Track.DecreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.DecreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.DecreaseRepeatButton>
                            <Track.IncreaseRepeatButton>
                                <RepeatButton Command="{x:Static Slider.IncreaseLarge}" Style="{StaticResource RepeatButtonTransparent}"/>
                            </Track.IncreaseRepeatButton>
                            <Track.Thumb>
(0005836)
sfernandez   
2019-07-10 10:17   
Commands can be directly specified as there is a CommandConverter available which knows how to convert the string value to the corresponding Command.

In our default style we have the following:
            <Track Grid.Row="1" x:Name="PART_Track">
                <Track.DecreaseRepeatButton>
                    <RepeatButton x:Name="DecBtn"
                        Style="{StaticResource SliderButtonStyle}"
                        Background="{StaticResource CheckBgBrush}"
                        Padding="5,8,1,8"
                        Command="Slider.DecreaseLarge"/>
                </Track.DecreaseRepeatButton>
                <Track.Thumb>
                    <Thumb x:Name="SliderThumb"
                        Width="10"
                        MinHeight="20"
                        Style="{StaticResource SliderThumbStyle}"/>
                </Track.Thumb>
                <Track.IncreaseRepeatButton>
                    <RepeatButton
                        Style="{StaticResource SliderButtonStyle}"
                        Command="Slider.IncreaseLarge"/>
                </Track.IncreaseRepeatButton>
            </Track>
(0005837)
sfernandez   
2019-07-10 10:20   
Anyway, for 2.2.4 we added support in x:Static extension to access routed commands defined in controls, so in next release the following will also be valid in Noesis:
<RepeatButton Command="{x:Static Slider.DecreaseLarge}" .../>
(0005838)
shawn   
2019-07-10 11:56   
Great! thank you so much!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1516 [NoesisGUI] C++ SDK minor always 2019-07-09 23:49 2019-07-10 00:37
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: ColumnDefinition MinWidth/MaxHeight incorrectly accepting NaN values
Description: Both ColumnDefinition and RowDefinition should define ValidateValueCallback for their properties to avoid user invalid values like NaN.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1510 [NoesisGUI] Unity3D crash always 2019-07-01 22:41 2019-07-09 23:53
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.4  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Crash On Mouse Over
Description: Testing with debug/preview version of 2.2.4 shared here: https://www.noesisengine.com/bugs/view.php?id=1491. If this is a one-off caused by a diagnostic DLL or breakpoint firing please feel free to close/disregard this bug.

I have a UI element that crashes consistently whenever I mouse over. The stack trace leads me to believe it is somehow associated with an easing function assigned to the screen,.

========== OUTPUTTING STACK TRACE ==================

0x00007FFE6FB422B8 (Noesis) Unbox_EasingMode
0x00007FFE6FB3A960 (Noesis) Unbox_EasingMode
0x00007FFE6F51B89A (Noesis) Unbox_EasingMode
0x00007FFE6F72CB0D (Noesis) Unbox_EasingMode
0x00007FFE6F7CFFF1 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFF81 (Noesis) Unbox_EasingMode
0x00007FFE6F7CFC20 (Noesis) Unbox_EasingMode
0x00007FFE6F7D9166 (Noesis) Unbox_EasingMode
0x00007FFE6F623C3A (Noesis) Unbox_EasingMode
0x00007FFE6F623A46 (Noesis) Unbox_EasingMode
0x00007FFE6F6213A0 (Noesis) Unbox_EasingMode
0x00007FFE6F7B0BA7 (Noesis) Unbox_EasingMode
0x00007FFE6F909E0D (Noesis) Unbox_EasingMode
0x000002C59C834862 (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_MouseMove (System.Runtime.InteropServices.HandleRef,int,int)
0x000002C59C8346EB (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\View.cs:114] Noesis.View:MouseMove (int,int)
0x000002C59C8324FB (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:595] NoesisView:UpdateMouse ()
0x000002C59C831DDB (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:721] NoesisView:UpdateInputs ()
0x000002C59C8318E3 (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:753] NoesisView:LateUpdate ()
0x000002C59BC7B918 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFE608EBBCB (mono-2.0-bdwgc) [c:\users\builduser\builds\_cjcc5tm\0\vm\mono\mono\mini\mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFE60872252 (mono-2.0-bdwgc) [c:\users\builduser\builds\_cjcc5tm\0\vm\mono\mono\metadata\object.c:2919] do_runtime_invoke
0x00007FFE6087B25F (mono-2.0-bdwgc) [c:\users\builduser\builds\_cjcc5tm\0\vm\mono\mono\metadata\object.c:2966] mono_runtime_invoke
0x00007FF72D010256 (Unity) scripting_method_invoke
0x00007FF72D00A545 (Unity) ScriptingInvocation::Invoke
0x00007FF72CFC6C32 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007FF72CFC6FD6 (Unity) MonoBehaviour::CallUpdateMethod
0x00007FF72C6ECB74 (Unity) BaseBehaviourManager::CommonUpdate<LateBehaviourManager>
0x00007FF72C6F4FD4 (Unity) LateBehaviourManager::Update
0x00007FF72CB25BF3 (Unity) `InitPlayerLoopCallbacks'::`2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward
0x00007FF72CB0F2C8 (Unity) ExecutePlayerLoop
0x00007FF72CB0F3A6 (Unity) ExecutePlayerLoop
0x00007FF72CB13F60 (Unity) PlayerLoop
0x00007FF72B830AA0 (Unity) PlayerLoopController::UpdateScene
0x00007FF72B82DB28 (Unity) Application::TickTimer
0x00007FF72BAEC1EB (Unity) MainMessageLoop
0x00007FF72BAF5BF7 (Unity) WinMain
0x00007FF72E438B5E (Unity) __scrt_common_main_seh
0x00007FFEE8A77974 (KERNEL32) BaseThreadInitThunk
0x00007FFEEB86A271 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
Tags:
Steps To Reproduce: Video
http://clarion.blob.core.windows.net/$root/Action%207-1-2019%203-39-00%20PM.mp4
Additional Information:
Attached Files: Crashes.zip (1,160,557 bytes) 2019-07-01 22:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1061&type=bug
Crash_2019-07-09_170857502.zip (370,077 bytes) 2019-07-09 23:10
https://www.noesisengine.com/bugs/file_download.php?file_id=1068&type=bug
Notes
(0005796)
stonstad   
2019-07-02 00:20   
The same behavior happens with textboxes. This must be related to the debug assembly...
(0005805)
sfernandez   
2019-07-05 12:48   
Yes, this is an assert we already fixed for 2.2.4.
I generated a new debug library that includes that fix (along with the other fixes for issue 1491).

https://drive.google.com/open?id=1asJnFk8-1FIBq9dRxc6glMej8XpHgIrX
(0005827)
stonstad   
2019-07-09 22:05   
Thanks Sergio. This works!
(0005828)
stonstad   
2019-07-09 23:09   
Encountered a runtime crash with identical or similar stacktrace. Reopening.
(0005829)
stonstad   
2019-07-09 23:10   
I'm using the assembly above. The stack trace looks similar or identical. Runtime breakpoint exception.

AssetDatabase Save disabled
Preview disabled
(0005830)
stonstad   
2019-07-09 23:14   
This is likely caused by invalid code on my part in an initialize method. I had the following test code to try to unset a min width. Please feel free to close.

_TitleLayer.ColumnDefinitions[1].MinWidth = float.NaN; // invalid
 _TitleLayer.ColumnDefinitions[1].Width = new GridLength(1, GridUnitType.Auto);
 Grid.SetColumn(_TitleTextBlock, 0);
 Grid.SetColumnSpan(_TitleTextBlock, 3);
(0005832)
sfernandez   
2019-07-09 23:53   
Yes, it was an assert for an invalid ColumnDefinition.MinWidth value, but we should add validation callbacks to prevent it and correctly report them as errors.
I created a ticket for that: https://www.noesisengine.com/bugs/view.php?id=1516


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1501 [NoesisGUI] C++ SDK minor always 2019-06-20 12:16 2019-07-09 23:11
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Binding nested dictionaries don't work
Description: A binding like this:
<DataTrigger Binding="{Binding Data[testDict][test].Value}" Value="1">

Produces the following parsing error
Unable to convert 'Data[testDict][test].Value' to a valid value for property Binding

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1353 [NoesisGUI] Documentation minor have not tried 2018-11-21 13:51 2019-07-09 18:48
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Document x:Static extension
Description: Explain what is supported by the x:Static extension:
 - Enum values
 - DependencyProperty default values (only Noesis)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1486 [NoesisGUI] C++ SDK feature have not tried 2019-06-10 17:35 2019-07-08 20:08
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: TranslateZoomRotateBehavior - add zoom from mouse wheel
Description: Hi,
TranslateZoomRotateBehavior - add zoom from mouse wheel and sensitivity property WheelSensitivity

Thanks
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1487 [NoesisGUI] C++ SDK crash always 2019-06-11 10:37 2019-07-08 20:08
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: MouseDragElementBehavior does not work if the parent element has TranslateZoomRotateBehavior, MouseDragElementBehavior, etc.
Description: in this case, the MouseDragElementBehavior immediately loses the mouse, because

e.handled = true

is not set in the OnMouseLeftButtonDown handle.
Tags:
Steps To Reproduce:   <Grid Margin="1">
    <Canvas Background="Orange" Width="Fill">
    <i:Interaction.Behaviors>
        <ei:TranslateZoomRotateBehavior SupportedGestures="All" MinimumScale="0.51"/>
    </i:Interaction.Behaviors>

    <Border Width="100" Height="150" Background="Green">
      <i:Interaction.Behaviors>
        <ei:MouseDragElementBehavior ConstraintToParentBounds="False" />
      </i:Interaction.Behaviors>
    </Border>
    
    <Border Width="100" Height="150" Background="Blue" Margin="100,0,0,0"/>
    </Canvas>
  </Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1513 [NoesisGUI] C# SDK minor always 2019-07-03 19:37 2019-07-05 18:37
Reporter: inedi Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: UserControl IsTabStop not work
Description: <UserControl ....
            IsTabStop="False" >
not work in noesis

will be comfortable if work like WPF tab stop for user control
Tags: xaml
Steps To Reproduce:  <UserControl ...
IsTabStop="False">

    <Grid>
        <StackPanel Width="300" HorizontalAlignment="Right">
            <TextBlock Foreground="White">
                <Run Text="Stars "/>
                <Run Text="{Binding ExposureStars}"/>
            </TextBlock>
            <Slider Value="{Binding ExposureStars}"
                    Minimum="0"
                    Maximum="8"
                    LargeChange="1"
                    SmallChange="0.1"
                    IsSnapToTickEnabled="True"
                    TickFrequency="0.01"/>
            
            <TextBlock Foreground="White">
                <Run Text="Figures "/>
                <Run Text="{Binding ExposureFigures}"/>
            </TextBlock>
            <Slider Value="{Binding ExposureFigures}"
                    Minimum="0"
                    Maximum="8"
                    LargeChange="1"
                    SmallChange="0.1"
                    IsSnapToTickEnabled="True"
                    TickFrequency="0.01"/>
....
Additional Information:
Attached Files:
Notes
(0005807)
sfernandez   
2019-07-05 12:54   
(Last edited: 2019-07-05 12:55)
Sorry, but I'm not understanding what is the problem here, UserControl.IsTabStop default value is already set to False, and user controls don't get focused because of that.
What are you trying to do?

(0005808)
inedi   
2019-07-05 14:57   
user controls children's get focused if IsTabStop true and false on UserControl

in WPF children's don't get focused if IsTabStop="False"on UserControl
(0005809)
sfernandez   
2019-07-05 16:32   
I just verified that WPF allows the keyboard focus to move inside the UserControl children when pressing the Tab key, even if IsTabStop property is set to false in the UserControl.
That property just indicates that the UserControl itself, if it is set to Focusable="True", will get or not the focus when pressing the Tab key, but it doesn't apply to children.
If you don't want the controls inside the user control to receive tab focus you can set KeyboardNavigation.TabNavigation="None" in the UserControl. Is that what you need?
(0005811)
inedi   
2019-07-05 17:51   
yes, thank you, i just rechecked the WPF project
everything works also Noesis
I lost KeyboardNavigation property in Noesis and got a different result

Excuse for troubling )


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1511 [NoesisGUI] C++ SDK major always 2019-07-02 04:01 2019-07-05 17:30
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version:  
Platform: Any
Summary: Tooltips shown without activating the hosting window, doesn't disappears when the mouse cursor leave the hosting window
Description: Related to issue https://www.noesisengine.com/bugs/view.php?id=1438

STR

1. Create a Noesis window with the following XAML

        <Button FontSize="40" Content="Button 3">
            <ToolTipService.ToolTip>
                <TextBlock FontSize="20" Text="Hey"/>
            </ToolTipService.ToolTip>
        </Button>

2. Make sure the window is not active
3. Move the mouse to hover on top of the button -> Tool tip is shown
4. Move the mouse out-of-the window (then activate other window)
-> tooltip is still shown
-> expected: tooltip disappears when the mouse move out of the window
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005797)
sfernandez   
2019-07-02 12:11   
Hi, the problem is that our Win32Display implementation is not tracking mouse position when mouse leaves the window, so the latest WM_MOUSEMOVE received is inside the window and over the Button that shows the ToolTip, keeping the tooltip visible.

I made a simple test using TrackMouseEvent to generate a last MouseMove event when WM_MOUSELEAVE is received and then it works as expected:
case WM_MOUSEMOVE:
{
    if (!mTrackingMouse)
    {
        TRACKMOUSEEVENT e =
        {
            sizeof(TRACKMOUSEEVENT),
            TME_LEAVE,
            mWindowHandle,
            HOVER_DEFAULT
        };
        TrackMouseEvent(&e);
        mTrackingMouse = true;
    }

    mMouseMove(this, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
    return false;
}

case WM_MOUSELEAVE:
{
    mTrackingMouse = false;
    POINT mousePos;
    GetCursorPos(&mousePos);
    ScreenToClient(mWindowHandle, &mousePos);

    // make sure it is outside right-bottom border of client area
    if (mousePos.x > 0) mousePos.x += 1;
    if (mousePos.y > 0) mousePos.y += 1;

    mMouseMove(this, mousePos.x, mousePos.y);
    return true;
}

We will include this in the next release.
(0005799)
nikobarli   
2019-07-03 08:29   
Hi Sergio,

Thanks. I confirmed that fixed the issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1503 [NoesisGUI] C# SDK major always 2019-06-21 14:27 2019-07-04 18:23
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.4  
Platform: Any
Summary: Click on the currently selected listbox item will deselect it
Description: Hi guys,

after updating to 2.2.3 I've noticed that click on the currently selected Listbox item will deselect it. Is this intended? Is there any way to restore the previous behavior? Unfortunately, in our case, it's a critical issue.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005758)
sfernandez   
2019-06-21 17:34   
I'm not able to reproduce that behavior in a normal ListBox.
Are you using SelectionMode="Multiple"? That is the only mode that behaves as you explained.
Where in your game can I test this to investigate what is happening?
(0005759)
ai_enabled   
2019-06-21 18:14   
Thanks for the quick reply, Sergio!
I've just updated to 2.2.3 and noticed the issue. Secondary click on the selected item in any listbox (skills list, structures list, etc) resulted in de-selection.
SelectionMode="Multiple" is definitely not used.
However, right now I cannot reproduce the issue even though it happened for two-three first launches. That's confusing as I'm certain I didn't changed anything. Ok, I will keep watching.
Regards!
(0005802)
ai_enabled   
2019-07-04 14:46   
(Last edited: 2019-07-04 14:46)
I was unable to reproduce the issue again. This was really weird.

Please close this ticket. Sorry for disturbing you!

(0005803)
sfernandez   
2019-07-04 18:23   
Thanks for the update, closing this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1509 [NoesisGUI] C++ SDK minor always 2019-06-28 13:51 2019-06-28 15:09
Reporter: steveh Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Incorrect viewbox scaling when referencing a static resource
Description: Hi guys, I'm seeing an inconsistency with scaling when referencing a viewbox within a staticresource. I've attached 2 files to this bug report, a working and a broken one. The broken one is scaled correctly in Visual Studio Blend, it's only when loaded through Noesis' XamlPlayer where the scaling is not as expected.

Cheers
Tags:
Steps To Reproduce: 1. Create a viewbox containing a path. Copy this and place is in a resource dictionary.
2. Create a content control.
3. Try to directly make the viewbox a child of this content control and scale the viewbox. It'll scale correctly.
4. Bind the content to the viewbox defined in the resource dictionary. Notice that the scaling is broken.
Additional Information:
Attached Files: Working.xaml (24,503 bytes) 2019-06-28 13:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1051&type=bug
Broken.xaml (24,603 bytes) 2019-06-28 13:51
https://www.noesisengine.com/bugs/file_download.php?file_id=1052&type=bug
Logo.xaml (23,883 bytes) 2019-06-28 14:42
https://www.noesisengine.com/bugs/file_download.php?file_id=1053&type=bug
Notes
(0005774)
sfernandez   
2019-06-28 14:42   
(Last edited: 2019-06-28 14:42)
Hi, thanks for the report, we will investigate what is causing this deviation from Blend and fix it.

Anyway, some suggestions on how you are defining this logo that could be improved.
- A Viewbox by default fills the space provided by its container, so it is not necessary to set its Width and Height properties unless you want explicitly set its size.
- When defining FrameworkElement derived objects inside Resources, that object can only be used once because framework elements can only have 1 logical parent in the UI tree.
- It is better to define the logo as a template that can be applied many times (see attached xaml).

Please let me know if this fits better what you tried to do.

(0005775)
steveh   
2019-06-28 15:09   
Hi,

Thank you very much for the rapid response, your suggestion worked perfect! Much appreciated.

-Steven


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1507 [NoesisGUI] Unity3D major always 2019-06-25 01:41 2019-06-28 13:44
Reporter: jswigart Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 2.2.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Control Template not working correctly in Noesis
Description: I am new to Noesis and XAML, but I am mocking up a UI in Blend and testing it in Unity at the same time while I learn. I am running into an unexpected issue when trying to get a control class working. It's working as expected in blend, but in Unity, although I get no errors from Noesis, the buttons show up as normal radio buttons.

Here is an archive of the complete project
MapMaperUI.sln is the blend project

https://www.dropbox.com/s/dqtlic91zc5d8oi/MapMaker.zip?dl=0

Tags:
Steps To Reproduce: Unzip and Open Unity project in Unity 2019.1.8f1, observe how the unity project does not show the radio buttons as the same large buttons that the preview in blend shows. Issue also happens in Unity 2018 before I upgraded.
Additional Information:
Attached Files: blend.png (20,328 bytes) 2019-06-25 01:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1046&type=bug
unity.JPG (41,243 bytes) 2019-06-25 01:41
https://www.noesisengine.com/bugs/file_download.php?file_id=1047&type=bug
Notes
(0005761)
sfernandez   
2019-06-25 10:17   
Hello,

In Unity App.xaml is not available so we offer in Noesis Settings an 'Application Resources' where you can set a dictionary with the resources of the application.
You can create a Resources.xaml like this:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:MapMakerUI.Assets.UI">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Images_UI.xaml"/>
        <ResourceDictionary Source="ControlStyles.xaml"/>
        <ResourceDictionary Source="Templates.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

And then include that in App.xaml and also set it in Unity's 'Application Resources' so you have the same environment in both Blend and Unity.

Let me know if you need more help with this.
(0005763)
jswigart   
2019-06-25 15:18   
Yes that got my custom controls working. Thanks. I figured it was something trivial.

However, for clarity, shouldn't it be possible to make Noesis debug log the fact that it is coming across references to resources that it doesn't know how to resolve? Loading the root page is loading items that reference a template that it doesn't know exists, so I would think that would be a nice time to print a warning about being unable to resolve template x or whatever. Blend is very nicely verbose with its debug output printing. I tried running it in the broken state on all the Noesis log levels to see if I could get any hints and got nothing.
(0005773)
sfernandez   
2019-06-28 13:43   
(Last edited: 2019-06-28 13:44)
I just confirmed that WPF doesn't raise any errors or warning messages when using DynamicResouces that cannot be resolved. It is Blend the only one that gives you some warning hint (blue underline) when it thinks a DynamicResource wouldn't resolve, although it could be wrong as the resource can be added later in code.

In Noesis we don't log any warning neither, because when a DynamicResource cannot be resolved the property should fallback to the default value.

Using StaticResources otherwise will give you a clear error message when the resource is not found.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1502 [NoesisGUI] C++ SDK minor have not tried 2019-06-20 13:09 2019-06-27 17:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Weird selectable rectangle rendered in ListView headers
Description: It happens when setting the GridViewColumn.Header to a GridViewColumnHeader object, because it is wrapping that object with another one.
Tags:
Steps To Reproduce:
<UserControl x:Class="WpfApp1.SSC.PersonsListView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:WpfApp1.SSC"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <ListView Grid.Row="2" ItemsSource="{Binding cbPersons}">
        <ListView.View>
            <GridView>
                <GridViewColumn>
                    <GridViewColumn.Header>
                        <GridViewColumnHeader Tag="Firstname" MouseLeftButtonDown="GridViewColumnHeader_MouseLeftButtonDown">First name</GridViewColumnHeader>
                    </GridViewColumn.Header>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate >
                            <TextBlock Text="{Binding Firstname}" Style="{StaticResource TextColor}" ></TextBlock>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn>
                    <GridViewColumn.Header>
                        <GridViewColumnHeader Tag="Lastname" MouseLeftButtonDown="GridViewColumnHeader_MouseLeftButtonDown">Last name</GridViewColumnHeader>
                    </GridViewColumn.Header>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Lastname}" Style="{StaticResource TextColor}" ></TextBlock>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
</UserControl>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1506 [NoesisGUI] C++ SDK crash always 2019-06-22 03:12 2019-06-27 12:40
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b8  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 2.2.0  
    Target Version:  
Platform: Windows
Summary: Empty Run after LineBreak crashed Noesis ?
Description: The following XAML crashed Noesis

<TextBlock><LineBreak/><Run/></TextBlock>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005760)
jsantos   
2019-06-24 14:16   
Hi Niko,

I am not able to reproduce this (trying 2.2.3 right now). I remember fixing something about this in 2.2 betas, would it be possible to update Noesis to a non beta version (or even better to 2.2.2 or 2.2.3)
(0005767)
nikobarli   
2019-06-27 08:10   
Hi Jesus,

I confirmed it is fixed already in 2.2.3. Thanks !
(0005769)
jsantos   
2019-06-27 12:40   
Great! Thanks for the feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1492 [NoesisGUI] C# SDK feature always 2019-06-15 14:48 2019-06-27 01:31
Reporter: digimbyte Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Any
Summary: Thickness needs 2 arguments
Description: Thickness currently has 1 or 4 overloads, I would like to see thickness with 2 overloads, `new thickness(width, height)`
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005721)
sfernandez   
2019-06-17 16:39   
We were following WPF interface that only offers two versions of the constructor (1 or 4 values): https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Thickness.cs,34
Anyway, we think it is safe to add that extension to the code so we'll do it for the next release. Although using it will mean code won't be compatible with WPF, just want to remark that.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1495 [NoesisGUI] C++ SDK block always 2019-06-18 07:44 2019-06-26 20:51
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.4  
    Target Version: 2.2.4  
Platform: Windows
Summary: VM instance bound to a UI element is not destroyed even after the bind target is nulled.
Description: Follow up from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1714

So we have a code like this

xaml
        <Grid>
            <ContentControl Content="{Binding CurrentItem}" />
        </Grid>

C++
class ItemVM : public BaseComponent, public INotifyPropertyChanged
{
    ...
}

class BindingCollectionVM : public BaseComponent, public INotifyPropertyChanged
{
public:
    Ptr<ItemVM> m_item = MakePtr<ItemVM>(); // create ItemVM here

    void ButtonCmd() {
        m_item.Reset(); // Clear the item when a button is clicked
        _propertyChanged(this, NSS(CurrentItem));
    }

    NS_IMPLEMENT_INLINE_REFLECTION(BindingCollectionVM, BaseComponent)
    {
        ...
        NsProp("CurrentItem", &BindingCollectionVM::m_item );
    }
    
We expect that when the ButtonCmd is fired, m_item is reset, then the ItemVM instance we created will be destroyed. However, it seems that the FrameworkElement still hold the reference preventing the destruction.

(as for the appearance, the ItemVM is correctly disappeared from the UI after the reset)

If for example, we create another instance of ItemVM and assign it to m_item, then the previous instance is correctly destroyed.

    void ButtonCmd() {
        m_item = MakePtr<ItemVM>();
        _propertyChanged(this, NSS(CurrentItem));
    }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
423 [NoesisGUI] Unity3D major always 2014-06-25 03:43 2019-06-25 10:30
Reporter: wckdspn Platform:  
Assigned To: sfernandez OS:  
Priority: urgent OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Path object not visible
Description: The following path object, imported from Photoshop and visible/editable in Blend, does not display in Noesis. Worse, there is no error indicating the reason.
Tags:
Steps To Reproduce: Include the following in some XAML file hierarchy (tested with Grid)

<Path x:Name="base_shape_copy_2" Fill="#FFD3AF6B" Margin="0">
                <Path.Data>
                    <PathGeometry FillRule="Nonzero">
                        <PathFigure IsClosed="True" StartPoint="594.449761260126,3.28426468243492E-07">
                            <BezierSegment Point3="597.675826350347,3.28426468243492E-07" Point2="597.13667169928,3.28426468243492E-07" Point1="594.988915911193,3.28426468243492E-07"/>
                            <BezierSegment Point3="749.936054083805,73.9215861017745" Point2="715.01803546304,28.8870409741563" Point1="658.164546792004,3.28426468243492E-07"/>
                            <BezierSegment Point3="1039.48869015547,73.9215861017745" Point2="1039.48869015547,73.9215861017745" Point1="749.936054083805,73.9215861017745"/>
                            <BezierSegment Point3="1090.4129548008,160.245708386343" Point2="1065.91169946586,160.245708386343" Point1="1045.32485461127,119.468750419294"/>
                            <BezierSegment Point3="1161.14561361274,160.245708386343" Point2="1161.14561361274,160.245708386343" Point1="1090.4129548008,160.245708386343"/>
                            <BezierSegment Point3="1161.14561361274,160.30266607411" Point2="1161.14561361274,160.30266607411" Point1="1161.14561361274,160.245708386343"/>
                            <BezierSegment Point3="1192.00003101409,234.162547685711" Point2="1189.70013021488,193.03909711808" Point1="1176.81950403047,161.375369193718"/>
                            <BezierSegment Point3="1191.91583426036,318.298545465239" Point2="1191.94389984493,290.25637718805" Point1="1192.00003101409,234.162547685711"/>
                            <LineSegment Point="1191.91140285227,321.872640372606"/>
                            <LineSegment Point="1191.91583426036,330.558687757043"/>
                            <BezierSegment Point3="1192.00003101409,534.837434932679" Point2="1192.00003101409,534.837434932679" Point1="1191.94389984493,398.651603482255"/>
                            <BezierSegment Point3="1161.14561361274,608.70206301826" Point2="1176.81950403047,607.629359898652" Point1="1189.70013021488,575.965631974291"/>
                            <BezierSegment Point3="1161.14561361274,608.759020706028" Point2="1161.14561361274,608.759020706028" Point1="1161.14561361274,608.70206301826"/>
                            <BezierSegment Point3="1090.4129548008,608.759020706028" Point2="1090.4129548008,608.759020706028" Point1="1161.14561361274,608.759020706028"/>
                            <BezierSegment Point3="1039.48869015547,695.083142990596" Point2="1045.32485461127,649.535978673077" Point1="1065.91169946586,608.759020706028"/>
                            <BezierSegment Point3="749.936054083805,695.083142990596" Point2="749.936054083805,695.083142990596" Point1="1039.48869015547,695.083142990596"/>
                            <BezierSegment Point3="597.675826350347,768.999982289964" Point2="658.164546792004,768.999982289964" Point1="715.01803546304,740.117688118214"/>
                            <BezierSegment Point3="594.449761260126,768.999982289964" Point2="594.988915911193,768.999982289964" Point1="597.13667169928,768.999982289964"/>
                            <BezierSegment Point3="441.449488375477,695.083142990596" Point2="476.368984132272,740.117688118214" Point1="533.961040818469,768.999982289964"/>
                            <BezierSegment Point3="151.898329439838,695.083142990596" Point2="151.898329439838,695.083142990596" Point1="441.449488375477,695.083142990596"/>
                            <BezierSegment Point3="100.972587658481,611.13225769631" Point2="125.47384299342,611.13225769631" Point1="146.062164984038,649.535978673077"/>
                            <BezierSegment Point3="30.9799739977373,611.13225769631" Point2="30.9799739977373,611.13225769631" Point1="100.972587658481,611.13225769631"/>
                            <BezierSegment Point3="30.9799739977373,611.075300008544" Point2="30.9799739977373,611.075300008544" Point1="30.9799739977373,611.13225769631"/>
                            <BezierSegment Point3="0.125556596386271,537.210671922962" Point2="2.42545739559651,578.338868964574" Point1="15.3046064439678,610.002596888935"/>
                            <BezierSegment Point3="0.141805092719804,496.343530950282" Point2="0.131465140507556,520.86381553389" Point1="0.125556596386271,537.210671922962"/>
                            <LineSegment Point="0.144759364780447,486.323724377305"/>
                            <LineSegment Point="3.38089609641656E-08,482.792347735763"/>
                            <BezierSegment Point3="0.155099316992696,392.656806844799" Point2="0.088628195628238,431.288358572633" Point1="3.38089609641656E-08,482.792347735763"/>
                            <LineSegment Point="0.189073445690085,372.674151386613"/>
                            <LineSegment Point="0.193504853781049,358.425236496951"/>
                            <BezierSegment Point3="0.202367669962977,336.330400117412" Point2="0.199413397902334,343.355181608651" Point1="0.196459125841692,350.759681018335"/>
                            <LineSegment Point="0.206799078053941,327.378550190063"/>
                            <LineSegment Point="0.193504853781049,313.243550675935"/>
                            <BezierSegment Point3="0.125556596386271,231.794057169408" Point2="0.125556596386271,231.794057169408" Point1="0.165439269204945,278.333234548866"/>
                            <BezierSegment Point3="30.9799739977373,157.929429083827" Point2="15.3046064439678,159.002132203435" Point1="2.42545739559651,190.665860127796"/>
                            <BezierSegment Point3="30.9799739977373,157.87247139606" Point2="30.9799739977373,157.87247139606" Point1="30.9799739977373,157.929429083827"/>
                            <BezierSegment Point3="100.972587658481,157.87247139606" Point2="100.972587658481,157.87247139606" Point1="30.9799739977373,157.87247139606"/>
                            <BezierSegment Point3="151.898329439838,73.9215861017745" Point2="146.062164984038,119.468750419294" Point1="125.47384299342,157.87247139606"/>
                            <BezierSegment Point3="441.449488375477,73.9215861017745" Point2="441.449488375477,73.9215861017745" Point1="151.898329439838,73.9215861017745"/>
                            <BezierSegment Point3="594.449761260126,3.28426468243492E-07" Point2="533.961040818469,3.28426468243492E-07" Point1="476.368984132272,28.8870409741563"/>
                        </PathFigure>
                    </PathGeometry>
                </Path.Data>
            </Path>
Additional Information:
Attached Files:
Notes
(0001383)
sfernandez   
2014-06-25 14:45   
You should be getting a warning message when xaml file is processed by NoesisAssetPostProcessor:

[DX9] Assets/PathTest.xaml
Ignoring unknown type 'PathGeometry' (@10,20)

Even if you select the NoesisGUIPanel component, a warning box should be shown in the inspector.

We don't have support for PathGeometry, PathFigure, BezierSegment, etc.
The only way we support to define Path vector data is through the Path Markup Syntax.
(0001385)
jsantos   
2014-06-25 19:39   
Does Photoshop export to XAML?
(0001387)
wckdspn   
2014-06-26 00:37   
Sergio: The XAML that has it defined is not the one attached to the panel. Both rebuilding everything and rebuilding just the XAML file does not cause the warning to show up in the console.

Jesus: No, but Blend will import a PSD.
(0001388)
wckdspn   
2014-06-26 01:03   
So, Blend auto translates the PathGeometry into the path markup in the property field. I was able to copy that data, delete the tags, paste into the data field again, and then it filled it in at the attribute level (it then displays). It's a workable work around, though certainly not ideal.

It seems to be what Blend does automatically if you import from PSD (at least in a few files which I tried), *or* when you attempt to animate the Path data. The latter appears to not be possible as a result.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1494 [NoesisGUI] Unity3D minor always 2019-06-18 02:18 2019-06-20 17:40
Reporter: Grandpa3D Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: The Unity NorthGame package Does not work
Description: The Unity NorthGame package that is on the GitHub repository gives many errors when it is opened. The errors are still there after including the NoesisGUI Extensions. Are there any plans to update this.
Tags: C#, Unity
Steps To Reproduce: 1) Open the project in Blend For Unity 2019 version 16.1.2
2) Include NoesisGUI Extensions
Additional Information:
Attached Files:
Notes
(0005732)
Grandpa3D   
2019-06-18 05:51   
After some more investigation it appears as if this is missing in the XAMLs: xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
(0005734)
sfernandez   
2019-06-18 10:06   
Could you please indicate which xaml is missing the interactivity and interactions namespaces?
I reviewed all the xamls and the ones requiring those namespaces already include them.
(0005740)
Grandpa3D   
2019-06-18 20:05   
I should have marked my changes as I made them, but I forgot to. I am including a corrected version of the package. It is error free in Blend but it still doesn't work in Unity. I believe it is due to the way events are being handled in the XAMLs. I am currently investigating this, but I am very new to Noesis so I'll have to work through the APIs.

It appears as if I won't be able to upload the corrected package. It is to big a file.c Let me compare my corected version to the one on GitHub and I will send a list of the changes I made.
(0005741)
Grandpa3D   
2019-06-18 20:36   
Here are the changes I made.
Images.xaml: CORRECTED xmlns:noesis="clr-namespace:NoesisGUIExtensions"> TO xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
                            MOVED xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions" ABOVE xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"

MainWindow.xaml: ADDED xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" "I DON"T THINK THIS WAS NEEDED"

Resources.xaml: MOVED xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions" ABOVE xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions"
(0005742)
sfernandez   
2019-06-19 11:38   
Resolved in https://github.com/Noesis/Tutorials/commit/ffab50df09a645ecc7e7c2acf2d006556247d48f
I verified it compiles and runs in both Blend (for Visual Studio 2015) and Unity 2019.1.1f1. Could you please confirm it also works in your version of Blend and Unity?
(0005748)
Grandpa3D   
2019-06-20 03:01   
It does not work in my version of Unity 2019.1.1f1.
It loads fine but none of the buttons work.
This is the error I receive: noesis] Assets/NoesisGUI/Samples/NorthGame/Menu.xaml(194): Unknown type 'NoesisApp.Interaction'.
(0005749)
sfernandez   
2019-06-20 10:08   
Hi, this demo uses the Interactivity classes included in our Unity package under 'NoesisGUI/Samples/Interactivity'.
You have to import that folder along with the Plugins folder into the NorthGame project.
Does that fix the errors?
(0005753)
Grandpa3D   
2019-06-20 17:10   
Yes that fixed the issue. Quick question though? As someone new to this how would I know I need to include this package and where to locate it. It seems as though it is kinda hidden being in the Samples folder
(0005756)
sfernandez   
2019-06-20 17:40   
You're right, this is probably something we should indicate in the README.md page of that sample (and other samples in the same situation).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1497 [NoesisGUI] C# SDK feature N/A 2019-06-19 17:12 2019-06-20 11:32
Reporter: Vince_1990 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: BitmapImage from stream/byte[]
Description: I have a database with images (Couchbase if it matters).
wich stores images in memory and i can get them with a stream or byte[].
In the current situation i have to write them to disk and then load them up through an Uri, wich is cumbersome.

It would there fore be awsome if we could just pass a stream/byte[] and get the ImageSource in return.

OR an tutorial on how to use Bitmapsource.Create
Tags: C#
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005746)
sfernandez   
2019-06-19 17:41   
You should be able to use BitmapSource.Create just fine passing the byte array:
byte[] pixels = memoryStream.ToArray();
BitmapSource bmp = BitmapSource.Create(pixelWidth, pixelHeight, 96.0, 96.0, pixels, pixelWidth * 3, BitmapSource.Format.RGB8);


Are you getting any error with this approach?
(0005747)
Vince_1990   
2019-06-19 19:32   
(Last edited: 2019-06-20 10:22)
Tried it but doesn't work.

I don't know the pixels width.Height so i used:

Bitmap b = new Bitmap(File.ContentStream);
ImageSource Is = BitmapSource.Create(b.Width, b.Height, b.HorizontalResolution, b.VerticalResolution, File.Content,b.Width * 3, BitmapSource.Format.RGB8);
                                                                        80 80 96 96 byte[2162] 80* 3
Source:
http://i64.tinypic.com/14in0np.png

Result:
http://i68.tinypic.com/24nis5v.png

The file is an .jpg file.
When i write it to disk and hit properties is lists with an Bitdepth of 24

(0005750)
jsantos   
2019-06-20 10:53   
I am not sure this is the best approach. If you already have the images in a database I think the best way is installing a TextureProvider that will allow you to return a Stream for each requested URI.
(0005751)
Vince_1990   
2019-06-20 11:07   
I Already use a custom texture provider for loading images from filesystem, wich indeed needs an uri and spills out an stream.
But problem is i cannot acces the files in the database by Uri.
When i open the database, the images are loaded into the ram, and in the c# object i can only get a stream or a byte[].
(0005752)
sfernandez   
2019-06-20 11:32   
I think this is not a bug and it is better to discuss it in the forums, because it can help others in the same situation, could you please create a post there?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1493 [NoesisGUI] Unity3D crash always 2019-06-17 09:36 2019-06-18 18:50
Reporter: schovan Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.3  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Buttons sample Unity WebGL error
Description: version 2.2.3, unity version 2018.4.2f1

error:

You can reduce your startup time if you configure your web server to host .unityweb files using gzip compression.
UnityLoader.js:4 [UnityCache] 'http://localhost:62056/Build/BinWebGL.w ... e.unityweb' successfully downloaded and stored in the indexedDB cache
UnityLoader.js:4 [UnityCache] 'http://localhost:62056/Build/BinWebGL.w ... k.unityweb' successfully downloaded and stored in the indexedDB cache
UnityLoader.js:4 [UnityCache] 'http://localhost:62056/Build/BinWebGL.data.unityweb' successfully downloaded and stored in the indexedDB cache
(index):8 Resource interpreted as Stylesheet but transferred with MIME type text/plain: "http://localhost:62056/TemplateData/style.css".
UnityLoader.js:4 Loading player data from data.unity3d
UnityLoader.js:4 Initialize engine version: 2018.4.1f1 (b7c424a951c0)
UnityLoader.js:4 Creating WebGL 2.0 context.
UnityLoader.js:4 Renderer: WebKit WebGL
UnityLoader.js:4 Vendor: WebKit
UnityLoader.js:4 Version: OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))
UnityLoader.js:4 GLES: 3
UnityLoader.js:4 EXT_color_buffer_float GL_EXT_color_buffer_float EXT_disjoint_timer_query_webgl2 GL_EXT_disjoint_timer_query_webgl2 EXT_texture_filter_anisotropic GL_EXT_texture_filter_anisotropic OES_texture_float_linear GL_OES_texture_float_linear WEBGL_compressed_texture_s3tc GL_WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb GL_WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info GL_WEBGL_debug_renderer_info WEBGL_debug_shaders GL_WEBGL_debug_shaders WEBGL_lose_context GL_WEBGL_lose_context
UnityLoader.js:4 OPENGL LOG: Creating OpenGL ES 3.0 graphics device ; Context level <OpenGL ES 3.0> ; Context handle 1
ae2520d2-c889-4675-804b-e831b9fd8e0e:2 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
_JS_Sound_Init @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ wasm-04ee0a76-1991:34
(anonymous) @ wasm-04ee0a76-1959:903
(anonymous) @ wasm-04ee0a76-1847:261
(anonymous) @ wasm-04ee0a76-1835:17
(anonymous) @ wasm-04ee0a76-2855:98
(anonymous) @ wasm-04ee0a76-2851:413
(anonymous) @ wasm-04ee0a76-2847:88
(anonymous) @ wasm-04ee0a76-2846:13
(anonymous) @ wasm-04ee0a76-504:162
(anonymous) @ wasm-04ee0a76-7836:80
(anonymous) @ wasm-04ee0a76-7812:79
(anonymous) @ wasm-04ee0a76-7757:446
(anonymous) @ wasm-04ee0a76-7756:5
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callMain @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doCallback @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
storeLocalEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
loadRemoteEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
reconcile @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
getDB @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getRemoteSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getLocalSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callRuntimeCallbacks @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
preRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstance @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstantiatedSource @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
Promise.then (async)
instantiateArrayBuffer @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doNativeWasm @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
UnityLoader.loadCode.Module @ UnityLoader.js:4
o.onload @ UnityLoader.js:4
load (async)
loadCode @ UnityLoader.js:4
processWasmFrameworkJob @ UnityLoader.js:4
a.callback @ UnityLoader.js:3
setTimeout (async)
a.complete @ UnityLoader.js:3
(anonymous) @ UnityLoader.js:4
r.worker.onmessage @ UnityLoader.js:3
UnityLoader.js:4 missing function: _Znam
printErr @ UnityLoader.js:4
__Znam @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ wasm-04ee0a76-54810:39
(anonymous) @ wasm-04ee0a76-67403:17
(anonymous) @ wasm-04ee0a76-44537:77
(anonymous) @ wasm-04ee0a76-51705:75
(anonymous) @ wasm-04ee0a76-51712:50
(anonymous) @ wasm-04ee0a76-51802:4
(anonymous) @ wasm-04ee0a76-24625:9
(anonymous) @ wasm-04ee0a76-69837:11
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
invoke_iiiii @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ wasm-04ee0a76-53046:87
(anonymous) @ wasm-04ee0a76-53467:20
(anonymous) @ wasm-04ee0a76-2613:31
(anonymous) @ wasm-04ee0a76-7629:132
(anonymous) @ wasm-04ee0a76-7651:524
(anonymous) @ wasm-04ee0a76-6651:50
(anonymous) @ wasm-04ee0a76-6649:239
(anonymous) @ wasm-04ee0a76-6668:7
(anonymous) @ wasm-04ee0a76-7825:70
(anonymous) @ wasm-04ee0a76-7824:25
(anonymous) @ wasm-04ee0a76-7822:40
(anonymous) @ wasm-04ee0a76-7818:286
(anonymous) @ wasm-04ee0a76-7813:157
(anonymous) @ wasm-04ee0a76-7757:537
(anonymous) @ wasm-04ee0a76-7756:5
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callMain @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doCallback @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
storeLocalEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
loadRemoteEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
reconcile @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
getDB @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getRemoteSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getLocalSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callRuntimeCallbacks @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
preRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstance @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstantiatedSource @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
Promise.then (async)
instantiateArrayBuffer @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doNativeWasm @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
UnityLoader.loadCode.Module @ UnityLoader.js:4
o.onload @ UnityLoader.js:4
load (async)
loadCode @ UnityLoader.js:4
processWasmFrameworkJob @ UnityLoader.js:4
a.callback @ UnityLoader.js:3
setTimeout (async)
a.complete @ UnityLoader.js:3
(anonymous) @ UnityLoader.js:4
r.worker.onmessage @ UnityLoader.js:3
Show 10 more frames
UnityLoader.js:4 -1
UnityLoader.js:4 -1
printErr @ UnityLoader.js:4
onAbort @ UnityLoader.js:4
abort @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
__Znam @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ wasm-04ee0a76-54810:39
(anonymous) @ wasm-04ee0a76-67403:17
(anonymous) @ wasm-04ee0a76-44537:77
(anonymous) @ wasm-04ee0a76-51705:75
(anonymous) @ wasm-04ee0a76-51712:50
(anonymous) @ wasm-04ee0a76-51802:4
(anonymous) @ wasm-04ee0a76-24625:9
(anonymous) @ wasm-04ee0a76-69837:11
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
invoke_iiiii @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ wasm-04ee0a76-53046:87
(anonymous) @ wasm-04ee0a76-53467:20
(anonymous) @ wasm-04ee0a76-2613:31
(anonymous) @ wasm-04ee0a76-7629:132
(anonymous) @ wasm-04ee0a76-7651:524
(anonymous) @ wasm-04ee0a76-6651:50
(anonymous) @ wasm-04ee0a76-6649:239
(anonymous) @ wasm-04ee0a76-6668:7
(anonymous) @ wasm-04ee0a76-7825:70
(anonymous) @ wasm-04ee0a76-7824:25
(anonymous) @ wasm-04ee0a76-7822:40
(anonymous) @ wasm-04ee0a76-7818:286
(anonymous) @ wasm-04ee0a76-7813:157
(anonymous) @ wasm-04ee0a76-7757:537
(anonymous) @ wasm-04ee0a76-7756:5
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callMain @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doCallback @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
storeLocalEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
loadRemoteEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
reconcile @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
getDB @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getRemoteSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getLocalSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callRuntimeCallbacks @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
preRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstance @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstantiatedSource @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
Promise.then (async)
instantiateArrayBuffer @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doNativeWasm @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
UnityLoader.loadCode.Module @ UnityLoader.js:4
o.onload @ UnityLoader.js:4
load (async)
loadCode @ UnityLoader.js:4
processWasmFrameworkJob @ UnityLoader.js:4
a.callback @ UnityLoader.js:3
setTimeout (async)
a.complete @ UnityLoader.js:3
(anonymous) @ UnityLoader.js:4
r.worker.onmessage @ UnityLoader.js:3
Show 12 more frames
UnityLoader.js:4 exception thrown: abort(-1) at Error
at jsStackTrace (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:15158)
at Object.stackTrace (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:15329)
at Object.onAbort (http://localhost:62056/Build/UnityLoader.js:4:9327)
at abort (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:498993)
at __Znam (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:180090)
at wasm-function[54810]:98
at wasm-function[67403]:39
at wasm-function[44537]:195
at wasm-function[51705]:187
at wasm-function[51712]:112
at wasm-function[51802]:5
at wasm-function[24625]:17
at wasm-function[69837]:20
at Object.dynCall_iiiii (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:475511)
at invoke_iiiii (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:355752)
at wasm-function[53046]:173
at wasm-function[53467]:36
at wasm-function[2613]:64
at wasm-function[7629]:295
at wasm-function[7651]:1067
at wasm-function[6651]:115
at wasm-function[6649]:527
at wasm-function[6668]:11
at wasm-function[7825]:155
at wasm-function[7824]:44
at wasm-function[7822]:82
at wasm-function[7818]:642
at wasm-function[7813]:356
at wasm-function[7757]:1200
at wasm-function[7756]:7
at Object._main (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:464025)
at Object.callMain (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:497701)
at doRun (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:498389)
at run (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:498557)
at runCaller (blob:http://localhost:62056/ae2520d2-c889-46 ... e:2:497320)
at Object.removeRunDependency (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:21718)
at blob:http://localhost:62056/ae2520d2-c889-46 ... 8e0e:2:413
at doCallback (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:94908)
at done (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:95046)
at done (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:77989)
at Object.storeLocalEntry (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:76449)
at blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:78221
at IDBRequest.<anonymous> (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:76799)
printErr @ UnityLoader.js:4
callMain @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doCallback @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
done @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
storeLocalEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
loadRemoteEntry @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
reconcile @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
IndexedDB (async)
getDB @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getRemoteSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
getLocalSet @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
syncfs @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
callRuntimeCallbacks @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
preRun @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
run @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
runCaller @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
removeRunDependency @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstance @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
receiveInstantiatedSource @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
Promise.then (async)
instantiateArrayBuffer @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
doNativeWasm @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
(anonymous) @ ae2520d2-c889-4675-804b-e831b9fd8e0e:2
UnityLoader.loadCode.Module @ UnityLoader.js:4
o.onload @ UnityLoader.js:4
load (async)
loadCode @ UnityLoader.js:4
processWasmFrameworkJob @ UnityLoader.js:4
a.callback @ UnityLoader.js:3
setTimeout (async)
a.complete @ UnityLoader.js:3
(anonymous) @ UnityLoader.js:4
r.worker.onmessage @ UnityLoader.js:3
UnityLoader.js:3 Invoking error handler due to
Uncaught abort(-1) at Error
at jsStackTrace (BinWebGL.wasm.framework.unityweb:2:15158)
at stackTrace [Object.stackTrace] (BinWebGL.wasm.framework.unityweb:2:15329)
at Object.onAbort (http://localhost:62056/Build/UnityLoader.js:4:9327)
at abort (BinWebGL.wasm.framework.unityweb:2:498993)
at __Znam (BinWebGL.wasm.framework.unityweb:2:180090)
at wasm-function[54810]:98
at wasm-function[67403]:39
at wasm-function[44537]:195
at wasm-function[51705]:187
at wasm-function[51712]:112
at wasm-function[51802]:5
at wasm-function[24625]:17
at wasm-function[69837]:20
at dynCall_iiiii [Object.dynCall_iiiii] (BinWebGL.wasm.framework.unityweb:2:475511)
at invoke_iiiii (BinWebGL.wasm.framework.unityweb:2:355752)
at wasm-function[53046]:173
at wasm-function[53467]:36
at wasm-function[2613]:64
at wasm-function[7629]:295
at wasm-function[7651]:1067
at wasm-function[6651]:115
at wasm-function[6649]:527
at wasm-function[6668]:11
at wasm-function[7825]:155
at wasm-function[7824]:44
at wasm-function[7822]:82
at wasm-function[7818]:642
at wasm-function[7813]:356
at wasm-function[7757]:1200
at wasm-function[7756]:7
at _main [Object._main] (BinWebGL.wasm.framework.unityweb:2:464025)
at callMain [Object.callMain] (BinWebGL.wasm.framework.unityweb:2:497701)
at doRun (BinWebGL.wasm.framework.unityweb:2:498389)
at run (BinWebGL.wasm.framework.unityweb:2:498557)
at runCaller (BinWebGL.wasm.framework.unityweb:2:497320)
at removeRunDependency [Object.removeRunDependency] (BinWebGL.wasm.framework.unityweb:2:21718)
at blob:http://localhost:62056/ae2520d2-c889-46 ... 8e0e:2:413
at doCallback (BinWebGL.wasm.framework.unityweb:2:94908)
at done (BinWebGL.wasm.framework.unityweb:2:95046)
at done (BinWebGL.wasm.framework.unityweb:2:77989)
at storeLocalEntry [Object.storeLocalEntry] (BinWebGL.wasm.framework.unityweb:2:76449)
at blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:78221
at IDBRequest.<anonymous> (blob:http://localhost:62056/ae2520d2-c889-46 ... 0e:2:76799)
Tags:
Steps To Reproduce: 1. create new unity project
2. import custom package NoesisGUI-2.2.2.unitypackage
3. open Buttons sample scene
4. build WebGL (Buttons scene in build) and run in browser Chrome
Additional Information:
Attached Files:
Notes
(0005735)
jsantos   
2019-06-18 16:45   
Unfortunately, Unity uses different versions of emscripten for each Unity version. We can only be compatible with the latest one. You need to use Unity 2019.1, could you please try it? We need to properly document this.
(0005736)
schovan   
2019-06-18 18:26   
It works in Unity 2019.1.7f1 (64-bit). But I'm not happy about that. What if someone's project is not ready to Unity 2019?
(0005737)
jsantos   
2019-06-18 18:44   
We would need to distribute a noesis runtime for each version of Unity. I am not sure we want to do that for the indie license.
(0005738)
schovan   
2019-06-18 18:47   
ok
(0005739)
jsantos   
2019-06-18 18:50   
I think once WebGL stabilizes a bit more this won't be an issue at all. Right now we have to maintain a version of webgl for each version of Unity and Unreal.

Let's see how this evolves. Thanks for your patience and for your feedback.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1237 [NoesisGUI] C++ SDK major always 2018-02-08 02:40 2019-06-18 16:58
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: high OS Version: Windows 10 FCU  
Status: assigned Product Version: 2.1.0rc2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: NoesisTheme.xaml is not complete ?
Description: NoesisTheme.xaml is not complete, or it may not be applied correctly by NoesisGUI.

Tags:
Steps To Reproduce: 1. Put the attached NoesisControls.xaml and NoesisTheme.xaml into a directory

2. Open the NoesisControls.xaml using XamlPlayer.

Note that NoesisControls.xaml includes NoesisTheme.xaml as its resource. NoesisTheme.xaml is modified so that all its colors are set to green #FF00FF00.

// Observe that some parts of control is still shown in Noesis default colors (not green). See the attached NotAllGreen.jpg
Additional Information:
Attached Files: NotAllGreen.JPG (132,514 bytes) 2018-02-08 02:40
https://www.noesisengine.com/bugs/file_download.php?file_id=884&type=bug
NoesisControls.xaml (305,753 bytes) 2018-02-08 02:40
https://www.noesisengine.com/bugs/file_download.php?file_id=882&type=bug
NoesisTheme.xaml (156,604 bytes) 2018-02-08 02:40
https://www.noesisengine.com/bugs/file_download.php?file_id=883&type=bug
NotAllGreen-WPF.JPG (149,354 bytes) 2018-02-08 02:44
https://www.noesisengine.com/bugs/file_download.php?file_id=885&type=bug
Notes
(0005087)
nikobarli   
2018-02-08 02:44   
When opened using WPF, the parts that are not using the colors defined by NoesisTheme.xaml are different. Notable, some texts are shown as black (see the attached NotAllGreen-WPF.jpg). This makes us difficult to use Blend when designing the UI.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1463 [NoesisGUI] Unity3D crash always 2019-05-09 06:48 2019-06-04 10:38
Reporter: cyberfox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: MarkupExtension crashes the Unity Editor
Description: But only when you actually use the class in Xaml.
Tags: Unity
Steps To Reproduce: public class Language : MarkupExtension {
    // no members needed, it crashes regardless
}

<TextBlock Text="{locale:Language Herp}" TextWrapping="Wrap" />

Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1469 [NoesisGUI] C# SDK feature have not tried 2019-05-21 08:37 2019-06-04 10:37
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Suppot for FrameworkContentElement
Description: // BDM: There is no FrameworkContentElement in Noesis.

//FrameworkContentElement fcElement = this.TargetElement as FrameworkContentElement;
//if (fcElement != null)
//{
// fcElement.Loaded += this.ElementLoaded;
// return;
//}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1471 [NoesisGUI] C# SDK feature have not tried 2019-05-21 08:40 2019-06-04 10:37
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support XamlReader.Load from Stream
Description: XamlReader:
public static ModuleCatalog CreateFromXaml(Stream xamlStream)
{
    // BDM: This is Windows only WPF code.
    // We could ask Noesis to implement this in their XamlReader if we want this capability in the future.
    throw new NotImplementedException("BDM: Ask Noesis to implement if needed.");
    //if (xamlStream == null)
    //{
    // throw new ArgumentNullException(nameof(xamlStream));
    //}
    //return XamlReader.Load(xamlStream) as ModuleCatalog;
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1475 [NoesisGUI] C# SDK minor have not tried 2019-05-21 12:56 2019-06-04 10:36
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Application MainWindow never fires Unloaded event
Description: When closing an application, the main window should trigger the Unloaded event before closing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1473 [NoesisGUI] C# SDK feature have not tried 2019-05-21 11:58 2019-06-04 10:33
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Any
Summary: Application.MainWindow property is missing
Description: https://docs.microsoft.com/en-us/dotnet/api/system.windows.application.mainwindow?view=netframework-4.8
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1482 [NoesisGUI] Unreal feature always 2019-05-31 23:03 2019-06-04 10:32
Reporter: Dreika Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.3  
Platform: Windows
Summary: <Rectangle Radius="10,5,10,5"/> not worck >_<
Description: <Rectangle Radius="10,5,10,5"/> or <Rectangle Radius="10"/> or <Rectangle Radius="10,5"/> not worck >_<
Tags: UE4
Steps To Reproduce:
Additional Information:
Attached Files: noe.png (488,812 bytes) 2019-05-31 23:03
https://www.noesisengine.com/bugs/file_download.php?file_id=1025&type=bug
Redactor.jpg (105,407 bytes) 2019-06-03 04:11
https://www.noesisengine.com/bugs/file_download.php?file_id=1027&type=bug
Notes
(0005693)
sfernandez   
2019-06-02 12:07   
Rectangle shape doesn't define a Radius property, as you can see in the screenshot you posted the properties are RadiusX and RadiusY.
What you attempt to do will look like this:
<Rectangle RadiusX="10" RadiusY="5" .../>
(0005694)
Dreika   
2019-06-03 04:11   
(Last edited: 2019-06-03 04:15)
This proposal innovations for different radii of each of the 4 corners. In the documentation, throw the implementation of such an element of the frame

(0005695)
sfernandez   
2019-06-03 10:50   
Maybe you want to use a Border element which defines the CornerRadius property that allows you to specify different radius for each corner:
<Border Margin="10" BorderBrush="DarkGray" BorderThickness="1" CornerRadius="4,8,32,16">

https://2000thingswpf.files.wordpress.com/2011/11/437-002.png
(0005696)
Dreika   
2019-06-03 21:37   
Thanks for the decision


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1480 [NoesisGUI] Unity3D major always 2019-05-30 12:25 2019-06-03 12:06
Reporter: cyberfox Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: LightweightRenderPipeline hides NoesisGUI
Description: Using the LWRP, NoesisGUI will simply disappear. Events are still being triggered though.

See attached screenshots where i change between "none" to "LightweightRenderPipelineAsset".
The last picture is a screenshot of the "Asset", I've clicked all button and tweaked every knob. Nothing makes NoesisGUI visible.

Unity version: 2018.3.5f1
Tags: LightweightRenderPipeline, Unity
Steps To Reproduce:
Additional Information:
Attached Files: WeChat Image_20190530180940.png (109,271 bytes) 2019-05-30 12:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1021&type=bug
WeChat Image_20190530180950.png (155,821 bytes) 2019-05-30 12:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1022&type=bug
WeChat Image_20190530181029.png (36,793 bytes) 2019-05-30 12:25
https://www.noesisengine.com/bugs/file_download.php?file_id=1023&type=bug
Notes
(0005689)
jsantos   
2019-05-30 13:30   
Unity 2019 is required for LWRP.
(0005690)
cyberfox   
2019-05-31 05:17   
that fixed it thanks.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1483 [NoesisGUI] Unreal crash sometimes 2019-06-01 11:27 2019-06-01 20:26
Reporter: Dreika Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Excellent coding in conjunction with Ue4!
Description: I was looking for how to make <bb> forum codes for text style in the game chat. I bought plug-ins for replacing the interface, and finding their delay when dragging elements (they were breaking away from the cursor during sudden movements) refused. At first, I was pleased with Xaml. I didn’t see how inconvenient it is to implement <table> <tr> <td> </ td> </ tr> </ table> in it, well, it's tolerable because <Grid> is faster. But after seeing how dragging is implemented in a non-working Inventory project, I returned to the unloved s ++ !!! I'd better look for a paid coder to create a StyleText plugin where Slate Widget WrapText will take an array of style structures
Text:
it can be a wavy line, it’s a dotted line, and it can be a text rinht) (fill or up or center or down) (0 = before text or 1 = behind text) "
<span color = "# ffffffff" size = "20" filled = "texture #fffffff fill fill 0" hower = "color =" # ffffffff "size =" 20 "filled =" texture #ffffffff fill 1 ""> fill fill texture0 = before text. </>

Do not ask the developers of Ue4 to study c++ !!!, because basically this engine is chosen because of the easy programming, which you have managed to complicate by creating programs for each with c++ !!!
Tags: UE4
Steps To Reproduce: Open tutorial T_T!!!
Additional Information:
Attached Files: tyt.png (1,464,872 bytes) 2019-06-01 11:27
https://www.noesisengine.com/bugs/file_download.php?file_id=1026&type=bug
Notes
(0005691)
jsantos   
2019-06-01 11:38   
Hi Dreika, I am not sure to understand the purpose of this ticket. What should be fixed to close this report?
(0005692)
Dreika   
2019-06-01 20:26   
Unreal Engine 4 project can be with c++ but should not contain additional with c++ files if you are not eager to edit the examples under Ue4 every time. C ++ is not well tolerated at the moment. Make the version without c ++ classes on Inventory (in the plugin create all the missing behavior on the transfer in blueprint)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1481 [NoesisGUI] Unreal feature always 2019-05-30 21:02 2019-05-30 21:33
Reporter: Dreika Platform:  
Assigned To: hcpizzi OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Add Noesis to CanvasPanel Widget on EventPreConstruct = Crash
Description: Add Noesis to CanvasPanel Widget on EventPreConstruct = Crash fix please
Tags: UE4
Steps To Reproduce: Add Noesis to CanvasPanel Widget on EventPreConstruct = Crash
Additional Information:
Attached Files: Noesis.png (181,923 bytes) 2019-05-30 21:02
https://www.noesisengine.com/bugs/file_download.php?file_id=1024&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1477 [NoesisGUI] C++ SDK minor always 2019-05-27 11:26 2019-05-29 01:12
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Any
Summary: Can't write more than one character in an editable ComboBox
Description: As explained in the following post:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1689
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1445 [NoesisGUI] Unity3D feature always 2019-04-06 16:10 2019-05-25 10:35
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Unity Sample Demonstrating Render Target Alpha Blend
Description: This is a feature request and not an issue. I am hoping that the Unity render target texture sample might be extended to demonstrate how to accomplish premultiplied alpha for placement of a transparent Unity/Noesis texture within a Noesis UI. There is a forum thread here discussing my attempt at this so far: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1615

Thank you in advance for your consideration of this addition to the samples library.

Thanks,
Shaun
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005686)
stonstad   
2019-05-21 22:20   
Noesis does this fine -- I had some shaders that were forcing alpha to 1, and this was the cause of the behaviors I was seeing. No issues here, I'm good for us to close this if you are.
(0005687)
jsantos   
2019-05-25 10:35   
Thank you!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1452 [NoesisGUI] C# SDK crash random 2019-04-23 21:49 2019-05-21 13:32
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Any
Summary: Noesis Crashes Unity Sometimes When Editor Window Resizes
Description: When I maximize the editor Unity sometimes crashes. I submitted a dump to Unity and the team responded that Noesis.dll was the cause. It happened today and I am including an editor dmp w/ log for review.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-04-23_194605952.zip (418,849 bytes) 2019-04-23 21:49
https://www.noesisengine.com/bugs/file_download.php?file_id=1010&type=bug
Notes
(0005637)
jsantos   
2019-04-23 23:56   
Thanks for the report. I will have a look at it later today.
(0005638)
jsantos   
2019-04-23 23:57   
Could you provide more context? Like, is this happening in Play mode or not, etc...
(0005644)
jsantos   
2019-04-25 19:12   
The information available in the dump is quite confusing. Could you please attach more minidumps and describe with all the precision you can how this is happening? Thanks!
(0005646)
stonstad   
2019-04-26 17:21   
Hi Jsantos --

It happens during stopped mode. The crash occurs randomly when I change dimensions of the Unity editor window on Windows 10. It happens often enough that I think I could record the process -- but I don't know if it would help diagnostically. Are there other things I can share? Or perhaps if I do it a second time the Editor minidump might contain more useful information? I'm happy to help -- just let me know. Thanks, Shaun.
(0005649)
stonstad   
2019-04-29 20:31   
I think this is a duplicate of 1459. The workflow is click play once.... and then stop the player. After, any one of the following actions causes Noesis.dll to throw a fatal exception: minimize, maximize, and play.
(0005676)
jsantos   
2019-05-14 23:26   
Is this a duplication of 0001459 then?
(0005684)
stonstad   
2019-05-21 13:31   
Yes, I believe so. Since I started using the patched version I have not seen this behavior.
(0005685)
jsantos   
2019-05-21 13:32   
Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1424 [NoesisGUI] C++ SDK minor always 2019-03-14 10:27 2019-05-14 23:39
Reporter: realesmedia Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b10  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Windows
Summary: crash on closing the window (NoesisApp::Window)
Description: We use a multi-window interface. When you close the window using the Close () method, crash occurs in the destructor

..Src\Packages\App\ApplicationLauncher\Src\window.cpp

Window::~Window()
{
    mClosed(this, EventArgs::Empty);

    if (mDisplay != 0)
    {
        mDisplay->LocationChanged() -= MakeDelegate(this, &Window::OnDisplayLocationChanged); !!!!! Crash
        . . .
    }
}

void Window::Close()
{
    if (mDisplay != 0)
    {
        mDisplay->Close();
       mDisplay = nullptr; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
}
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files: screen.jpg (1,468,819 bytes) 2019-04-08 15:50
https://www.noesisengine.com/bugs/file_download.php?file_id=1008&type=bug
Notes
(0005589)
jsantos   
2019-04-02 20:20   
Sorry, I am not following here. Could you please elaborate a bit more about where the crash is happening? What display implementation are you using?

I just tried in one of our examples doing a manual close and everything is working fine (Windows 10)
(0005616)
realesmedia   
2019-04-08 15:50   
Hi

I inherit from NoesisApp::Window. I create several dialog windows. if you close the window using the Window::Close() method, then ~Window () will crash.


fix method
NoesisApp::Window::Close()
{
    if (mDisplay != 0)
    {
        mDisplay->Close();
        mDisplay = nullptr; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
}
(0005617)
jsantos   
2019-04-08 16:19   
What crash are you getting if you don't set mDisplay to nullptr? Could you please paste the callstack?
(0005619)
realesmedia   
2019-04-09 16:32   
if mDisplay is not set to nullptr, the destructor tries to unsubscribe from the events mDisplay

..Src\Packages\App\ApplicationLauncher\Src\window.cpp

Window::~Window()
{
    mClosed(this, EventArgs::Empty);

    if (mDisplay != 0) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    {
        mDisplay->LocationChanged() -= MakeDelegate(this, &Window::OnDisplayLocationChanged); !!!!! Crash
        . . .
    }
}
(0005623)
jsantos   
2019-04-10 13:51   
Yes, but I don't understand why unsubscribing is crashing when using two windows. Could you please paste the callstack when crashing?
(0005624)
realesmedia   
2019-04-10 14:41   
(Last edited: 2019-04-10 14:46)
Does not depend on the number of windows. after calling Window :: Close () mDisplay is destroyed. ~ Windows () tries to access it.

System:
Windows 10, DX11, (Win32Display)

(0005625)
realesmedia   
2019-04-10 14:56   
(Last edited: 2019-04-10 15:06)
Dump

https://yadi.sk/d/j3ii39MeZAi8cQ

(0005626)
jsantos   
2019-04-10 14:59   
Our Window::Close does not destroy the display
void Window::Close()
{
    if (mDisplay != 0)
    {
        mDisplay->Close();
    }
}


So I am not sure how the crash is happening. I tried reproducing the issue.

I need a callstack with the crash please, not a dump.

Thanks!
(0005627)
realesmedia   
2019-04-10 15:15   
ucrtbased.dll!00007ffe87387f65() Unknown Non-user code. Cannot find or open the PDB file.
     ucrtbased.dll!00007ffe87388103() Unknown Non-user code. Cannot find or open the PDB file.
     ucrtbased.dll!00007ffe8739d7dd() Unknown Non-user code. Cannot find or open the PDB file.
     vcruntime140d.dll!00007ffe96629051() Unknown Non-user code. Cannot find or open the PDB file.
     NoesisApp.dll!Noesis::Delegate<void __cdecl(NoesisApp::Display *,int,int)>::Remove(const Noesis::Delegate<void __cdecl(NoesisApp::Display *,int,int)> & d={...}) Line 137 C++ Symbols loaded.
     NoesisApp.dll!Noesis::Delegate<void __cdecl(NoesisApp::Display *,int,int)>::operator-=(const Noesis::Delegate<void __cdecl(NoesisApp::Display *,int,int)> & d={...}) Line 143 C++ Symbols loaded.
> NoesisApp.dll!NoesisApp::Window::~Window() Line 71 C++ Symbols loaded.
     Engine.dll!Miracle::Gui::WindowEx::~WindowEx() Line 334 C++ Symbols loaded.
     Engine.dll!Docking::LayoutWindow::~LayoutWindow() C++ Non-user code. Symbols loaded.
     Engine.dll!Docking::LayoutWindow::`vector deleting destructor'(unsigned int) C++ Non-user code. Symbols loaded.
     Noesis.dll!00007ffe655a1516() Unknown Non-user code. Cannot find or open the PDB file.
     Engine.dll!Docking::LayoutWindow::Release() Line 17 C++ Symbols loaded.
     Engine.dll!Docking::DockManager::CreateLayoutWindow::__l2::<lambda>() Line 199 C++ Symbols loaded.
     Engine.dll!std::_Invoker_functor::_Call<void <lambda>(void) &>(Docking::DockManager::CreateLayoutWindow::__l2::void <lambda>(void) & _Obj=void <lambda>(void){...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::invoke<void <lambda>(void) &>(Docking::DockManager::CreateLayoutWindow::__l2::void <lambda>(void) & _Obj=void <lambda>(void){...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Invoker_ret<void,1>::_Call<void <lambda>(void) &>(Docking::DockManager::CreateLayoutWindow::__l2::void <lambda>(void) & <_Vals_0>=void <lambda>(void){...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Func_impl_no_alloc<void <lambda>(void),void>::_Do_call() C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Func_class<void>::operator()() C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Invoker_functor::_Call<std::function<void __cdecl(void)> &>(std::function<void __cdecl(void)> & _Obj={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::invoke<std::function<void __cdecl(void)> &>(std::function<void __cdecl(void)> & _Obj={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Invoker_ret<std::_Unforced,0>::_Call<std::function<void __cdecl(void)> &>(std::function<void __cdecl(void)> & <_Vals_0>={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Call_binder<std::_Unforced,std::function<void __cdecl(void)>,std::tuple<>,std::tuple<> >(std::_Invoker_ret<std::_Unforced,0> __formal={...}, std::integer_sequence<unsigned __int64> __formal={...}, std::function<void __cdecl(void)> & _Obj={...}, std::tuple<> & _Tpl={...}, std::tuple<> && _Ut={...}) Line 1859 C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &>::operator()<>() Line 1914 C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Invoker_functor::_Call<std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> &>(std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> & _Obj={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::invoke<std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> &>(std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> & _Obj={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Invoker_ret<void,1>::_Call<std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> &>(std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &> & <_Vals_0>={...}) C++ Non-user code. Symbols loaded.
     Engine.dll!std::_Func_impl_no_alloc<std::_Binder<std::_Unforced,std::function<void __cdecl(void)> &>,void>::_Do_call() C++ Non-user code. Symbols loaded.
     Globals.dll!std::_Func_class<void>::operator()() C++ Non-user code. Symbols loaded.
     Globals.dll!Global::Dispatcher::Update(float global_time=7.90762854) Line 13 C++ Symbols loaded.
     Engine.dll!MiracleEngine::Update() Line 267 C++ Symbols loaded.
     Engine.dll!MiracleEngine::Run() Line 344 C++ Symbols loaded.
     Miracle.exe!WinMain(HINSTANCE__ * hInstance=0x00007ff71c9d0000, HINSTANCE__ * hPrevInstance=0x0000000000000000, char * lpCmdLine=0x000001e9c1d05557, int nCmdShow=10) Line 78 C++ Symbols loaded.
     Miracle.exe!invoke_main() Line 107 C++ Non-user code. Symbols loaded.
     Miracle.exe!__scrt_common_main_seh() Line 288 C++ Non-user code. Symbols loaded.
     Miracle.exe!__scrt_common_main() Line 331 C++ Non-user code. Symbols loaded.
     Miracle.exe!WinMainCRTStartup() Line 17 C++ Non-user code. Symbols loaded.
     kernel32.dll!00007ffec33b3dc4() Unknown Non-user code. Cannot find or open the PDB file.
     ntdll.dll!00007ffec5ce3691() Unknown Non-user code. Cannot find or open the PDB file.
(0005628)
realesmedia   
2019-04-10 15:23   
Window()::Close() -> Win32Display()-> SendMessage(mWindowHandle, WM_CLOSE, 0, 0); -> ~Win32Display()

~Window() mDsiplay(Win32Display) destroed
(0005629)
realesmedia   
2019-04-10 16:29   
excuse this in our inherited class WindowEx :: Close is called Display.Reset (). This is a feature of the implementation of our WindowsEx. Using the WindowEx class is similar to using the WPF Window. I inherited the WindowEx class from NoesisApp :: Window and made members of the Display class and the RenderContext class. This works fine, but when I close the window, I cannot notify Window that Display has been destroyed, As a variant remove unbind mDisplay in the method Window::Shutdown ()

simplified WindowEx:


    class ENGINE_API WindowEx : public NoesisApp::Window
    {
        using Base = NoesisApp::Window;
        using This = WindowEx;

    public:

        WindowEx() {
                         Noesis::GUI::LoadComponent(this, "Global/GUI/Windows/WindowEx.xaml");
                         Initialize();
                 }

        virtual ~WindowEx();

        void Show(bool activate=true);
        void ShowDialog();
        void Hide();

                void Initialize()
                {
               m_display = NoesisApp::CreateDisplay();
               m_render_context = NoesisApp::RenderContext::Create("D3D11");
              m_render_context->Init(m_display->GetNativeHandle(), Global::api.gfx->GetDX11RenderContext(), Noesis::Device::Get(), m_samples, false, true);
            m_render_context->Resize();

             Base::Init(m_display, m_render_context, eastl::max_alt(m_samples, 1U), m_ppaa);
               }

        void Shutdown() {
                         Base::Shutdown();
                  m_display.Reset();
                   m_render_context->Shutdown();
                  m_render_context.Reset();
                }

        void Close() {
              Base::Close();
              Shutdown();
                  }

    protected:
        Noesis::Ptr<NoesisApp::Display> m_display;
        Noesis::Ptr<NoesisApp::RenderContext> m_render_context;

        NS_DECLARE_REFLECTION(This, Base)
    };
(0005630)
jsantos   
2019-04-10 16:32   
So there is nothing wrong at our code right? Can we close this?
(0005631)
realesmedia   
2019-04-10 16:46   
Yes. Only if it is possible to transfer the ~ Window() code to Window::Shutdown()

thanks
(0005632)
jsantos   
2019-04-10 16:57   
Yes, that makes sense. Moving the code from the destructor to the end of Shutdown().

Could you try it and let me know if it works for you?
(0005633)
realesmedia   
2019-04-10 16:59   
I tested this option. works good)))


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1466 [NoesisGUI] C++ SDK major always 2019-05-13 14:42 2019-05-14 17:13
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Windows
Summary: double clicking on treeviewItem collapses root node
Description: Noesis 2.2.1&2.2.2

XamlPlayer open TreeView.xaml (Noesis 2.2.1 SDK samples)

double clicking on a node collapses root node
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1467 [NoesisGUI] C++ SDK major always 2019-05-13 19:31 2019-05-14 10:12
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ScrollViewer mouse wheel scroll does not work if the mouse is over a child ScrollViewer
Description: There is a problem with ScrollViewer on element inside another ScrollViewer. If mouse hovers on child ScrollViewer, parent ScrollViewer don't get mouse-wheel-scroll, even if child has nothing to scroll and scrollbars on it are invisible

if after the start of scrolling the cursor is over the element containing the ScrollViewer, then the scrolling is frozen

P.S.
Checked in WPF, similar behavior. How to make scrolling in this case?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: TreeView.xaml (20,120 bytes) 2019-05-13 19:31
https://www.noesisengine.com/bugs/file_download.php?file_id=1017&type=bug
Notes
(0005673)
sfernandez   
2019-05-14 01:12   
Hi,

Yes, this is the behavior of WPF also.
Usually when you have nested lists, the inner one doesn't need to scroll. So the solution is to provide a different template for that inner list that doesn't have a ScrollViewer.
This way the wheel event will reach the outer list's ScrollViewer without problems.

Could you try that?
(0005674)
realesmedia   
2019-05-14 10:12   
Hi,

ok let's try

thank


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1464 [NoesisGUI] C# SDK minor N/A 2019-05-10 20:16 2019-05-10 20:35
Reporter: ai_enabled Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Any
Summary: GoToStateAction FindStateGroup wrong implementation?
Description: Hi guys,

https://github.com/Noesis/Managed/blob/4af4b9eae10395b19f8603e880c6425be0b99780/Src/NoesisApp/Core/Src/Interactivity/GoToStateAction.cs#L84

Looks like you're always returning null. What's the point of this method, then?

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005672)
sfernandez   
2019-05-10 20:35   
You're right, this is a bug, part of the code in that function is missing, it should be like this:
private FrameworkElement FindStateGroup(FrameworkElement context)
{
    if (context != null)
    {
        FrameworkElement current = context;
        FrameworkElement parent = context.Parent;

        while (!HasStateGroup(current) && ShouldWalkTree(parent))
        {
            current = parent;
            parent = parent.Parent;
        }

        if (HasStateGroup(current))
        {
            FrameworkElement templatedParent = current.TemplatedParent;
            if (templatedParent != null && templatedParent is Control)
            {
                return templatedParent;
            }
            if (parent != null && parent is UserControl)
            {
                return parent;
            }

            return current;
        }
    }

    return null;
}

Will appear fixed in next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1462 [NoesisGUI] Unity3D major always 2019-05-08 07:29 2019-05-08 19:57
Reporter: cyberfox Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Windows
Summary: Upside down images on OpacityMask
Description: In VisualStudio it shows normally but in U3D it's upside down.
Check attached image.

Note: <Image> is functioning normally
Tags: Unity
Steps To Reproduce: <UserControl x:Class="NoesisUI.Assets.UI.Test.Test"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:designerui="clr-namespace:NoesisUI.Assets.UI.Views.DesignerUI"
             mc:Ignorable="d"
             d:DesignHeight="256" d:DesignWidth="256">
    <Grid Background="White">
        <Grid Background="Black">
            <Grid.OpacityMask>
                <ImageBrush ImageSource="/NoesisUI;component/Assets/Resources/Images/UIComponents/Icon_Map.png" Stretch="Uniform" />
            </Grid.OpacityMask>
        </Grid>
    </Grid>
</UserControl>
Additional Information:
Attached Files: WeChat Screenshot_20190508131445.png (291,184 bytes) 2019-05-08 07:29
https://www.noesisengine.com/bugs/file_download.php?file_id=1014&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1459 [NoesisGUI] Unity3D crash always 2019-04-29 19:24 2019-04-30 18:20
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.3  
    Target Version: 2.2.3  
Platform: Any
Summary: Noesis DLL Crash on Alt-Tab to Unity or Play Clicked
Description: I am using Unity 2019.1.0f2 with Noesis 2.2.2. This happens with 2.2.1 as well.

The Unity editor is fatally crashing every time I alt-tab into the editor or play, stop, and hit play again. Here is the last thing in the Unity editor file.

Refresh: detecting if any assets need to be imported or removed ...

Refresh Completed time: 0.239306s
Asset Scan time: 0.235643s
Asset Hashing: 0.000000s [0 B, 0.000000 mb/s]
Asset Import (Scripting) time: 0.000000s (count: 0)
Post Processs Assets (Scripting) time: 0.000000s
Asset Rehashing: 0.000000s [0 B, 0.000000 mb/s]
Asset Import (Non Scripting) time: 0.000000s (count: 0)
Post Process Assets (Non Scripting) time: 0.000000s
Dependent Assets to Import Queue time: 0.000000s

Reloading assemblies for play mode.
Begin MonoManager ReloadAssembly

Unity does not create a crash dump. I attached Visual Studio to Unity.exe to get the exception and call stack without symbols. I'm including a dump file.

Fatal crash details (no symbols): https://i.imgur.com/8FJ94te.png
Fatal crash call stack (no symbols): https://i.imgur.com/s9cW8gp.png

This issue is causing significant work stoppage due to the frequency and criticality of the error.

Tags:
Steps To Reproduce: I'm sure this is project specific. Let me know if the dump file is not sufficient.
Additional Information:
Attached Files: Unity.dmp (1,378,367 bytes) 2019-04-29 19:24
https://www.noesisengine.com/bugs/file_download.php?file_id=1013&type=bug
Notes
(0005650)
stonstad   
2019-04-29 20:32   
This happens when l play once (successfully). I then stop playback. Now, if I alt-tab away and back, minimize, maximize, or hit play again, the editor crashes. Noesis.dll throws a fatal exception corresponding to the minidump shared above.
(0005651)
stonstad   
2019-04-30 03:08   
I can try with a debug build or with symbols is it is helpful to you.
(0005655)
sfernandez   
2019-04-30 09:30   
The crash dump points me it is related with the View.Rendering event, could you please confirm you are using it in your game?
If you remove all the handlers subscribed to the event, are the crashes no longer happening?
(0005658)
sfernandez   
2019-04-30 14:31   
We were able to reproduce the crash and fix it, could you please try the following library (win-x86_64) and confirm it is working for you:
https://drive.google.com/open?id=1ok2dsFzrIrjlyRTx1S-wd4VcqfkanpRW
(0005659)
stonstad   
2019-04-30 15:25   
Yes! I can confirm the fix and the workflow is resolved.

re: Rendering event. I do hook this event but I made sure to disable it during testing. Before trying the new DLL I retested and commented out all event subscription for Rendering (and it still crashed). I have log statements to make sure I unregister View.Rendering when the event consumer/UserControl is unloaded.

Thank you for the quick turn around -- I am very grateful for your timely assistance resolving this!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1456 [NoesisGUI] C# SDK major always 2019-04-25 22:18 2019-04-26 12:40
Reporter: dstroup Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Linux
Summary: BitmapImage strips leading "/" in paths on Linux
Description: Similar to issue 0001455, passing an absolute path to Noesis.BitmapImage results in FileTextureProvider::OpenStream called without the leading "/" when on Linux.

This used to work in 2.2.0, but is broken in 2.2.1.
Tags:
Steps To Reproduce: Calling this:
Noesis.BitmapImage bitmapImage = new Noesis.BitmapImage(new Uri("/home/user/image.bmp"));

Results in a FileNotFoundException because the path provided to the FileTextureProvider is missing the leading "/"
    public class FileSystemTextureProvider : FileTextureProvider
    {
        public FileSystemTextureProvider()
        {
        }

        public override Stream OpenStream(string path)
        {
            return new FileStream("home/user/image.bmp", FileMode.Open, FileAccess.Read); // Crash due to missing "/"
        }
    }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1455 [NoesisGUI] C# SDK major always 2019-04-24 19:36 2019-04-25 19:24
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Windows
Summary: BitmapImage support for spaces in path broken in 2.2.1
Description: Passing a path with a space to Noesis.BitmapImage results in FileTextureProvider::OpenStream called with %20
This use to work in 2.2.0, but is broken in 2.2.1
Tags:
Steps To Reproduce: Calling this:
Noesis.BitmapImage bitmapImage = new Noesis.BitmapImage(new Uri("C:\\Test Space\\image.bmp));

Results in a FileNotFoundException because the path provide by the FileTextureProvider converts the space to a %20
    public class FileSystemTextureProvider : FileTextureProvider
    {
        public FileSystemTextureProvider()
        {
        }

        public override Stream OpenStream(string path)
        {
            return new FileStream("C:\Test%20Space\image.bmp", FileMode.Open, FileAccess.Read); // Crash due to space converted to %20
        }
    }
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1378 [NoesisGUI] C++ SDK minor have not tried 2018-12-18 14:22 2019-04-25 18:01
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: PointToScreen doesn't throw error if element is connected to visual tree
Description: PointToScreen and PointFromScreen functions should throw errors on elements not connected to visual tree.
And TransformToAncestor and similar should also throw errors instead of using asserts if visuals are not related or connected to the visual tree.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1542&p=8842
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1423 [NoesisGUI] C++ SDK major always 2019-03-12 15:53 2019-04-25 18:00
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: ToolTipService.SetToolTip on ListBoxItem Causes Crash
Description: ListBoxItem lb = _Root.FindName("_lb") as ListBoxItem;
ToolTipService.SetToolTip(lb, new ToolTip());

// crash!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: crash.zip (332,026 bytes) 2019-03-13 22:05
https://www.noesisengine.com/bugs/file_download.php?file_id=986&type=bug
Notes
(0005521)
stonstad   
2019-03-12 15:59   
Please close this issue -- it was caused by a null parameter being passed to SetToolTip.
(0005523)
jsantos   
2019-03-12 19:16   
Was this crashing (restarting) Unity? If affirmative then we need to solve that.
(0005524)
stonstad   
2019-03-13 19:29   
Yes -- it crashes Unity. Seems to be two separate behaviors. 1) Sending in null to SetToolTip causes a crash. and 2) FindName for a listboxitem seems to always returns null.
(0005526)
stonstad   
2019-03-13 22:05   
encl. crash .dmp for above issue.
(0005529)
jsantos   
2019-03-14 00:46   
@sfernandez, this is the native code crashing (obj is null)
void ToolTipService::SetToolTip(DependencyObject* obj, BaseComponent* toolTip)
{
    NS_ASSERT(obj);
    obj->SetValue<Ptr<BaseComponent> >(ToolTipProperty, toolTip);
}


By the way, the check against NULL must be done at C#, not in C++, where asserts are being used.
(0005557)
stonstad   
2019-03-25 19:15   
Sure thing, no problem. Just curious -- why does it crash instead of throw an exception?
(0005641)
sfernandez   
2019-04-25 18:00   
It was crashing because the native code wasn't checking if the input parameter was null, so an unhandled exception was generated closing Unity.
We added checks for all the attached properties functions so proper exceptions are thrown in C# code.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1453 [NoesisGUI] C++ SDK minor N/A 2019-04-24 01:47 2019-04-24 12:15
Reporter: mingingmingler Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Minor inconsistency in naming convention in native API
Description: Hi, was just integrating the native API into a project and noticed the following 3 lines in NsGui\Style.h:

typedef Noesis::UICollection<Noesis::BaseSetter> BaseSetterCollection;
typedef Noesis::UICollection<Noesis::BaseTrigger> TriggerCollection;
typedef Noesis::UICollection<Noesis::Condition> ConditionCollection;

It seems according to this convention, TriggerCollection should've been named BaseTriggerCollection. This may circumstantially conflict with TriggerCollection in the interactivity API. Fairly sure I spotted this in a couple other files but I forgot which ones they were. Not sure if a problem, thought I'd raise it anyway.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005639)
sfernandez   
2019-04-24 12:15   
Those names try to match WPF names:
https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/SetterBaseCollection.cs,8020cc19a945707b
https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/TriggerCollection.cs,dfc0f5bbfc1fa6bb
https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/ConditionCollection.cs,cab4a775ebf6bf82

Although it is true we should change some of our base class names in C++ API to exactly match WPF to avoid any confusion (we already did that in C# API):
BaseTrigger -> TriggerBase
BaseSetter -> SetterBase
BaseSetterCollection -> SetterBaseCollection
BaseButton -> ButtonBase
...


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
872 [NoesisGUI] Unity3D feature always 2016-04-20 18:38 2019-04-18 18:46
Reporter: kguner Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.5f11  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 2.2.0  
    Target Version:  
Platform: Any
Summary: Missing ItemsControl.AlternationCount Property
Description: Please implement this property.

https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.alternationcount(v=vs.110).aspx
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1122 [NoesisGUI] C++ SDK minor always 2017-06-30 02:47 2019-04-18 18:10
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: Errors when loading XAML
Description: From forum discussion: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1130

The following XAML (modified from the original version found in https://stackoverflow.com/a/11455413/1767995) cannot be loaded by NoesisGUI

        <Grid>
            <Grid.Resources>
                <RoutedUICommand x:Key="MyCommand1" Text="Text" />
                <RoutedUICommand x:Key="MyCommand2" Text="Another Text" />
            </Grid.Resources>

            <Grid.CommandBindings>
                <CommandBinding Command="{StaticResource MyCommand1}"
                    Executed="FirstMethod" />
                <CommandBinding Command="{StaticResource MyCommand2}"
                    Executed="SecondMethod" />
            </Grid.CommandBindings>

            <Grid.InputBindings>
                <KeyBinding Key="Z" Modifiers="Ctrl" Command="{StaticResource MyCommand1}" />
                <KeyBinding Key="H" Modifiers="Alt" Command="{StaticResource MyCommand2}" />
            </Grid.InputBindings>

            <StackPanel>
                <Button x:Name="btn1" Command="{StaticResource MyCommand1}" Content="Click me" />
                <Button x:Name="btn2" Command="{StaticResource MyCommand2}" Content="Click me" />
            </StackPanel>
        </Grid>

- RoutedUICommand class is not available to be used directly in the xaml.
- CommandBinding cannot use StaticResources to set the Command property.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1380 [NoesisGUI] Unity3D feature always 2018-12-22 04:30 2019-04-18 17:16
Reporter: elecman Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Request support to read Canvas.Top and Canvas.Left form a text block
Description: A text block can have a Canvas.Left and Canvas.Top property like this:

<TextBlock Name="speed_C" Text="300" FontFamily="#AirbusMCDUa" FontSize="10.8030383017496" Foreground="White" Canvas.Left="4.21134486413502" Canvas.Top="133.007815201125"/>

Currently the API does not allow reading these properties in a TextBlock
Tags: Unity
Steps To Reproduce: -Create a TextBlock with a Canvas.Top and Canvas.Left property.

-In Unity, use try to get access to these properties in code. This is not possible.
Additional Information:
Attached Files:
Notes
(0005376)
sfernandez   
2018-12-24 10:37   
(Last edited: 2018-12-24 10:38)
Hi,

Canvas.Left and Canvas.Top are attached properties, defined in the Canvas panel class.
There are two ways to get the value of these properties from a specific instance (of any dependency object type):

- Using public Canvas static methods:
float left = Canvas.GetLeft(element);
Canvas.SetLeft(element, newLeft); // to set the value

- Using the generic GetValue/SetValue from DependencyObject:
float left = (float)element.GetValue(Canvas.LeftProperty);
element.SetValue(Canvas.LeftProperty, newLeft); // to set the value

Do you have any trouble using any of these?



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1361 [NoesisGUI] C++ SDK minor always 2018-11-24 23:07 2019-04-18 16:51
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: GridView's ColumnHeaderContainerStyle changes in Blend but not in Noesis.
Description: Reference: https://www.noesisengine.com/forums/viewtopic.php?f=3&p=8694#p8694
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
699 [NoesisGUI] C++ SDK minor N/A 2015-08-03 14:56 2019-04-18 16:49
Reporter: themirrortruth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.0  
    Target Version:  
Platform: Any
Summary: C++ API VisualTreeHelper.HitTest()
Description: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=761

And whether it is possible to implement this method in C#?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002815)
sfernandez   
2015-08-03 16:26   
(Last edited: 2015-08-03 16:27)
We will implement the following version of the HitTest function in a future release:

https://msdn.microsoft.com/en-us/library/ms608753(v=vs.110).aspx

Meanwhile, if you are interested, I can show you a tricky (and inefficient) way to simulate that behavior using the available HitTest(visual, point) function.

(0002816)
themirrortruth   
2015-08-03 16:35   
Yes, I would like to know about it. Big thanks.
(0002818)
sfernandez   
2015-08-03 18:07   
(Last edited: 2015-08-03 18:08)
Here you are:

public enum HitTestResultBehavior
{
    // Continue hit testing against the next visual in the visual tree hierarchy.
    Continue,
    // Stop any further hit testing and return from the callback.
    Stop
}

public delegate HitTestResultBehavior HitTestResultCallback(HitTestResult result);

public static class VisualTreeHelperExtension
{
    public static void HitTest(Visual reference, Point point,
        HitTestResultCallback resultCallback)
    {
        List<KeyValuePair<UIElement, bool>> visible =
            new List<KeyValuePair<UIElement,bool>>();

        HitTestResult hit;
        Visual lastHit = null;
        do
        {
            hit = VisualTreeHelper.HitTest(reference, point);

            if (hit.visualHit != null &&
                resultCallback(hit) == HitTestResultBehavior.Continue)
            {
                lastHit = hit.visualHit;

                // Make this child invisible for HitTest, so other elements can be hit
                UIElement e = lastHit as UIElement;
                if (e != null)
                {
                    visible.Add(new KeyValuePair<UIElement, bool>(e, e.IsHitTestVisible));
                    e.IsHitTestVisible = false;
                }
            }
            else
            {
                lastHit = null;
            }
        }
        while (lastHit != null);

        // restore IsHitTestVisible
        foreach (var item in visible)
        {
            item.Key.IsHitTestVisible = item.Value;
        }
    }
}


(0005362)
nokola   
2018-12-10 19:22   
+1 for this fix. We do all kinds of workarounds to keep code efficient and working as expected (hardcoded naming for grids, using custom bounds to determine hit test, tagging elements in XAML.)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1449 [NoesisGUI] Unity3D trivial always 2019-04-08 14:50 2019-04-18 13:33
Reporter: shawn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: DataBinding of Uri property didn't work in Unity3d
Description: I writed a custom control with a Uri DependencyProperty.I created a databing when i used this control.It works fine on vs blend,but didn't work in Unity3d.
DataBinding of Uri property didn't work in Unity3d
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005635)
sfernandez   
2019-04-11 12:43   
Corresponding to this forum topic: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1653


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1420 [NoesisGUI] Unity3D major always 2019-03-08 13:52 2019-04-16 19:30
Reporter: Khonan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: Changing programmatically the Header text of a GridViewColumn has no effect
Description: Changing programmatically the Header text of a GridViewColumn has no effect.

Actually, changing anything on the Header has no effect. Hidding or changing Size of the header doesn't work either:

No Effect:
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="GridViewColumnHeader">
<Setter Property="Visibility" Value="Hidden"/>
</Style>
</GridView.ColumnHeaderContainerStyle>

but also : <Setter Property="Visibility" Value="Collapsed"/>
and even : <Setter Property="Height" Value="0"/>

Tags: GridViewColumn Header ColumnHeaderContainerStyle
Steps To Reproduce: My listview contains two column. Column 0 header is empty, column 1 Header is "TEST".
Doing the following don't change the header :
Code:
            Noesis.GridViewColumn gvc = ((GridView)m_ListView.View).Columns[1] as Noesis.GridViewColumn;
            gvc.Header = "Hello World";

While debuging Header is "Hello Word", But UI still display "TEST".
Additional Information:
Attached Files:
Notes
(0005530)
Khonan   
2019-03-14 10:40   
Tried using FrameworkElement.Visibility" but no success :

 <ListView.View>
                    <GridView>
                        <GridView.ColumnHeaderContainerStyle>
                            <Style>
                                <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
                            </Style>
                        </GridView.ColumnHeaderContainerStyle>

...


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
493 [NoesisGUI] Unity3D minor always 2014-11-16 20:26 2019-04-16 19:30
Reporter: movra Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: ListView without ListView.View section doesn't display items
Description: In Blend, Visual Studio and Kaxaml you can use a ListView as a ListBox and it will display the same.

In NoesisGUI if you don't add the ListView.View section, the rows will not contain any items and will not be affected by attributes like Height.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ListViewBoxTest.7z (687 bytes) 2014-11-16 20:26
https://www.noesisengine.com/bugs/file_download.php?file_id=374&type=bug
Notes
(0001775)
sfernandez   
2014-11-17 12:18   
I was able to reproduce it, thanks for reporting.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1429 [NoesisGUI] Unity3D crash random 2019-03-18 09:10 2019-04-16 10:59
Reporter: shawn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.2  
Platform: Any
Summary: unity2018 crash
Description:    For example:
        private void OnInitialized(object sender, EventArgs args)
        {
#if NOESIS
            vm = new MyViewModle();

            MyAnimal animal1 = new MyAnimal() { Name = "Cat", Image = new TextureSource(AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/cat.jpg")) };
            MyAnimal panda = new MyAnimal() { Name = "Panda", Image = new TextureSource(AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/panda.jpg")) };
            vm.Animals.Add(animal1);
            vm.Animals.Add(panda);

            this.DataContext = vm;
#endif
        }

if some pictures are not exist there will throw a nullRef exception, and then I exited the play mode and play it again, the unity editor sometimes crash
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-03-18_055759309.zip (236,512 bytes) 2019-03-18 09:10
https://www.noesisengine.com/bugs/file_download.php?file_id=990&type=bug
Crashes.zip (650,957 bytes) 2019-04-10 04:57
https://www.noesisengine.com/bugs/file_download.php?file_id=1009&type=bug
Notes
(0005538)
shawn   
2019-03-18 09:13   
unityVersion:2018.3.7f1(.3.6;.2.1 etc...)
noesisVersion:2.2.0
(0005572)
jsantos   
2019-03-29 01:11   
(Last edited: 2019-03-29 01:12)
@sfernandez crash is happening here (root (mView->GetContent()) is NULL.)

Visual* Visual::GetRoot() const
{
    Visual* root = IsConnectedToView() ? (Visual*)mView->GetContent() : const_cast<Visual*>(this);

>>  while (root->mVisualParent != 0)
    {
        root = root->mVisualParent;
    }

    return root;
}

Stacktrace:
>	Noesis.dll!Noesis::Visual::GetRoot() Line 436	C++
     Noesis.dll!Noesis::Popup::HidePopup() Line 561	C++
     Noesis.dll!Noesis::Popup::OnDisconnectFromView() Line 298	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 710	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 713	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 713	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 713	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 713	C++
     Noesis.dll!Noesis::Visual::OnDisconnectFromViewChildren() Line 713	C++
     Noesis.dll!Noesis::Visual::DisconnectFromView() Line 195	C++
     Noesis.dll!Noesis::View::~View() Line 293	C++


(0005573)
jsantos   
2019-03-29 01:36   
Is this crash happening randomly or is it deterministic?
(0005587)
sfernandez   
2019-04-02 01:22   
Is it possible that the crash occurred when you tried to change a scene or exited the play mode while a popup was still open?
I think the crash is not related at all to images not being found, but popus given the crash callstack, could that be the case?
(0005595)
sfernandez   
2019-04-05 12:39   
Could you please try 2.2.1 version, we fixed a bug related to popups and I think it will solve your problems.
Thanks.
(0005615)
shawn   
2019-04-08 13:39   
thank you! i am trying 2.2.1 version! i'll feedback here if i encounter a problem
(0005620)
shawn   
2019-04-10 04:57   
would you see those crashes please
(0005621)
sfernandez   
2019-04-10 13:42   
@jsantos Could you help with these callstacks?
In the first one the 'resource' pointer seems to be null.
The second callstack refers to a crash in Unity without Noesis being involved, but it could be related to the first crash.

 	Noesis.dll!SetDebugObjectName(ID3D11DeviceChild * resource, const char * str, ...) Line 117	C++
>	[Inline Frame] Noesis.dll!NoesisApp::D3D11RenderDevice::AllocatePage(NoesisApp::D3D11RenderDevice::DynamicBuffer &) Line 870	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::CreateBuffer(NoesisApp::D3D11RenderDevice::DynamicBuffer & buffer, unsigned int size, D3D11_BIND_FLAG flags, const char * label) Line 896	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::CreateBuffers() Line 909	C++
     Noesis.dll!NoesisApp::D3D11RenderDevice::D3D11RenderDevice(ID3D11DeviceContext * context, bool sRGB) Line 343	C++
     Noesis.dll!NoesisApp::D3D11Factory::CreateDevice(ID3D11DeviceContext * context, bool sRGB) Line 21	C++
     Noesis.dll!Noesis::UnityDeviceD3D11::UnityDeviceD3D11(IUnityInterfaces * unityInterfaces, bool sRGB) Line 38	C++
     [Inline Frame] Noesis.dll!`anonymous-namespace'::DeviceInitialize::__l5::<lambda_19a8d8fc18ebce0158ac87709b130cfd>::operator()() Line 155	C++
     Noesis.dll!<lambda_19a8d8fc18ebce0158ac87709b130cfd>::<lambda_invoker_cdecl>() Line 156	C++
     Noesis.dll!`anonymous namespace'::CreateDevice() Line 207	C++
     Noesis.dll!Noesis_GetRenderOffscreenCallback::__l2::<lambda>(int eventId, void * data) Line 391	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 1551	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::RunExt(ThreadedStreamBuffer & stream) Line 491	C++
     [Inline Frame] Unity.exe!GfxDeviceWorker::Run() Line 475	C++
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker(void * data) Line 454	C++
     Unity.exe!Thread::RunThreadWrapper(void * ptr) Line 76	C++


 	Unity.exe!D3D11CommonShader::ApplyGpuProgram(const GpuProgramParameters & params, const unsigned char * buffer, bool bindCBs) Line 184	C++
>	Unity.exe!GfxDeviceD3D11Base::SetShadersThreadable(GpuProgram * * programs, const GpuProgramParameters * * params, const unsigned char * const * paramsBuffer) Line 1260	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 772	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::CallImmediate(ThreadedDisplayList * dlist) Line 363	C++
     Unity.exe!GfxDeviceWorker::RunCommand(ThreadedStreamBuffer & stream) Line 2004	C++
     [Inline Frame] Unity.exe!ProcessGfxCommands(GfxDeviceWorker &) Line 161	C++
     Unity.exe!GfxDeviceWorker::RunExt(ThreadedStreamBuffer & stream) Line 491	C++
     [Inline Frame] Unity.exe!GfxDeviceWorker::Run() Line 475	C++
     Unity.exe!GfxDeviceWorker::RunGfxDeviceWorker(void * data) Line 454	C++
     Unity.exe!Thread::RunThreadWrapper(void * ptr) Line 76	C++
(0005622)
jsantos   
2019-04-10 13:45   
Could we please move these reports to different tickets giving more context about them? (to mark the original one as solved).

Thanks!
(0005634)
shawn   
2019-04-11 03:16   
of course!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1374 [NoesisGUI] Unity3D major always 2018-12-11 06:08 2019-04-15 20:33
Reporter: arukari Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Windows
Summary: NoesisGUIExtensions: PlaneProjection rotate OpacityMask
Description: Drawing is wrong when you rotate control using OpacityMask with PlaneProjection.
Rotation animation speed is also different.

Tags: Unity
Steps To Reproduce:                 <noesis:Element.Projection>
                    <noesis:PlaneProjection RotationX="45" RotationY="-30" RotationZ="-30" />
                </noesis:Element.Projection>

                            <Canvas ClipToBounds="True" Background="#8000FFFF">
                                <Canvas.OpacityMask>
                                    <ImageBrush ImageSource="radarMask2.png">
                                        <ImageBrush.RelativeTransform>
                                            <RotateTransform CenterX="0.5" CenterY="0.5" />
                                        </ImageBrush.RelativeTransform>
                                    </ImageBrush>
                                </Canvas.OpacityMask>
                                <Canvas.Triggers>
                                    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.OpacityMask).(Brush.RelativeTransform).(RotateTransform.Angle)" RepeatBehavior="Forever">
                                                    <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
                                                    <EasingDoubleKeyFrame KeyTime="0:0:4" Value="360"/>
                                                </DoubleAnimationUsingKeyFrames>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger>
                                </Canvas.Triggers>
                            </Canvas>

Compare Rotation Speed.
                <Line x:Name="RadarEllipse" X1="150" Y1="150" X2="300" Y2="150" Stroke="Cyan" StrokeThickness="1" RenderTransformOrigin="0,0">
                    <Line.RenderTransform>
                        <RotateTransform Angle="0" CenterX="150" CenterY="150"/>
                    </Line.RenderTransform>
                    <Line.Triggers>
                        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                            <BeginStoryboard>
                                <Storyboard>
<!-- Vertical inverted bug. -->
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Line.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="Forever" >
                                        <EasingDoubleKeyFrame KeyTime="0:0:4" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0" Value="360"/>
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Line.Triggers>
                </Line>
Additional Information:
Attached Files: 無題.png (89,116 bytes) 2018-12-11 06:08
https://www.noesisengine.com/bugs/file_download.php?file_id=951&type=bug
Notes
(0005541)
arukari   
2019-03-20 04:25   
I'm waiting for fix.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1373 [NoesisGUI] Unity3D major always 2018-12-10 13:11 2019-04-15 20:33
Reporter: arukari Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Windows
Summary: OpacityMask Vertically and Rotate Inverted.
Description: Reference:https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1535&p=8799#p8783
Tags: Unity
Steps To Reproduce: Bottom / Left Can not Rendered.

Rotation Test:
OpacityMask (Test Background Red Color)
                            <Canvas ClipToBounds="True" x:Name="RadarClip" Background="Red">
                                <Canvas.OpacityMask>
                                    <ImageBrush ImageSource="radarmask.png">
                                        <ImageBrush.RelativeTransform>
                                            <RotateTransform CenterX="0.5" CenterY="0.5" />
                                        </ImageBrush.RelativeTransform>
                                    </ImageBrush>
                                </Canvas.OpacityMask>
                                <Canvas.Triggers>
                                    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.OpacityMask).(Brush.RelativeTransform).(RotateTransform.Angle)" RepeatBehavior="Forever">
                                                    <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
                                                    <EasingDoubleKeyFrame KeyTime="0:0:10" Value="360"/>
                                                </DoubleAnimationUsingKeyFrames>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger>
                                </Canvas.Triggers>
                            </Canvas>
Compare Line Rotate:
                <Line x:Name="RadarEllipse" X1="150" Y1="150" X2="300" Y2="150" Stroke="Cyan" StrokeThickness="1" RenderTransformOrigin="0,0">
                    <Line.RenderTransform>
                        <RotateTransform Angle="0" CenterX="150" CenterY="150"/>
                    </Line.RenderTransform>
                    <Line.Triggers>
                        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Line.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="Forever" >
                                        <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:10" Value="360"/>
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Line.Triggers>
                </Line>

Additional Information:
Attached Files:
Notes
(0005542)
arukari   
2019-03-20 04:25   
I'm waiting for fix.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1438 [NoesisGUI] C++ SDK major always 2019-03-27 06:27 2019-04-09 11:17
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Windows
Summary: ContextMenu and Tooltip stays unclosed even when the window is deactivated
Description: Follow up from the following forum's issue:
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1638

When we show ContextMenu or Tooltip, and we click other window (thus deactivating the current Noesis window), the ContextMenu or Tooltip stays afloat (not closed).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1439 [NoesisGUI] C++ SDK crash always 2019-04-01 11:18 2019-04-08 17:52
Reporter: sckriel Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Windows
Summary: LoadXAML crashes with DataTemplate as root element
Description: We are storing DataTemplate and ControlTemplate in separate files that we load in the code behind. Sometimes this crashes. I have tested this in the XAML player too. Loading one file will lead to the "invalid root element" message, while another file will crash the XAML player. I have reduced the files that work and crashes to their simplest form and have deduced that the addition of resources for the DataTemplate makes it work. If no resources are defined, it crashes.
Tags:
Steps To Reproduce: 1. Open XAML player.
2. Load DataTemplate _Works.xaml, it will work and report appropriate error message since the file cannot actually be viewed since it's a Data Template.
3. Load DataTemplate_Crashes.xaml, XAML Player crashes.
Additional Information:
Attached Files: DataTemplate_Crashes.xaml (237 bytes) 2019-04-01 11:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1001&type=bug
DataTemplate _Works.xaml (490 bytes) 2019-04-01 11:18
https://www.noesisengine.com/bugs/file_download.php?file_id=1002&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1447 [NoesisGUI] Unity3D major always 2019-04-06 17:12 2019-04-08 13:59
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.2  
    Target Version: 2.2.2  
Platform: Any
Summary: Unity Editor Crash on TextBox.Focus()
Description: Encl. crash dump with error log. I set visibility of a UserControl to visible and immediately call Focus() on an instance of type TextBox . Unity crashes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Crash_2019-04-06_150401457.zip (377,625 bytes) 2019-04-06 17:12
https://www.noesisengine.com/bugs/file_download.php?file_id=1007&type=bug
Notes
(0005613)
sfernandez   
2019-04-07 18:06   
Thanks for the dump, we will take a look and fix it as soon as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1444 [NoesisGUI] C++ SDK crash always 2019-04-05 13:46 2019-04-08 11:33
Reporter: decai Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: feedback Product Version: 2.2.1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: BitmapSource::Create from MFC CImage Bits crashed on x64
Description: We add bellow code in HelloWorld sample for test create BitmapSource from MFC CImage.
When we build x86 is ok, when we changed to x64 the app crashed as "Exception thrown at 0x00007FFA47395280 (Noesis.dll) in Samples.HelloWorld.exe: 0xC0000005: Access violation reading location 0x000002380DFF52B3." at the line BitmapSource::Create.

We just modiy the HelloWorld sample.
Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files: Main.cpp (2,807 bytes) 2019-04-05 13:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1004&type=bug
1.png (7,339 bytes) 2019-04-05 13:46
https://www.noesisengine.com/bugs/file_download.php?file_id=1005&type=bug
Notes
(0005600)
jsantos   
2019-04-05 21:15   
Could you also attach a minidump please?

Thanks!
(0005603)
decai   
2019-04-06 11:20   
(Last edited: 2019-04-06 11:28)
here is the dump:https://drive.google.com/file/d/1n8m2I5oRnDcOUZaJF-MXrvIMkJ6qvDHT/view?usp=sharing

(0005614)
sfernandez   
2019-04-08 11:33   
Hi, according to CImage documentation: https://docs.microsoft.com/en-us/cpp/atl-mfc-shared/reference/cimage-class?view=vs-2019#getbits, if the pitch value returned by the CImage is negative it indicates that it is creating a bottom-up DIB, and the pointer returned by GetBits() points to the last row of the image. That is the case with the image you supplied.

Our BitmapSource::Create() expects a positive stride and a pointer to the first pixel in the buffer, but I see we are not checking this and no error message explaining what happened is shown, so we will add it for next versions.

Your code should look as follows to properly work:
CImage *image = new CImage();
HRESULT sr = image->Load("d:\\1.png");
if (sr == S_OK)
{
    int w = image->GetWidth();
    int h = image->GetHeight();
    uint8_t *data = (uint8_t*)image->GetBits();
    int pitch = image->GetPitch();
    float dpi = 96.0f;

    if (pitch < 0)
    {
        pitch = -pitch;
        data = data - (h - 1) * pitch;
    }

    BitmapSource::Format bitmapFormat = Noesis::BitmapSource::Format_BGRA8;
    auto imageSource = BitmapSource::Create(w, h, dpi, dpi, data, pitch, bitmapFormat);
    if (imageSource)
    {
        printf("image source create ok");
    }
}


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1403 [NoesisGUI] Unity3D major always 2019-01-30 12:12 2019-04-05 12:24
Reporter: Khonan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Setting a fontfamily constant in a style makes unity Crash (fixed, not a bug)
Description: Setting a fontfamily constant in a style makes unity Crash
Using unity 2018.3.3f1
Tags:
Steps To Reproduce: 1/ Get NocturnalStyle.xaml
2/ Add this line on top of the style :

    <FontFamily x:Key="DefaultFontFamily">Fonts/#Roboto</FontFamily>

3/ use the style in your code :
            ResourceDictionary style = (ResourceDictionary)LoadXaml("NocturnalStyle");
            Noesis.GUI.SetApplicationResources(style);

4/ Run unity project
5/ Unity crashes
Additional Information:
Attached Files: MainWindow.xaml (1,342 bytes) 2019-01-30 12:12
https://www.noesisengine.com/bugs/file_download.php?file_id=962&type=bug
MainWindow.xaml.cs (2,628 bytes) 2019-01-30 12:12
https://www.noesisengine.com/bugs/file_download.php?file_id=963&type=bug
NocturnalStyle.xaml (295,596 bytes) 2019-01-30 12:12
https://www.noesisengine.com/bugs/file_download.php?file_id=964&type=bug
Notes
(0005430)
Khonan   
2019-01-30 15:22   
After some investigations, I discovered all my troubles came from my inits not behing done during
OnInitialized(object sender, EventArgs args) ....

Causing random crash of unity..

Bug closed :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1442 [NoesisGUI] Unity3D major random 2019-04-03 17:10 2019-04-04 18:07
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0rc1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: XAML Import Causes Unity to Freeze
Description: Unity freezes and Noesis blocks on the main thread. From forums, this is related to a mutex lock getting destroyed before it is released.

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1616&p=9417#p9417
Tags:
Steps To Reproduce: 1) Modify XAML external to Unity.
2) Tab back into Unity. Unity is running but apparently waiting for Noesis to release control back on the Main thread.

It's a threading race condition issue -- it happens about 1 in 10 times when external XAML is modified. Because it is threading related, it can happen three times in a row or not at all.
Additional Information:
Attached Files:
Notes
(0005591)
jsantos   
2019-04-04 18:07   
Thanks for your feedback! Your dump was really helpful


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1428 [NoesisGUI] Unity3D crash always 2019-03-17 21:46 2019-04-02 01:43
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Windows
Summary: Complete Unity Crash if a popup is open when we change scene.
Description: I have not tried this with an empty example project but hopefully it is the same there. NoesisGUI and the whole unity editor crashes if any NoesisView have a popup open when SceneManager.LoadScene("newSceneName"); is run.

Closing the popup the same frame doesn't work either, the popup must have been closed for at least one frame to avoid the crash (or never opened).
I'm opening and closing my popups from script with pupup.IsOpen = false/true;

I think this was a problem before I updated to 2.0 too I just never saw a pattern until today when during the update process I run into this many times.
Tags:
Steps To Reproduce: Create a menu with a popup.
Open the pupup with script.
change Unity scene with: SceneManager.LoadScene("newSceneName");
The whole Unity editor crashes.
Additional Information:
Attached Files:
Notes
(0005536)
C4ustic   
2019-03-17 21:56   
Maybe the repro wasn't as simple as I though. It looks like I have to open the popup the same frame as I change scene to get the 100% repro.
I can also get the crash at other points if I have changed scene and then later on open a popup.

I will do some more research.
(0005537)
C4ustic   
2019-03-17 22:23   
I have two ways of getting the crash now, one is to run pupup.IsOpen = true; the same frame as SceneManager.LoadScene("newSceneName"); the other is to have the popup open then change scene and then change scene again back to the first one and open the popup again.

To sum it up, bad things happen if you have popups open when you do scene changes. Opening the popup the same frame seems to be the best repro case.

The workaround I use now is that before I change scene I find all NoesisViews in the scene and make sure they have all popups closed. Then I wait for a few frames, and then run LoadScene doing this seem to prevent the crash totally.
(0005540)
sfernandez   
2019-03-18 22:19   
Thanks for all the details, will take a look as soon as possible to fix it for the next release.
(0005588)
sfernandez   
2019-04-02 01:43   
We found the source of the problem and fixed it for the next release, thanks again for your collaboration.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1421 [NoesisGUI] Unity3D major always 2019-03-11 15:58 2019-04-02 01:42
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: Unity Crash
Description: I'm working to narrow down the exact Noesis code that causes the crash. It is repeatable. Here's a stack trace.

0x00000000454C2CB8 (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_KeyDown (System.Runtime.InteropServices.HandleRef,int)
0x00000000454C2B5B (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\NoesisView.cs:239]

-- log --
Refreshing native plugins compatible for Editor in 1.95 ms, found 5 plugins.
Preloading 1 native plugins for Editor in 0.18 ms.
Crash!!!
SymInit: Symbol-SearchPath: 'C:/Program Files/Unity/Hub/Editor/2018.3.6f1/Editor/Data/Mono;.;C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity;C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor;C:\WINDOWS;C:\WINDOWS\system32;SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols;', symOptions: 534, UserName: 'stons'
OS-Version: 10.0.0
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\Unity.exe:Unity.exe (0000000140000000), size: 78802944 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2018.3.6.8327
C:\WINDOWS\SYSTEM32\ntdll.dll:ntdll.dll (00007FFBF2550000), size: 2019328 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\KERNEL32.DLL:KERNEL32.DLL (00007FFBF2020000), size: 733184 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\KERNELBASE.dll:KERNELBASE.dll (00007FFBEE920000), size: 2699264 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\CRYPT32.dll:CRYPT32.dll (00007FFBEEBC0000), size: 1945600 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\ucrtbase.dll:ucrtbase.dll (00007FFBEE800000), size: 1032192 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\MSASN1.dll:MSASN1.dll (00007FFBEE550000), size: 73728 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\HID.DLL:HID.DLL (00007FFBED130000), size: 57344 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\USER32.dll:USER32.dll (00007FFBF0EF0000), size: 1667072 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.168
C:\WINDOWS\System32\msvcrt.dll:msvcrt.dll (00007FFBF2480000), size: 647168 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 7.0.17763.1
C:\WINDOWS\System32\win32u.dll:win32u.dll (00007FFBEE900000), size: 131072 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\FreeImage.dll:FreeImage.dll (0000000180000000), size: 6164480 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 3.11.0.0
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\libfbxsdk.dll:libfbxsdk.dll (00007FFB92B80000), size: 8511488 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2018.1.1.0
C:\WINDOWS\System32\GDI32.dll:GDI32.dll (00007FFBF1B00000), size: 167936 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\gdi32full.dll:gdi32full.dll (00007FFBEEDA0000), size: 1679360 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.316
C:\WINDOWS\System32\msvcp_win.dll:msvcp_win.dll (00007FFBEEF70000), size: 655360 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\umbraoptimizer64.dll:umbraoptimizer64.dll (00007FFBBA220000), size: 1306624 (result: 0), SymType: '-deferred-', PDB: ''
C:\WINDOWS\System32\WS2_32.dll:WS2_32.dll (00007FFBF1F80000), size: 446464 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\ADVAPI32.dll:ADVAPI32.dll (00007FFBF2210000), size: 667648 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\RPCRT4.dll:RPCRT4.dll (00007FFBF14D0000), size: 1187840 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.194
C:\WINDOWS\System32\sechost.dll:sechost.dll (00007FFBF1B40000), size: 647168 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\WLDAP32.dll:WLDAP32.dll (00007FFBF22C0000), size: 393216 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\SHELL32.dll:SHELL32.dll (00007FFBEF9A0000), size: 21950464 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\Normaliz.dll:Normaliz.dll (00007FFBF1440000), size: 32768 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\cfgmgr32.dll:cfgmgr32.dll (00007FFBEE700000), size: 303104 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\ispc_texcomp.dll:ispc_texcomp.dll (00007FFBB2F60000), size: 1523712 (result: 0), SymType: '-deferred-', PDB: ''
C:\WINDOWS\System32\shcore.dll:shcore.dll (00007FFBF1BE0000), size: 688128 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\combase.dll:combase.dll (00007FFBF1090000), size: 3330048 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.253
C:\WINDOWS\System32\bcryptPrimitives.dll:bcryptPrimitives.dll (00007FFBEE680000), size: 516096 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\libcef.dll:libcef.dll (00007FFB7A880000), size: 52219904 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 3.2062.1930.0
C:\WINDOWS\System32\windows.storage.dll:windows.storage.dll (00007FFBEF030000), size: 7643136 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.168
C:\WINDOWS\System32\profapi.dll:profapi.dll (00007FFBEE590000), size: 147456 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\RadeonRays.dll:RadeonRays.dll (00007FFBC5350000), size: 618496 (result: 0), SymType: '-deferred-', PDB: ''
C:\WINDOWS\System32\PSAPI.DLL:PSAPI.DLL (00007FFBEF930000), size: 32768 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\SHLWAPI.dll:SHLWAPI.dll (00007FFBEF940000), size: 335872 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\powrprof.dll:powrprof.dll (00007FFBEE5C0000), size: 380928 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\kernel.appcore.dll:kernel.appcore.dll (00007FFBEE570000), size: 69632 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\COMDLG32.dll:COMDLG32.dll (00007FFBF20E0000), size: 1208320 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\OpenCL.dll:OpenCL.dll (00007FFBD5CA0000), size: 552960 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2.2.1.0
C:\WINDOWS\System32\cryptsp.dll:cryptsp.dll (00007FFBEF010000), size: 94208 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\ole32.dll:ole32.dll (00007FFBF2320000), size: 1396736 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.134
C:\WINDOWS\System32\OLEAUT32.dll:OLEAUT32.dll (00007FFBF1C90000), size: 831488 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\IMM32.dll:IMM32.dll (00007FFBF1FF0000), size: 188416 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\SETUPAPI.dll:SETUPAPI.dll (00007FFBF1600000), size: 4673536 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\bcrypt.dll:bcrypt.dll (00007FFBEEF40000), size: 155648 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\SketchUpAPI.dll:SketchUpAPI.dll (00007FFB8F7F0000), size: 8822784 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 18.0.18664.0
C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll:VCRUNTIME140.dll (00007FFBE15C0000), size: 90112 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 14.13.26118.0
C:\WINDOWS\SYSTEM32\MSVCP140.dll:MSVCP140.dll (00007FFBE1520000), size: 634880 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 14.15.26706.0
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\embree.dll:embree.dll (00007FFB8E800000), size: 16711680 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2.14.0.0
C:\WINDOWS\SYSTEM32\WINSPOOL.DRV:WINSPOOL.DRV (00007FFBE81B0000), size: 561152 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.316_none_05b53be2071f46b6\COMCTL32.dll:COMCTL32.dll (00007FFBD9BC0000), size: 2592768 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 6.10.17763.316
C:\WINDOWS\SYSTEM32\OPENGL32.dll:OPENGL32.dll (00007FFBB6EF0000), size: 1208320 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\GLU32.dll:GLU32.dll (00007FFBD5A30000), size: 180224 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\USERENV.dll:USERENV.dll (00007FFBEE450000), size: 163840 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\urlmon.dll:urlmon.dll (00007FFBDA610000), size: 1929216 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 11.0.17763.168
C:\WINDOWS\SYSTEM32\WINHTTP.dll:WINHTTP.dll (00007FFBEA050000), size: 987136 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.316
C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL:dhcpcsvc.DLL (00007FFBE32C0000), size: 114688 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\WTSAPI32.dll:WTSAPI32.dll (00007FFBED110000), size: 77824 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\NSI.dll:NSI.dll (00007FFBF1B30000), size: 32768 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL:IPHLPAPI.DLL (00007FFBEDB40000), size: 249856 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\Secur32.dll:Secur32.dll (00007FFBDBD40000), size: 49152 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\OLEACC.dll:OLEACC.dll (00007FFBE24B0000), size: 442368 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 7.2.17763.1
C:\WINDOWS\SYSTEM32\WINMM.dll:WINMM.dll (00007FFBE05F0000), size: 147456 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\VERSION.dll:VERSION.dll (00007FFBE2990000), size: 40960 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\USP10.dll:USP10.dll (00007FFBCAF50000), size: 102400 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\WSOCK32.dll:WSOCK32.dll (00007FFBE04C0000), size: 36864 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\WinPixEventRuntime.dll:WinPixEventRuntime.dll (00007FFB8A8E0000), size: 16826368 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 1.0.1701.26001
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\SketchUpCommonPreferences.dll:SketchUpCommonPreferences.dll (00007FFBD4FF0000), size: 471040 (result: 0), SymType: '-deferred-', PDB: ''
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\tbb.dll:tbb.dll (00007FFBD5940000), size: 413696 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2017.0.2016.1004
C:\WINDOWS\SYSTEM32\PROPSYS.dll:PROPSYS.dll (00007FFBEC070000), size: 1736704 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 7.0.17763.1
C:\WINDOWS\SYSTEM32\iertutil.dll:iertutil.dll (00007FFBD9E40000), size: 2785280 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 11.0.17763.292
C:\WINDOWS\SYSTEM32\WINMMBASE.dll:WINMMBASE.dll (00007FFBE05A0000), size: 184320 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\MSVCP120.dll:MSVCP120.dll (00007FFBDAFB0000), size: 679936 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 12.0.40649.5
C:\WINDOWS\SYSTEM32\MSVCR120.dll:MSVCR120.dll (00007FFBDB2B0000), size: 978944 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 12.0.40649.5
C:\WINDOWS\SYSTEM32\SSPICLI.DLL:SSPICLI.DLL (00007FFBEE480000), size: 192512 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL:CRYPTBASE.DLL (00007FFBEDFB0000), size: 49152 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\OpenRL.dll:OpenRL.dll (0000000000D10000), size: 12779520 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 1.5.100.0
C:\WINDOWS\SYSTEM32\MSVCP100.dll:MSVCP100.dll (00000000578F0000), size: 622592 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.40219.325
C:\WINDOWS\SYSTEM32\MSVCR100.dll:MSVCR100.dll (00000000577C0000), size: 860160 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.40219.325
C:\WINDOWS\SYSTEM32\MSWSOCK.DLL:MSWSOCK.DLL (00007FFBEDDE0000), size: 421888 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\OpenRL_pthread.dll:OpenRL_pthread.dll (0000000001950000), size: 61440 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2.9.0.0
C:\WINDOWS\system32\uxtheme.dll:uxtheme.dll (00007FFBEC3C0000), size: 638976 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL:dhcpcsvc6.DLL (00007FFBE2D70000), size: 90112 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\DNSAPI.dll:DNSAPI.dll (00007FFBEDB80000), size: 811008 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\clbcatq.dll:clbcatq.dll (00007FFBF1ED0000), size: 663552 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2001.12.10941.16384
C:\WINDOWS\system32\wbem\wbemprox.dll:wbemprox.dll (00007FFBD8990000), size: 69632 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\wbemcomn.dll:wbemcomn.dll (00007FFBDB770000), size: 544768 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\wbem\wbemsvc.dll:wbemsvc.dll (00007FFBD8840000), size: 81920 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\wbem\fastprox.dll:fastprox.dll (00007FFBD7110000), size: 987136 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\rsaenh.dll:rsaenh.dll (00007FFBED9A0000), size: 208896 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\MSCTF.dll:MSCTF.dll (00007FFBF1D60000), size: 1482752 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\TextInputFramework.dll:TextInputFramework.dll (00007FFBD47F0000), size: 610304 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\CoreUIComponents.dll:CoreUIComponents.dll (00007FFBD6720000), size: 3284992 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\CoreMessaging.dll:CoreMessaging.dll (00007FFBEBD30000), size: 925696 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.194
C:\WINDOWS\SYSTEM32\ntmarta.dll:ntmarta.dll (00007FFBED600000), size: 200704 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\wintypes.dll:wintypes.dll (00007FFBEA2C0000), size: 1388544 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.134
C:\WINDOWS\system32\dwmapi.dll:dwmapi.dll (00007FFBEC880000), size: 188416 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\netprofm.dll:netprofm.dll (00007FFBE8060000), size: 245760 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\npmproxy.dll:npmproxy.dll (00007FFBE21C0000), size: 61440 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.316
C:\WINDOWS\System32\fwpuclnt.dll:fwpuclnt.dll (00007FFBE14A0000), size: 495616 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Windows\System32\rasadhlp.dll:rasadhlp.dll (00007FFBE37B0000), size: 40960 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\MMDevApi.dll:MMDevApi.dll (00007FFBE21D0000), size: 458752 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\DEVOBJ.dll:DEVOBJ.dll (00007FFBEE360000), size: 167936 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\AUDIOSES.DLL:AUDIOSES.DLL (00007FFBE1270000), size: 1343488 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\SYSTEM32\AVRT.dll:AVRT.dll (00007FFBE9190000), size: 40960 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\resourcepolicyclient.dll:resourcepolicyclient.dll (00007FFBECB70000), size: 81920 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\explorerframe.dll:explorerframe.dll (00007FFBC97D0000), size: 4763648 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\d3d11.dll:d3d11.dll (00007FFBEB570000), size: 2613248 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\dxgi.dll:dxgi.dll (00007FFBED2C0000), size: 794624 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\DriverStore\FileRepository\nvmso.inf_amd64_8461c3207f0421af\nvldumdx.dll:nvldumdx.dll (00007FFBC8D30000), size: 962560 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 23.21.13.9140
C:\WINDOWS\System32\WINTRUST.DLL:WINTRUST.DLL (00007FFBEE620000), size: 360448 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\System32\imagehlp.dll:imagehlp.dll (00007FFBF1AE0000), size: 118784 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\DriverStore\FileRepository\nvmso.inf_amd64_8461c3207f0421af\nvwgf2umx.dll:nvwgf2umx.dll (00007FFBBF880000), size: 29392896 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 23.21.13.9140
C:\WINDOWS\SYSTEM32\dbghelp.dll:dbghelp.dll (00007FFBECF20000), size: 2019328 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\tbbmalloc.dll:tbbmalloc.dll (00007FFBD5400000), size: 372736 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2017.0.2016.1004
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\Data\MonoBleedingEdge\EmbedRuntime\mono-2.0-bdwgc.dll:mono-2.0-bdwgc.dll (00007FFB8A170000), size: 7757824 (result: 0), SymType: '-deferred-', PDB: ''
C:\Program Files\Unity\Hub\Editor\2018.3.6f1\Editor\Data\UnityExtensions\Unity\VR\Win64\audiopluginresonanceaudio.dll:audiopluginresonanceaudio.dll (00007FFB98E90000), size: 4165632 (result: 0), SymType: '-deferred-', PDB: ''
C:\ProgramData\Microsoft\VisualStudio\Setup\x64\Microsoft.VisualStudio.Setup.Configuration.Native.dll:Microsoft.VisualStudio.Setup.Configuration.Native.dll (00007FFBD4CE0000), size: 421888 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 1.17.1230.42073
C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\Libraries\Windows\x86_64\Noesis.dll:Noesis.dll (00007FFB99820000), size: 4739072 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 2.2.0.7768
C:\WINDOWS\system32\dataexchange.dll:dataexchange.dll (00007FFBCE040000), size: 352256 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\dcomp.dll:dcomp.dll (00007FFBEB7F0000), size: 1847296 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\twinapi.appcore.dll:twinapi.appcore.dll (00007FFBEC960000), size: 2150400 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.292
C:\WINDOWS\system32\RMCLIENT.dll:RMCLIENT.dll (00007FFBECB90000), size: 163840 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.194
C:\WINDOWS\SYSTEM32\xinput1_3.dll:xinput1_3.dll (0000000042990000), size: 122880 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 9.18.944.0
C:\WINDOWS\System32\DriverStore\FileRepository\64jp6293.inf_amd64_9bca36afef322a4a\igd10iumd64.dll:igd10iumd64.dll (00007FFBD32D0000), size: 21262336 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 24.20.100.6293
C:\WINDOWS\SYSTEM32\ncrypt.dll:ncrypt.dll (00007FFBEE0A0000), size: 155648 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\SYSTEM32\NTASN1.dll:NTASN1.dll (00007FFBEE060000), size: 245760 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\DriverStore\FileRepository\64jp6293.inf_amd64_9bca36afef322a4a\igc64.dll:igc64.dll (00007FFBD12C0000), size: 32509952 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 24.20.100.6293
C:\WINDOWS\system32\napinsp.dll:napinsp.dll (00007FFBBF1D0000), size: 90112 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\pnrpnsp.dll:pnrpnsp.dll (00007FFBBEE10000), size: 106496 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\System32\winrnr.dll:winrnr.dll (00007FFBBEE00000), size: 57344 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1
C:\WINDOWS\system32\NLAapi.dll:NLAapi.dll (00007FFBEA010000), size: 110592 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.134
C:\WINDOWS\system32\wshbth.dll:wshbth.dll (00007FFBE8040000), size: 86016 (result: 0), SymType: '-deferred-', PDB: '', fileVersion: 10.0.17763.1

========== OUTPUTTING STACK TRACE ==================

0x00007FFB998FE4B4 (Noesis) Boxed_SelectionMode_GetStaticType
0x00007FFB99988DC7 (Noesis) TriggerAction_GetStaticType
0x00007FFB99989384 (Noesis) TriggerAction_GetStaticType
0x00007FFB998BFC9A (Noesis) FrameworkElement_GetStaticType
0x00007FFB9988325A (Noesis) HorizontalAlignment_GetStaticType
0x00007FFB9987B705 (Noesis) ContentControl_GetStaticType
0x00007FFB998FEEFA (Noesis) Boxed_SelectionMode_GetStaticType
0x00007FFB998471FF (Noesis) MouseEventArgs_MiddleButton_get
0x00007FFB99846EB2 (Noesis) MouseEventArgs_MiddleButton_get
0x00007FFB998EFD1B (Noesis) ItemCollection_GetStaticType
0x00007FFB998EFE68 (Noesis) ItemCollection_GetStaticType
0x00007FFB999871E6 (Noesis) TriggerAction_GetStaticType
0x00007FFB998EB9B8 (Noesis) ItemCollection_GetStaticType
0x00007FFB998EC559 (Noesis) ItemCollection_GetStaticType
0x00007FFB9998A48A (Noesis) TriggerAction_GetStaticType
0x00007FFB9998885A (Noesis) TriggerAction_GetStaticType
0x00007FFB999856CA (Noesis) TriggerAction_GetStaticType
0x00007FFB998F008C (Noesis) Keyboard_GetStaticType
0x00000000454C2CB8 (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_KeyDown (System.Runtime.InteropServices.HandleRef,int)
0x00000000454C2B5B (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\API\Core\NoesisView.cs:239] Noesis.View:KeyDown (Noesis.Key)
0x00000000442CBED3 (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:670] NoesisView:UpdateVirtualKeys ()
0x00000000442C59DB (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:697] NoesisView:UpdateInputs ()
0x00000000442C5413 (Mono JIT Code) [C:\Users\stons\GitHub\StellarConquest-New\StellarConquest.Presentation.Unity\Assets\NoesisGUI\Plugins\NoesisView.cs:767] NoesisView:LateUpdate ()
0x000000003DD07FA8 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFB8A29BE4B (mono-2.0-bdwgc) [c:\buildslave\mono\build\mono\mini\mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFB8A221E32 (mono-2.0-bdwgc) [c:\buildslave\mono\build\mono\metadata\object.c:2919] do_runtime_invoke
0x00007FFB8A22AE3F (mono-2.0-bdwgc) [c:\buildslave\mono\build\mono\metadata\object.c:2966] mono_runtime_invoke
0x0000000140C0341A (Unity) scripting_method_invoke
0x0000000140BF3A2A (Unity) ScriptingInvocation::Invoke
0x0000000140BBCB47 (Unity) MonoBehaviour::CallMethodIfAvailable
0x0000000140BBD261 (Unity) MonoBehaviour::CallUpdateMethod
0x00000001406EEDCC (Unity) BaseBehaviourManager::CommonUpdate<LateBehaviourManager>
0x00000001406F5276 (Unity) LateBehaviourManager::Update
0x0000000140961613 (Unity) `InitPlayerLoopCallbacks'::`2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward
0x0000000140960447 (Unity) ExecutePlayerLoop
0x0000000140960513 (Unity) ExecutePlayerLoop
0x00000001409637C1 (Unity) PlayerLoop
0x000000014133EB8F (Unity) PlayerLoopController::UpdateScene
0x000000014133D140 (Unity) Application::TickTimer
0x000000014149919B (Unity) MainMessageLoop
0x000000014149AE36 (Unity) WinMain
0x0000000142484BDA (Unity) __scrt_common_main_seh
0x00007FFBF20381F4 (KERNEL32) BaseThreadInitThunk
0x00007FFBF25BA251 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========

A crash has been intercepted by the crash handler. For call stack and other details, see the latest crash report generated in:
 * C:/Users/stons/AppData/Local/Temp/Unity/Editor/Crashes
Tags:
Steps To Reproduce:  <Grid x:Name="_LayoutRoot" HorizontalAlignment="Center" VerticalAlignment="Center">
        <local:BorderControl/>
        <StackPanel Orientation="Vertical" Margin="20">
            <ListBox x:Name="_ListBox" Background="Transparent" BorderThickness="0" IsFocusEngagementEnabled="false">
                <ListBoxItem x:Name="_Marketplace" Margin="0, 0, 0, 20">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="10"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Image x:Name="_MarketplaceIcon" Width="64" Height="64" Source="marketplace_512.png"/>
                        <TextBlock Grid.Column="2" VerticalAlignment="Center" Style="{StaticResource Heading5Primary}" FontWeight="Bold">Marketplace</TextBlock>
                    </Grid>
                </ListBoxItem>


Code that causes crash:
           _ListBox.LostFocus += (sender, e) =>
            {
                Hide();
            };

"Hide()" hides the visual tree containing the list box, parent user control, and user control parent.

I know this isn't an exact reproduction project -- but I'm hoping the stack trace line number, combined with this information is close enough? Let me know.
Additional Information:
Attached Files: crash.zip (548,029 bytes) 2019-03-13 22:07
https://www.noesisengine.com/bugs/file_download.php?file_id=987&type=bug
Notes
(0005520)
stonstad   
2019-03-11 16:01   
From logging statements in _ListBox.LostFocus += ... it appears that every time a joystick keydown event is received for moving up selection up or down, ListBox.LostFocus fires. I'm not doing anything when _ListBox.KeyDown fires if it is an up/down keydown event. So that seems odd to me that focus is getting lost unless the intended behavior is to fire this event every time a list box item receives focus. Just trying to provide some detail that might be helpful.
(0005522)
jsantos   
2019-03-12 19:15   
Thanks for the report! Any change you could also attach a minidump (.dmp)? Unity generates them when it crashes.
(0005525)
stonstad   
2019-03-13 19:31   
Will do.
(0005527)
stonstad   
2019-03-13 22:07   
Encl. crash dump file.
(0005528)
jsantos   
2019-03-14 00:43   
@sfernandez this is the callstack in native

>	Noesis.dll!Noesis::Keyboard::GetModifiers() Line 78	C++
     Noesis.dll!Noesis::ListBox::ItemClicked(Noesis::ListBoxItem * lbi, bool toggleSelection) Line 280	C++
     Noesis.dll!Noesis::UIElement::OnIsFocusedChanged(const Noesis::DependencyPropertyChangedEventArgs & e) Line 2812	C++
     Noesis.dll!Noesis::UIElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 2003	C++
     Noesis.dll!Noesis::FrameworkElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1632	C++
     Noesis.dll!Noesis::Control::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 432	C++
     Noesis.dll!Noesis::ContentControl::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 148	C++
     Noesis.dll!Noesis::ListBoxItem::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 122	C++
     Noesis.dll!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155	C++
     Noesis.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797	C++
     Noesis.dll!Noesis::Keyboard::Focus(Noesis::UIElement * element, bool askOld, bool askNew, bool canBeNull) Line 429	C++
     Noesis.dll!Noesis::Keyboard::Focus(Noesis::UIElement * element) Line 144	C++
     Noesis.dll!Noesis::UIElement::Focus() Line 453	C++
     Noesis.dll!Noesis::Selector::TryFocusSelected() Line 897	C++
     Noesis.dll!Noesis::Selector::OnGotFocus(const Noesis::RoutedEventArgs & e) Line 534	C++
     Noesis.dll!Noesis::UIElement::OnIsFocusedChanged(const Noesis::DependencyPropertyChangedEventArgs & e) Line 2812	C++
     Noesis.dll!Noesis::UIElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 2003	C++
     Noesis.dll!Noesis::FrameworkElement::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 1632	C++
     Noesis.dll!Noesis::Control::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 432	C++
     Noesis.dll!Noesis::ItemsControl::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 548	C++
     Noesis.dll!Noesis::Selector::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 550	C++
     Noesis.dll!Noesis::ListBox::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 73	C++
     Noesis.dll!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty * dp, Noesis::StoredValue * storedValue, const void * oldValue, const void * newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata * metadata) Line 1155	C++
     Noesis.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty * dp, void * oldValue, const void * newValue, void * coercedValue, unsigned char priority, Noesis::Expression * newExpression, const Noesis::PropertyMetadata * metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 797	C++
     Noesis.dll!Noesis::Keyboard::Focus(Noesis::UIElement * element, bool askOld, bool askNew, bool canBeNull) Line 429	C++
     Noesis.dll!Noesis::Keyboard::Focus(Noesis::UIElement * element) Line 144	C++
     Noesis.dll!Noesis::UIElement::Focus() Line 453	C++
     Noesis.dll!UIElement_Focus(void * jarg1) Line 23594	C++


It seems that keyboard is null here:
void ListBox::ItemClicked(ListBoxItem* lbi, bool toggleSelection)
{
    Keyboard* keyboard = GetKeyboard();
    NS_ASSERT(keyboard != 0);

    bool shiftKeyDown = (keyboard->GetModifiers() & ModifierKeys_Shift) != 0;
    bool ctrlKeyDown = (keyboard->GetModifiers() & ModifierKeys_Control) != 0;

    ItemClicked(lbi, toggleSelection, shiftKeyDown, ctrlKeyDown);
}
(0005558)
stonstad   
2019-03-25 19:18   
I'm developing on a laptop with a keyboard -- there is definitely a keyboard! :) So on an XBOX, there is no keyboard... I would think that ItemClicked fires for click events if a keboard is not attached.
(0005586)
sfernandez   
2019-04-02 01:17   
(Last edited: 2019-04-02 01:42)
You were receiving the LostFocus on the ListBox because the event was routed from the ListBoxItem up the tree (the event is not handled by any control). I guess your code should look like this:
_ListBox.LostFocus += (sender, e) =>
{
  if (!_ListBox.IsKeyboardFocusWithin)
  {
    Hide();
  }
};


Anyway, there was a crash in our code that happened when removing from the tree the ListBox while inside a focus change.
I fixed it for the next release.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1432 [NoesisGUI] Unity3D minor always 2019-03-20 09:55 2019-04-01 17:39
Reporter: Khonan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Windows
Summary: incorrect <Expander> size
Description: Having 3 <Expander>, once collapsed each are of different size based upon their content. The more elements you have the more the <expander> will be big once collapsed.
Tags: Expander
Steps To Reproduce: <Grid Grid.Column="0" VerticalAlignment="Stretch">
                    <StackPanel x:Name="itGridViewLeft" Orientation="Vertical" VerticalAlignment="Top" Background ="#CC1A1A1D">
                        <Grid Width="400" ScrollViewer.VerticalScrollBarVisibility="Visible">
                            <Expander Header="locCategories" ExpandDirection="Down" IsExpanded="False">
                                <Grid>
                                    <ListBox x:Name="ititit" SelectionMode="Single" MouseDoubleClick="ItListViewFiles_MouseDoubleClick">
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                    </ListBox>
                                </Grid>
                            </Expander>
                        </Grid>
                        <Grid Width="400" ScrollViewer.VerticalScrollBarVisibility="Visible">
                            <Expander Header="locCategories" ExpandDirection="Down" IsExpanded="False">
                                <Grid>
                                    <ListBox x:Name="itit" SelectionMode="Single" MouseDoubleClick="ItListViewFiles_MouseDoubleClick">
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                        <TextBlock>ITEM ITEM</TextBlock>
                                    </ListBox>
                                </Grid>
                            </Expander>
                        </Grid>
                    </StackPanel>
            </Grid>
Additional Information:
Attached Files: Capture.PNG (30,882 bytes) 2019-03-20 11:12
https://www.noesisengine.com/bugs/file_download.php?file_id=991&type=bug
MainWindow.xaml (12,450 bytes) 2019-03-21 08:07
https://www.noesisengine.com/bugs/file_download.php?file_id=992&type=bug
expander.png (6,900 bytes) 2019-03-21 16:24
https://www.noesisengine.com/bugs/file_download.php?file_id=993&type=bug
NocturnalStyle.xaml (295,472 bytes) 2019-03-21 17:19
https://www.noesisengine.com/bugs/file_download.php?file_id=995&type=bug
Notes
(0005543)
Khonan   
2019-03-20 11:12   
Upon what your Expander hold, you can get a very large error in height (as seen in the "categories" expander screenshot)
(0005545)
sfernandez   
2019-03-21 03:45   
I tried the attached xaml in our XamlPlayer and it seems to behave like expected.
Maybe you can attach here the entire xaml that corresponds to the above image, so I can try to reproduce the problem and better understand the problem.
(0005546)
Khonan   
2019-03-21 08:07   
Here it is,

You'll have to remove some StaticResources and so as I'm a bit in the hurry. Sorry

Thanks for the help. Noesis is a great tool !
(0005548)
sfernandez   
2019-03-21 16:24   
This is how that xaml look when loaded in XamlPlayer, I think collapsed Expanders look fine.
Is it possible that you redefined the Expander style (and template) in the 'Resources/Atome2Style.xaml' dictionary? That is the only thing I'm missing.
(0005550)
Khonan   
2019-03-21 17:19   
Hummm interesting :)

Atome2Style is just for color style... However removing it makes the expander fine... Replacing it by NoturnalStyle from the samples folder makes it buggy again
(0005552)
sfernandez   
2019-03-22 06:55   
Ok, looking at that style I see what is happening, the Expander template uses a ScaleTransform to collapse the content, but the ScaleY value is incorrectly set to 0.01, instead of just 0.
We will fix it for future releases, in the meantime you can change it in your project.
(0005553)
Khonan   
2019-03-23 16:35   
Nice ! Thanks a lot.
Works like a charm.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1372 [NoesisGUI] Unity3D minor always 2018-12-10 07:00 2019-03-29 16:45
Reporter: digimbyte Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: Unity Scriptable Render pipeline not compatible
Description: Our Project has been upgraded to use the Scriptable Render Pipeline, lightweight and High-Definition but Noesis isn't directly compatible with it

zipped project here
https://drive.google.com/open?id=1xBWVhbohfC4-i6KtCYCXnbefCoGiJB9b
Tags: Unity SRP
Steps To Reproduce: Setup a Project with a Render pipeline and update the packages to the latest
import NoesisGui 2.1f
upgrade all materials in the project
sample scenes will no longer render the GUI until the render pipeline is disabled or removed.
will require some modification of NoesisGUI to work with the render pipeline
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1386 [NoesisGUI] Unity3D minor always 2019-01-09 19:42 2019-03-29 16:45
Reporter: inedi Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Windows
Summary: Not render GUI in Unity HDRP project
Description: When creating an HDRP project
GUI not render with any camera settings
also There are problems when importing .unitypackage

Unity ver: 2018.3.0f2
Tags: Unity
Steps To Reproduce: 1) create HDRP project
2) import unitypackage
3) add XAML
4) run
Additional Information:
Attached Files: Capture.PNG (32,037 bytes) 2019-01-09 19:42
https://www.noesisengine.com/bugs/file_download.php?file_id=957&type=bug
Notes
(0005390)
inedi   
2019-01-10 09:24   
Xaml objects are exist on the scene
in Simple "Buttons", if press mouse in console - writing events. But Xaml not render over cameras ;(
Render on texture doesn't work either


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1433 [NoesisGUI] Unity3D minor always 2019-03-21 15:10 2019-03-29 10:37
Reporter: stonstad Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: Click Events Not Propagated to Multiple Noesis Views
Description: See video here: https://bit.ly/2u4S1ax

Given a scenario with two cameras and two corresponding Noesis views....

Elements on one view blocks click events from propagating to a secondary view. This manifests as a problem when to views are layered -- the view that renders last and appears over other first views should receive events first -- but instead it receive events last or more often, not at all based on occlusion by a hit test enabled element on the 'lower' view.

I'm setting this to minor because I have an effective work around. When I want focus to be directed to the top noesis view I disable input (keyboard/mouse) on the bottom view.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisView.cs.patch (918 bytes) 2019-03-29 10:37
https://www.noesisengine.com/bugs/file_download.php?file_id=1000&type=bug
Notes
(0005559)
jsantos   
2019-03-26 21:50   
I found a way to fix this using Gui.Depth

https://docs.unity3d.com/ScriptReference/GUI-depth.html

The idea is exposing a new Depth property in each NoesisView component to fix this. My first experiments seem to be working fine.
(0005576)
jsantos   
2019-03-29 10:37   
Patch attached in case you want to try it before the release


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1434 [NoesisGUI] Unity3D major always 2019-03-24 17:38 2019-03-25 11:05
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: LeftButton wrong in MouseEventArgs
Description: The LeftButton and RightButton property in the MouseEventArgs is wrong in the version 2.2 of Noesis for Unity.
Instead of returning MouseButtonState.Pressed when I press the moues button I returns MouseButtonState.Released.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1425 [NoesisGUI] C++ SDK feature have not tried 2019-03-14 16:11 2019-03-19 08:25
Reporter: realesmedia Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Multi-window interface. Add Initializing a RenderContext associated with the new window from an existing D3D11RenderContext
Description: class RenderContext(D3D11RenderContext). Our implementation:
      
 void D3D11RenderContext::Init(void* window, void* context, Noesis::RenderDevice* device, uint32_t& samples, bool vsync, bool sRGB) override
{
    NS_ASSERT(Validate());
    NS_LOG_DEBUG("Creating D3D11 render context");

    mContext = (ID3D11DeviceContext*)context;
    mContext->AddRef();

    mContext->GetDevice(&mDevice);

    CreateSwapChain(window, samples, sRGB);
    CreateQueries();

    mVSync = vsync;
    mRenderer.Reset(device);

#if defined(NS_PLATFORM_WINDOWS_DESKTOP) || defined(NS_PLATFORM_WINRT)
    NS_LOG_DEBUG(" Adapter: %s", [this]()
    {
        IDXGIDevice* dxgiDevice;
        V(mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice));

        IDXGIAdapter* dxgiAdapter;
        V(dxgiDevice->GetAdapter(&dxgiAdapter));

        DXGI_ADAPTER_DESC desc;
        V(dxgiAdapter->GetDesc(&desc));

        static char description[128];
        uint32_t numChars = UTF8::UTF16To8((uint16_t*)desc.Description, description, 128);
        NS_ASSERT(numChars <= 128);

        DX_RELEASE(dxgiAdapter);
        DX_RELEASE(dxgiDevice);

        return description;
    }());
#endif
}

D3D11RenderContext::~D3D11RenderContext()
{
     . . .
    DX_RELEASE(mContext);
    DX_RELEASE(mDevice);
     . . .
}

It is possible to add the interface ISwapChain for NoesisApp :: Window?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1426 [NoesisGUI] C++ SDK feature have not tried 2019-03-14 16:26 2019-03-19 08:25
Reporter: realesmedia Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Add D3D11Factory::WrapTexture from ID3D11ShaderResourceView*
Description: Ptr<Texture> D3D11Factory::WrapTexture(ID3D11ShaderResourceView* view, uint32_t width,
    uint32_t height, uint32_t levels, TextureFormat::Enum format, bool isInverted)
{
    return D3D11RenderDevice::WrapTexture(view, width, height, levels, format, isInverted);
}

class D3D11RenderDevice final: public Noesis::RenderDevice
{
public:
      . . .

static Noesis::Ptr<Noesis::Texture> WrapTexture(ID3D11ShaderResourceView* view,
        uint32_t width, uint32_t height, uint32_t levels, Noesis::TextureFormat::Enum format, bool isInverted)
{
        view->AddRef(); /// ?????
      return *new D3D11Texture(view, width, height, levels, format, isInverted);
}

    ~D3D11Texture()
    {
       DX_RELEASE(view); /// DX_DESTROY(view);
    }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1417 [NoesisGUI] C++ SDK feature have not tried 2019-03-02 21:24 2019-03-18 22:29
Reporter: stonstad Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Intrinsic Type Compatibility w/ XAML 2009 Spec
Description: End users are unable to use "x:" or other namespaces for intrinsic types. " xmlns:sys="clr-namespace:System;assembly=mscorlib" is required. Not high priority since there is an easy workaround.
Tags:
Steps To Reproduce: 1. Create XAML with following code:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006 ... esentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<x:Single x:Key="ContentFontSize">13</x:Single>

</ResourceDictionary

2. Attempt to run/compile.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1430 [NoesisGUI] Unity3D major always 2019-03-18 16:44 2019-03-18 22:08
Reporter: Khonan Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.1  
    Target Version: 2.2.1  
Platform: Any
Summary: ListView MouseDoubleClick
Description: ListView MouseDoubleClick is not called anymore (it was in 2.1, it is also in WPF)
Tags:
Steps To Reproduce: Having the following XAML, doing itListViewCategories.MouseDoubleClick += MouseDoubleClickFunction;

MouseDoubleClickFunction is not called anymore while double clicking.


       <Grid Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <!-- COL 0 - LEFT PANEL -->
            <Grid Grid.Column="0" VerticalAlignment="Stretch">
                <StackPanel x:Name="itGridViewLeft" Orientation="Vertical">

                </StackPanel>
            </Grid>

            <!-- COL 1 - CENTER -->
            <Grid x:Name="itGridViewCenter" Grid.Column="1" VerticalAlignment="Stretch">

            </Grid>

            <!-- COL 2 - RIGHT PANEL -->
            <Grid Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Visible">
                <ScrollViewer>
                    <StackPanel x:Name="itGridViewRight" VerticalAlignment="Top">
<Grid Width="400" ScrollViewer.VerticalScrollBarVisibility="Visible">
        <Expander Header="{StaticResource locCategories}" ExpandDirection="Down" IsExpanded="False">
            <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>

            <Grid Grid.Row="0">
                <TextBox x:Name="itTextBoxFilter" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="Auto"></TextBox>
                <TextBlock VerticalAlignment="Center" Foreground="#22FFFFFF" Text="{StaticResource locFilter}" Margin="5,0,0,0" IsHitTestVisible="False"/>
            </Grid>

                <ListView Grid.Row="1" x:Name="itListViewCategories" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Visible">
                <ListView.ContextMenu>
                    <ContextMenu>
                        <MenuItem x:Name="itContextSelectAll" Header="Select All"></MenuItem>
                        <MenuItem x:Name="itContextUnselectAll" Header="UnSelect All"></MenuItem>
                    </ContextMenu>
                </ListView.ContextMenu>
                <ListView.View>
                    <GridView>
                        <GridView.ColumnHeaderContainerStyle>
                            <Style>
                                <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
                                <Setter Property="FrameworkElement.Height" Value="1"/>
                            </Style>
                        </GridView.ColumnHeaderContainerStyle>
                        <GridViewColumn>
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox x:Name="itCheckBoxList" Margin="0" VerticalAlignment="Center" IsChecked="{Binding IsChecked}" Checked="OnCheck" Unchecked="OnCheck"></CheckBox>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn>
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Margin="0" Text="{Binding Text}"></TextBlock>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn>
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Ellipse Fill="{Binding ColorBrush}" Width="20" Height="20" MouseEnter="Ellipse_MouseEnter" MouseLeave="Ellipse_MouseLeave" Stroke="#55FFFFFF" MouseLeftButtonDown="Ellipse_MouseLeftButtonDown" StrokeThickness="1">
                                        <!-- <Ellipse.Style>
                                            <Style TargetType="Ellipse">
                                                <Setter Property="Stroke" Value="Black"/>
                                                <Style.Triggers>
                                                    <Trigger Property="IsMouseOver" Value="True">
                                                        <Setter Property="Width" Value="20"/>
                                                    </Trigger>
                                                </Style.Triggers>
                                            </Style>
                                        </Ellipse.Style>-->
                                    </Ellipse>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
            </Grid>
        </Expander>
    </Grid>
                    </StackPanel>
                </ScrollViewer>
            </Grid>

        </Grid>
Additional Information:
Attached Files:
Notes
(0005539)
Khonan   
2019-03-18 17:05   
Breakpoint in noesis occured while double clicking:

NoesisView.cs
        public bool MouseDoubleClick(int x, int y, Noesis.MouseButton button)
        {
            return Noesis_View_MouseDoubleClick(CPtr, x, y, (int)button);
        }

Still investigating


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1079 [NoesisGUI] C# SDK feature N/A 2017-05-12 07:23 2019-03-15 00:07
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: none OS Version: 10 x64  
Status: resolved Product Version: 2.0.1f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0  
    Target Version: 2.2.0  
Platform: Any
Summary: Noesis Application Framework
Description: After completing "1078: C# SDK with namespaces compatible with WPF/UWP" http://bugs.noesisengine.com/view.php?id=1078 and fixing most of the reported differences with WPF it will allow us to start an open-source project "Noesis Application framework".

Ideally, it should be distributed via Nuget as following packages:
* Noesis.GUI.Core.MSCompatible (that's it, C# SDK compiled with MS_API_COMPATIBILITY flag)
* Noesis.GUI.Platforms.Windows (only Windows x86 and x86_64 native DLL)
* Noesis.GUI.Platforms.Linux (only Linux x86 and x86_64 native DLL)
* Noesis.GUI.Platforms.Mac (only Mac x86 and x86_64 native DLL)
   ... (and other platforms)
* Noesis.ApplicationFramework.Core (crossplatform, include nuget reference on Noesis.GUI.Core.MSCompatible )
* Noesis.ApplicationFramework.Platforms.WindowsD3D11 (include nuget references on Core+Platform and SharpDX)
* Noesis.ApplicationFramework.Platforms.WindowsOpenGL (include nuget references on Core and C# OpenGL)
* Noesis.ApplicationFramework.Platforms.LinuxOpenGL (include nuget references on Core and C# OpenGL)
* Noesis.ApplicationFramework.Platforms.MacOpenGL (include nuget references on Core and C# OpenGL)
   ... (and other platforms)

It should also include custom MSBuild target which will automatically copy all the XAML files into the application build folder (to be able to load them in Runtime) during the build phase.


It will allow developers to easily port their WPF/UWP applications to NoesisGUI for Windows by following these steps:
1. Create a new C# project (executable).
2. Add nuget reference for Noesis.ApplicationFramework.Platforms.WindowsD3D11.
    It will automatically add dependent nuget references:
    * SharpDX
    * Noesis.ApplicationFramework.Core
    * Noesis.GUI.Core.MSCompatible
    * Noesis.GUI.Platforms.Windows
3. Link items from already existing C# WPF/UWP project:
    with VS2017 it could be done very easily with wildcards in Projects file:
    <Compile Include="\..\WPFProjectPath\**\*.xaml" />
    <Compile Include="\..\WPFProjectPath\**\*.cs" />
4. Fix found API differences.
5. Run!


If developer need to port application to multiple platforms, it could be done this way:
1. Core C# project with reference only to Noesis.ApplicationFramework.Core (it will automatically reference Noesis.GUI.Core.MSCompatible). It should include the XAML and XAML.CS files.
2. C# executable projects for each target platform (referencing according Noesis.ApplicationFramework.Platforms.* nuget which will automatically include according Noesis.GUI.Platforms.* nuget). They're basically empty projects referencing core C# project and serving as entry point to the application on according platforms.

Executable files could be run with Mono/CoreCLR on Linux and Mac. Mono or CoreCLR could be embedded with the application (as it's already done for many games on these platforms, for example https://github.com/flibitijibibo/MonoKickstart but it will even easier for CoreCLR).

I think this is not really hard and this opensource project could be started with only some platforms but grow to full-fledged framework.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004947)
jsantos   
2017-12-20 03:50   
We just published the first 2.1 beta for C#. It also includes a first approach to the application framework, for now only windows is included. The architecture is very similar to C++, in fact we are reusing things we already have in C++ (like the renderers) instead of adding extra dependencies to SharpDX and things like that. There are *a lot* of things to do here.

Step by step : )
(0004951)
ai_enabled   
2017-12-20 08:48   
Great news!
I will take a look when I will have time.
Now we're crunching hard to finish the game for open alpha.
The game is great and so far we have high hopes for sales figures, despite the delay!
(0005439)
sfernandez   
2019-02-14 16:33   
(Last edited: 2019-02-14 16:34)
Hi, we are working on moving our C# code to NuGet and we are facing some problems with the native libraries that maybe you can help with.

We decided the following structure of packages:

Noesis.GUI ---------------------> Wrappers and proxies for Noesis core, includes all native libraries
Noesis.App ---------------------> Pure C# Noesis application framework
Noesis.App.Platforms.* ---> Pure C# implementation of RenderContext and Displays for each platform

An application will depend on the desired platform packages to get all the dependencies.

The problem we are having is that native libraries in Noesis.GUI package are not copied to output folders when building the application, only managed assemblies are.
Native libraries are included in Noesis.GUI package inside 'runtimes' folder:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    ...
  </PropertyGroup>
  <ItemGroup>
    <None Update="runtimes\**" Pack="true" PackagePath="" />
  </ItemGroup>
</Project>

runtimes/android-arm/native/libNoesis.so
runtimes/win-x86/native/Noesis.dll
runtimes/win-x64/native/Noesis.dll
...

Have you faced this problem and know how to solve it? Documentation is bit of a mess considering the differences between old and new SDK csproj files.

(0005440)
ai_enabled   
2019-02-14 17:14   
Hi,
I've never deployed native libraries with NuGet for our apps but I'm aware that there is much pain with their distribution in NuGet packages. Previously (mostly for Xamarin apps) people were writing custom MSbuild targets to copy all the necessary native libraries (and I think this is still possible though quite verbose and hard to properly setup). However, it has a limitation - native libraries are copied only into the project output folder which directly references the NuGet. If another project references this project, it will not copy native libraries (a direct link from the final C# project to NuGet package containing the native libraries is required). Probably, NuGet still has such an issue so keep this in mind!

I see you're using the new approach with "runtimes". The format (RID mapping) is looking properly so it should work fine. There are some known problems though:
1. You need to ensure the runtimes are actually copied into the resulting package file (.nupkg).
2. If the application is built for .NET Framework (I suppose this is the case), you need to reference Microsoft.NETCore.Platforms for this application project so the RID fallback mapping will be provided (see https://stackoverflow.com/a/52459363/4778700 ).

If you still cannot make it work you can drop me the sample project and I will check it ASAP. I have some experience with debugging issues with MSBuild.
(0005441)
sfernandez   
2019-02-18 12:03   
(Last edited: 2019-02-18 12:05)
We followed all the indications and still are unable to get the native libraries deployed.
You can download the solution with all the projects here: https://drive.google.com/open?id=1E5r1t_B7jBy4gUy1b4zer6MQChRAigmh
The Buttons sample is the one we are using for these tests.
Pleasse let me know if you find something unusual or that can be improved.

(0005442)
ai_enabled   
2019-02-18 12:51   
As a quick note. I've looked into this and it does copy Noesis.dll in case I'm building Button project for 64-bit platform (Src\Samples\Buttons\Projects\windows_x86_64\Bin\x64\Debug).
(0005443)
sfernandez   
2019-02-18 14:06   
I tried so many things that I can't assure I already tried that before, but the fact it is working for me too selecting x64 platform in the Buttons sample :)
(0005444)
ai_enabled   
2019-02-18 14:10   
(Last edited: 2019-02-18 14:11)
Ok, I've figured out what's going on.
You're using NuGet custom sources (configured in VS NuGet settings) and NuGet client in VS/MSBuild is caching every package.
So every time you're trying to build the Buttons project it does not pull the actual packages and continue using their cached version.
You can force NuGet to clean the caches by running this command in VS Package Manager Console:
nuget locals all -clear

After that it started working fine when I did any changes with runtimes. Otherwise it always used the cached packages (even after deleting runtimes folder and repacking the NuGet package, it still copied Noesis.dll from the cached package).


Also, it's not recommended to reference NuGet projects via PackageReference. Just use a Project reference instead. So, for example, in case of Noesis.App.csproj, replace:
<PackageReference Include="Noesis.GUI" Version="2.2.0" />

with
<ProjectReference Include="..\..\Noesis\Noesis.GUI.csproj" />


It will still generate a proper NuGet package (basically, there are no differences in output, it still will reference the same NuGet package of the referenced project).

However, it will not work with Buttons project as this project must reference NuGet packages (not project references) in order to use the NuGet runtimes copy feature. I'm really not sure what to do in that case. The documentation is severely lacking as you have noticed.

The best idea is to look how other multi-targeting projects are organized on Github. I don't have an immediate suggestion as most projects (such as Xenko game engine) are too bloated and have custom MSBuild tooling which is overkill for your case.

(0005445)
ai_enabled   
2019-02-18 14:29   
It's definitely working here - I've tried x86 and x64 and it does work properly.
But it's very annoying. If I change something in Noesis.GUI C# project, I have to build it, then use use
nuget locals all -clear
and only then build Buttons C# project. But it works fine.
(0005492)
sfernandez   
2019-03-04 09:47   
(Last edited: 2019-03-04 09:48)
Hi, we uploaded our first version of NuGet packages: https://www.nuget.org/profiles/NoesisTechnologies
Could you please try them and give us your opinion if anything can be improved?

We also published the code in our GitHub: https://github.com/Noesis/Managed, so anyone can download it and modify anything they want.

(0005493)
jsantos   
2019-03-04 11:19   
This doesn't make sense without any example Sergio. Could you upload one of the examples to github?
(0005494)
sfernandez   
2019-03-04 11:24   
We updated the Buttons sample to use our NuGet packages, you can download it from here:

https://github.com/Noesis/Tutorials/tree/master/Samples/Buttons/C%23
(0005497)
ai_enabled   
2019-03-05 01:34   
(Last edited: 2019-03-05 01:34)
Hi guys. Sorry for the delay. I'm on a short vacation now and will have a detailed look in the next 24 hours as I will have access to VS.
From the first look on Github source and samples and NuGet packages list, all is just great.
BTW, I think that NoesisGUIExtensions.cs should be a part of a separate NuGet package or even integrated into the primary (Noesis.GUI) package.

(0005498)
ai_enabled   
2019-03-05 01:49   
UPD. Re: NoesisGUIExtensions.cs - I remember now that it's required only for WPF to ensure there are no XAML compilation issues... so probably it should be a part of a separate NuGet package - so the recommended way of "flavoring" a WPF project with NoesisGUI extensions will be via NuGet - even though it will not give any practical benefits for WPF project itself.
(0005499)
sfernandez   
2019-03-05 14:12   
It is a great idea, we'll do it.
Thanks a lot for the feedback.
(0005500)
ai_enabled   
2019-03-06 00:48   
(Last edited: 2019-03-06 00:57)
1. As a very minor notice, the samples repo is quite heavy (179 MB, most of which SourceHanSans-Regular.ttf (46 MB) and several *.uasset and *.asset files (over 100 MB). It seems rounded-mgenplus-1c-regular.asset is mirroring rounded-mgenplus-1c-regular.ttf (both are 9.1 MB). Not a problem, but keep this in mind for the future changes as you might easily remove or replacing several files with lighter alternatives without actually affecting the samples.

2. Buttons-linux.csproj
It's a misleading sample as it will never work on Linux (targets .NET Framework; also it doesn't work in Windows for me for some strange NuGet-related error ("Your project file doesn't list 'win-x86' as a "RuntimeIdentifier". You should add 'win-x86' to the "RuntimeIdentifiers"" even though it does)). It's also referencing both RuntimeIdentifiers - win-x64 and linux-x64 which doesn't make sense for a Linux sample.
If you intend to use it as a sample for OpenGL for Windows, you should probably redo it as "Samples/C#/Projects/windows-opengl".

I would love to see a proper sample targeting .NET Core 2.1, eventually! :-)

Alas, I cannot tell anything regarding other samples (uwp, android, ios) as I don't have the environment to try them here.


3. NoesisGUI sample for Windows doesn't play sounds for me. Audio files are included and the same XAML is used. So, either PlaySoundAction doesn't work, or sound library failing to work for me here.
In WPF buttons sample, audio does work fine.
I assume NoesisGUI now includes basic audio support otherwise I don't see a good reason for linking *.mp3 files in the NoesisGUI C# sample...
UPD. I see it's not implemented for Win32Display now https://github.com/Noesis/Managed/blob/e165da7e5f7183036c59b54d145818d71f41033a/Src/NoesisApp/Displays/Win32/Src/Win32Display.cs#L288 probably it would better if you either implement it (either there or as a C# event which is hooked for C# Windows sample to plays the requested sound via Windows API or any other NuGet-delivered library). Otherwise, again, I don't see a good reason for linking *.mp3 files in this project while user cannot hear them.


4. "App.xaml.g.cs" (at Tutorials-master\Samples\Buttons\C#\Src)
It's very confusing. It's assumed that the generated C# files (*.g.cs) should never be a part of the solution. And in this particular case, this is NOT a generated C# file. It's a handmade C# file - actually, it's multiple C# files for each platform, with a lot of horrible conditional compilation.
It makes perfect sense to split this file into multiple files - each one for each platform.
I would prefer to make it this way:
Samples\Buttons\C#\Projects\<platform>\App.cs

(so corresponding App.cs will be available in each platform's sample project folder)

or this way:
Samples\Buttons\C#\Src\App.<platform>.cs

(so each C# sample project will link according App.<platform>.cs file from shared Src folder)

This way you can also get rid of the unnecessary conditional compilation.

Regards!

(0005503)
jsantos   
2019-03-06 17:15   
Thanks for your time!

1. Thanks for commenting about this. We take care about it (unfortunately that 46MB of font corresponds to one of the first commits and I think there is no way to delete that from the history right?).

2. Linux is still not finished. We have issues copying the binaries to the destination folder. But it is working fine with '.NET Framework' target. @sfernandez can give more details about it

3. Yeahs, sounds are not implemented yet. They are in C++, that's the reason we have the sounds there.

4. Thanks for this suggestion. We are going to reorganize things that way. Effectively those *.g.cs should be generated automatically with a plugin in Visual Studio, but we didn't find time to do it.
(0005504)
jsantos   
2019-03-06 17:19   
So, regarding 4)

We have two kind of files here:

- The code doing the bootstraping (creating the propery display and renderer). As you suggest, this should go in <platform>\App.cs
- The automatically generated code (.g.cs) that will implement the LoadInitializeCompoennt, FindNames, Events, etc. This file is the same for all platforms, where do you suggest putting this file?
(0005506)
ai_enabled   
2019-03-06 23:53   
(Last edited: 2019-03-06 23:57)
I'm glad to help.

1. You could try git rebase (though it's quite dangerous) or this special Github tool for removing "sensitive" files https://help.github.com/en/articles/removing-sensitive-data-from-a-repository If you do this, I believe you will need to re-download the whole repo from Github as otherwise you will be unable to push the new commits due to the commits history hashcodes mismatch.
Probably having this file in the repo history is not a big deal - I always download the repo as a Zip archive to try it out (as I did this time). I download the full git repo only if I definitely want to have the ability to experiment with some changes and commit/revert them after that - and in that case I expect that downloading will take a while.

2. Are you actually experimenting with .NET Core 2.1 for Linux? Have you tried to raise the issue in https://github.com/nuget/home/issues ? This is the place to look for certain help regarding this problem.

3. I see. So there are two options - either remove links to MP3-sounds from C# demo projects to avoid confusion or implement support for audio playback... but after a quick research I don't see a reasonable way to do this now: for example NAudio has a NuGet package however it's Windows-only; there is still no proper .NET audio library for .NET Core with Linux support; there are also no well-tested OpenAL wrappers for .NET Core; and if you have an audio player in native Noesis.dll now (I remember you've posted something about it in Twitter) adding a C# API for it will create a lot of confusion :-)

4. >> The automatically generated code (.g.cs) that will implement the LoadInitializeCompoennt, FindNames, Events, etc. This file is the same for all platforms, where do you suggest putting this file?

Same as in WPF, of course. All XAML files should have corresponding .g.cs files (including App.g.cs) and these files should always go into obj project folder -- so they're not visible and not editable.
The VS/MSBuild plugin is very much expected... I know developing it is a painful experience -- though, it's way easier if you already have a CMD tool performing the task; adding required VS SDK targets to make generator (which is using the CMD tool) to work automatically is not that hard.

If you certainly don't want to implement VS/MSBuild plugin in the closest future, you have to write the required "generated" code manually as a temporary solution. There are two options where you could put that code:
1. conditional compilation with #if NOESIS (like you do for MainWindow.xaml.cs and similar files to call LoadComponent(...) or locate controls via find by name). In the case of App.xaml.cs file it's usually just a few lines of code so no problem with code duplication in every App.cs file as I've suggested above.
2. OR write corresponding *.xaml.noesis.cs files and link them into each C# demo project

In the both cases, it would be great to have a readme file clarifying the problem and the temporary solution -- until you implement the plugin. You can even link this single readme file into all C# demo projects to make it obvious.

Regards!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1342 [NoesisGUI] C# SDK crash always 2018-11-19 15:21 2019-03-15 00:07
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0rc1  
    Target Version: 2.2.0  
Platform: Any
Summary: System.AccessViolationException in app.Run() in ApplicationTutorial
Description: The C# SDK ApplicationTutorial sample runs fine but as soon as I close the window to exit the application, I get a System.AccessViolationException in the app.Run() line in static void Main().
Tags:
Steps To Reproduce: - Start C# SDK ApplicationTutorial
- Close main window
- Application throws System.AccessViolationException
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1324 [NoesisGUI] Unity3D minor have not tried 2018-10-30 12:34 2019-03-14 16:55
Reporter: KIVI Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.0  
Platform: Any
Summary: Radial gradient in Android app.
Description: The radial gradient in the assembled Android application is displayed
incorrectly.
Tags:
Steps To Reproduce: Add a gradient from black to alpha as the background. Build the app. Run on
Android.
Additional Information:
Attached Files:
Notes
(0005261)
admin   
2018-10-30 12:35   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.

I know this sounds embarrassing but could you attach 'image.png' again?
(0005435)
jsantos   
2019-02-13 21:04   
Could you please provide a XAML to reproduce this issue?

Thanks!
(0005436)
jsantos   
2019-02-13 21:06   
@KIVI


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1121 [NoesisGUI] C++ SDK major always 2017-06-30 02:42 2019-03-09 13:51
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: Creators Update  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0rc1  
    Target Version: 2.2.0  
Platform: Any
Summary: Weird focusing on TabControl
Description: From forum discussion: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1129

Using the below XAML test code:

        <TabControl>
            <TabItem Header="Tab1"><TextBox></TextBox></TabItem>
            <TabItem Header="Tab2"><TextBox></TextBox></TabItem>
            <TabItem Header="Tab3"><TextBox></TextBox></TabItem>
            <TabItem Header="Tab4"><TextBox></TextBox></TabItem>
        </TabControl>

1. Repeatedly typing Shift-Tabs change the selection of tabs, but only between Tab3 and Tab4
2. Click on Tab1 header, then type Tab -> the focus doesn't move to the textbox of Tab1
3. Click on Tab1's textbox to move the focus, then type Tab -> the tab selection is changed to Tab2, focus is on header ?
4. Click on Tab2/3/4's textbox to move the focus, then type Tab -> the tab selection is change to Tab1, focus is on header ?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005069)
nikobarli   
2018-01-31 08:59   
Seems still not fixed by 2.1.0rc2


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1418 [NoesisGUI] C++ SDK major always 2019-03-07 01:59 2019-03-07 17:11
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b6  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0rc1  
    Target Version: 2.2.0  
Platform: Windows
Summary: Key modifiers reported by MouseDown event is not accurate when clicking on inactivate window
Description: 1. Spawn any NoesisGUI window
2. Click on any other window -> the NoesisGUI window deactivated
3. Hold-on Shift + Ctrl key, then click on the NoesisGUI window
-> Inside MouseDown handler, element->GetKeyboard()->GetModifiers() reported no Modifiers (0, expected 6 -> ModifierKeys_Shift (4) | ModifierKeys_Control(2))
4. Still Hold-on Shift + Ctrl key, click on the NoesisGUI window again
-> Inside MouseDown handler, element->GetKeyboard()->GetModifiers() reported either Shift or Control is held (2 or 4, expected 6 -> ModifierKeys_Shift (4) | ModifierKeys_Control(2))

If this is a bug, is there any easy way to workaround it ?

# WPF seems able to handle both cases on step 3 and 4.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005508)
jsantos   
2019-03-07 02:20   
I will have a look at it later today. Thanks for the report.

So, the step 4) is just doing a second click, same as in 3) ? I understand why 3) is reporting 0 (I know how to fix it) but I don't understand why 4) is not reporting 0 also
(0005510)
nikobarli   
2019-03-07 05:36   
> So, the step 4) is just doing a second click, same as in 3) ?

Yes, just do another click after step 3

> I understand why 3) is reporting 0 (I know how to fix it) but I don't understand why 4) is not reporting 0 also

Yeah, I feel weird too.

I suspect 3) is because we are not sending Key events to Noesis when the window is not activated, but that doesn't explain what happens on step 4).
(0005511)
jsantos   
2019-03-07 17:11   
Fixed in r7892


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1312 [NoesisGUI] Unity3D crash always 2018-06-18 21:34 2019-03-05 01:12
Reporter: CMarinacci Platform: Unity3D  
Assigned To: jsantos OS: Windows 10 Pro  
Priority: high OS Version: 1803  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b8  
    Target Version: 2.2.0  
Platform: Any
Summary: All 2018 versions of the Unity editor may crash on an exception when using NoesisGUI
Description: All 2018 versions of the Unity editor may crash on an exception when using NoesisGUI
Tags:
Steps To Reproduce: 1. Install Unity 2018.1.5.f1 (the latest release as of this report).

2. Start up Unity and create a new 2D Unity project.

3. Install the latest NoesisGUI Unity package (2.1.0f1) into the project.

4. Load the ControlGallery scene from the NoesisGUI Samples folder.

5. In the Assets/NoesisGUI/Samples/ControlGallery/MainWindow.xaml.cs file, insert the following two lines at the start of the LoadSample method:

string s = null;
string t = "x" + s.Length;

6. Run the program in the Unity editor. Click on the menu icon in the upper left, and pick any individual item (not submenu) from within the dropdown list. This will execute the above code, causing an exception which causes the Unity editor to crash.
Additional Information: Note that the crash doesn't happen when the exception-causing code is inserted in other locations (for example, at the start of the OnInitialized method in the same file above).

This may not be a NoesisGUI bug, but so far I haven't been able to reproduce it when not using NoesisGUI. This has been happening to me since the first 2018 Unity version.
Attached Files:
Notes
(0005259)
jsantos   
2018-10-30 12:18   
A NOTE has been added to this issue.

----------------------------------------------------------------------
 (0005259) CMarinacci (reporter) - 2018-09-09 20:33
 https://www.noesisengine.com/bugs/view.php?id=1312#c5259
----------------------------------------------------------------------
Appears to no longer be happening in Unity 2018.2.7f1.
----------------------------------------------------------------------
(0005496)
jsantos   
2019-03-05 01:12   
I tried this with the latest beta of NoesisGUI and I am not able to reproduce it. I am going to close it. Please, reopen again if you find it again.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1414 [NoesisGUI] C++ SDK crash always 2019-02-26 02:28 2019-03-04 11:30
Reporter: nikobarli Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b7  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b8  
    Target Version: 2.2.0  
Platform: Windows
Summary: NoesisGUI crash on Windows 7 SP1
Description: NoesisGUI crash on Windows 7 SP1 (confirmed with the r7800 of trunk)

All samples code of Noesis C++ SDK failed to run on Windows 7 SP1.
I confirmed with the following platforms
- Win7 SP1 + GeForce GTX 1050i (both local and RDP)
- Win7 SP1 + Quadro K620 (both local and RDP)
- Win7 SP1 on Hyper-V VM (emulated GPU)

# We usually use Windows 10 when developing code, but our target platform includes Windows 7 SP1.
# I forgot when is the last time I confirmed it run on Windows 7 SP1
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisCrashOnWin7SP1.PNG (108,312 bytes) 2019-02-26 02:28
https://www.noesisengine.com/bugs/file_download.php?file_id=973&type=bug
Win32Display.cpp.patch (1,163 bytes) 2019-02-27 03:01
https://www.noesisengine.com/bugs/file_download.php?file_id=974&type=bug
Notes
(0005472)
nikobarli   
2019-02-26 03:12   
At least it works on r6976
(0005474)
jsantos   
2019-02-26 05:05   
Yes, we introduced this bug in beta5 and was fixed in beta6. Could you try trunk?
(0005475)
nikobarli   
2019-02-26 05:17   
Hi Jesus,

I tried using r7801 of trunk just now and it's still there.
(0005476)
nikobarli   
2019-02-26 07:57   
Hhhmmmghh, it seems there are two problems

1. NoesisGUI samples crashed on Win7 SP1

This is due to commit on r7369. NoesisGUI called an API of XInput_4.dll which only supported on Windows 8 or above. Thus failing in Win7 SP1. This is still happening even on trunk r7801.

2. Our app crashed on Win7 SP1

This maybe the bug in beta5 you are mentioning. We are currently using r7643. Will try to update to the latest.
(0005477)
jsantos   
2019-02-26 16:52   
Hi Niko,

I am looking at the input thing right now and I see that we load XInput dynamically

    HMODULE xInput = LoadLibraryA("Xinput1_4.dll");
    if (xInput != 0)
    {
        XInputGetState_ = (PFN_XINPUTGETSTATE)GetProcAddress(xInput, "XInputGetState");
        XInputGetCapabilities_ = (PFN_XINPUTGETCAPABILITIES)GetProcAddress(xInput, "XInputGetCapabilities");
    }


So we shouldn't have that dependency at launch time. Could you please give me more information about the error?

Thanks!
(0005478)
jsantos   
2019-02-26 16:56   
Could you provide minidump using our latest beta release?

https://www.noesisengine.com/forums/viewtopic.php?f=14&t=1491
(0005482)
nikobarli   
2019-02-27 03:01   
Hi Jesus,

I attached a patch to comment out the offending part of the current source code.
XInputGetCapabilities_ may be called even when it is not initialized (as in Win7)
(0005483)
nikobarli   
2019-02-27 03:50   
I updated our Noesis to 2.2.0b6 (r7766) and I confirmed that our code no longer crashes in Win7 SP1
(0005485)
jsantos   
2019-03-01 13:18   
So, just checking if XInputGetCapabilities_ is NULL before calling will solve the issue right?
(0005486)
jsantos   
2019-03-01 13:18   
I mean, the problem is that in Win7 that pointer is NULL or uninitiated.
(0005489)
nikobarli   
2019-03-02 02:33   
> I mean, the problem is that in Win7 that pointer is NULL or uninitiated.

Yes, that's correct.
(0005495)
jsantos   
2019-03-04 11:30   
Thanks for the help Niko! Fixed in r7850


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1327 [NoesisGUI] C# SDK minor have not tried 2018-10-30 12:45 2019-02-26 18:44
Reporter: JasonL663 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b7  
    Target Version: 2.2.0  
Platform: Any
Summary: Duplicate Noesis ContentPropertyAttribute class conflicts with System.Xaml library
Description: The System.Windows.Markup.ContentPropertyAttribute class defined in the
NoesisManaged library conflicts with the
System.Windows.Markup.ContentPropertyAttribute class defined in the System.Xaml
library. This makes it impossible to use either when both libraries are
referenced.

It also prevents the attribute from working properly in the Xaml editor leading
to the infamous XLS0502 error:

"The type <Type> does not support direct content."
Tags:
Steps To Reproduce: 1. Include references to both NoesisManaged.dll and System.Xaml in your project.
2. Open a page in the xaml editor and observe the XLS0502 error

3. Attempt to apply the ContentProperty attribute to a class and observe the
class name conflict
Additional Information:
Attached Files:
Notes
(0005267)
admin   
2018-10-30 12:45   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.
(0005437)
jsantos   
2019-02-13 21:10   
In our code, that definition is inside #if NETFX_CORE and as far as I know, that macro is only enabled in WinRT application, is that your case @JasonL663?
(0005481)
sfernandez   
2019-02-26 18:44   
All noesis types that were defined in System.Windows and contained namespaces are now defined inside Noesis.
For example, ICommand and ContentPropertyAttribute are now inside Noesis namespace.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1326 [NoesisGUI] C# SDK minor have not tried 2018-10-30 12:43 2019-02-26 18:41
Reporter: JasonL663 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b7  
    Target Version: 2.2.0  
Platform: Any
Summary: Managed Library Classes Defined in Global Namespace
Description: The NoesisAppManaged.Windows library defines 2 classes in the global namespace:

- Application
- Window

Since these are common names, this can cause issues for developers wishing to
use these names for other purposes.
Tags:
Steps To Reproduce: Try to introduce and use the System.Windows.Window or System.Windows.Application
classes into the global namespace with a using statement:

Example:
using System.Windows;
class MyWindow : Window
{

}

Example:
using Application = System.Windows.Application;
class MyApp: Application
{

}

Observe how these examples fail to compile due to naming conflicts. Since these
class names are defined in the global namespace, the only way to resolve this
issue is through the awkward namespace alias feature in C#
Additional Information:
Attached Files:
Notes
(0005266)
admin   
2018-10-30 12:44   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.
(0005480)
sfernandez   
2019-02-26 18:41   
Application and Window moved inside NoesisApp namespace to avoid collision with global namespace definitions.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1409 [NoesisGUI] Documentation feature always 2019-02-23 09:49 2019-02-25 16:00
Reporter: digimbyte Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Password does not use SecureString
Description: The password does not support SecureString
could this be added and a reasonable way to fetch/construct it on demand

reference

https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.passwordbox.securepassword?redirectedfrom=MSDN&view=netframework-4.7.2#System_Windows_Controls_PasswordBox_SecurePassword
Tags: password
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
589 [NoesisGUI] Unity3D minor always 2015-02-26 14:27 2019-02-19 10:43
Reporter: elecman Platform: Win 7  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Redraw render texture with API call instead of each frame
Description: Currently a render texture is redrawn each frame, even if nothing changes. This is wasteful of resources, especially on mobile. It would be great if you can provide an API similar to Camera.Render() so it is possible to "freeze" rendering and only render when you know something has changed.
Tags:
Steps To Reproduce: N/A
Additional Information:
Attached Files:
Notes
(0005446)
jsantos   
2019-02-19 10:43   
We already implemented this. Now, by default, in 'RenderTexture' mode the property "Continous Rendering' is disabled.

Also, we are exposing a new method in NoesisView, NeedsRendering() that can be used in manually repainted cameras to do manual Camera.Render().

Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1303 [NoesisGUI] C# SDK block always 2018-05-24 17:44 2019-02-14 13:49
Reporter: grigoryp Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: NoesisManaged should target .netstandard otherwise it is unusable on UWP
Description: Right now it targets .net 4.6.1 which isn't compatible with UWP.

As a workaround i recompiled lib, but it doesn't look like a good long term solution
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005209)
jsantos   
2018-06-01 22:35   
Thanks for the feedback. We have plans to properly solve this and distribute Noesis as a NuGet package.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1310 [NoesisGUI] Unity3D minor always 2018-06-07 02:26 2019-02-12 23:09
Reporter: mingingmingler Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: MouseLeftButtonDown event gets raised twice on a double click (3 times in total), instead of incrementing ClickCount to 2
Description: I'm trying to implement double clicking on an element, which is easily done in WPF by using the MouseLeftButtonDown event and checking whether the ClickCount value is 2.

Noesis raises the first event with ClickCount = 1, and then on the double click, it fires the event another 2 times in rapid succession, each with ClickCount = 1, instead of firing it one more time with ClickCount = 2.
Tags:
Steps To Reproduce:
Additional Information: ClickCount: 1
UnityEngine.Debug:LogWarning(Object)
Ui.InteractiveContentControl:DraggableElement_MouseLeftButtonDown(Object, MouseButtonEventArgs) (at Assets/Source/Ui/Controls/InteractiveContentControl.cs:94)
Noesis.UIElement:RaiseMouseLeftButtonDown(IntPtr, IntPtr, IntPtr) (at Assets/NoesisGUI/Plugins/API/Proxies/UIElement.cs:703)
Noesis.View:Noesis_View_MouseButtonDown(HandleRef, Int32, Int32, Int32)
Noesis.View:Noesis_View_MouseButtonDown_(HandleRef, Int32, Int32, Int32) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:450)
Noesis.View:MouseButtonDown(Int32, Int32, MouseButton) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:149)
NoesisView:ProcessEvent(Event, Boolean, Boolean, Boolean) (at Assets/NoesisGUI/Plugins/NoesisView.cs:843)
NoesisView:OnGUI() (at Assets/NoesisGUI/Plugins/NoesisView.cs:950)

ClickCount: 1
UnityEngine.Debug:LogWarning(Object)
Ui.InteractiveContentControl:DraggableElement_MouseLeftButtonDown(Object, MouseButtonEventArgs) (at Assets/Source/Ui/Controls/InteractiveContentControl.cs:94)
Noesis.UIElement:RaiseMouseLeftButtonDown(IntPtr, IntPtr, IntPtr) (at Assets/NoesisGUI/Plugins/API/Proxies/UIElement.cs:703)
Noesis.View:Noesis_View_MouseDoubleClick(HandleRef, Int32, Int32, Int32)
Noesis.View:Noesis_View_MouseDoubleClick_(HandleRef, Int32, Int32, Int32) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:462)
Noesis.View:MouseDoubleClick(Int32, Int32, MouseButton) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:173)
NoesisView:ProcessEvent(Event, Boolean, Boolean, Boolean) (at Assets/NoesisGUI/Plugins/NoesisView.cs:847)
NoesisView:OnGUI() (at Assets/NoesisGUI/Plugins/NoesisView.cs:950)
Attached Files: mousedoubleclickoutput.png (60,542 bytes) 2018-06-07 02:26
https://www.noesisengine.com/bugs/file_download.php?file_id=938&type=bug
Notes
(0005434)
jsantos   
2019-02-12 20:21   
There are two issues here. One in the Unity layer (fixed right now) and a bug in the native library (pending).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1213 [NoesisGUI] Unity3D text always 2017-12-27 11:01 2019-02-12 03:49
Reporter: philong Platform: Unity  
Assigned To: sfernandez OS: Windows 8  
Priority: high OS Version: Windows 8  
Status: resolved Product Version: 2.1.0b4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Korean TextBox Typing wrong
Description: Sometimes, it has a missing character when I typing the Korean language

Control : TextBox

I do the test and debug, and i found the event send right character [Method : ProcessEvent, class NosesisView]
 _uiView.Char((uint)ev.character);

But TextBox don't display character.
Tags:
Steps To Reproduce: Using TextBox Control
Change keyboard to Korean Microsoft IME
Enable Korean Typing

-> Backspace few time.
-> Type gksrmf +space
-> Expect 한글
--> Result 글
Additional Information:
Attached Files: TextBox.xaml (5,905 bytes) 2018-01-02 03:31
https://www.noesisengine.com/bugs/file_download.php?file_id=866&type=bug
TextBox-2.xaml (1,126 bytes) 2018-01-03 02:17
https://www.noesisengine.com/bugs/file_download.php?file_id=867&type=bug
Notes
(0004963)
jsantos   
2017-12-28 12:00   
Are you sure the glyph is contained in the True Type you are using?

Could you attach here a XAML with just a TextBlock reproducing the error?
(0004964)
philong   
2018-01-02 03:31   
Hi jsantos,
I using font Arial Unicode MS, could you try with textbox NoWrapText

I found another bug, it does not support single character Korean (some times) . Let type "g" + space.
(0004966)
jsantos   
2018-01-03 01:56   
Could you create a single XAML with just one TextBlock (not TextBox) and with the characters that are giving trouble to you? That way it is easier to debug for us. if possible, please also include the font (just in a single .zip and upload it to google drive or something similar because we don't allow big attachments here)

Thanks!
(0004967)
philong   
2018-01-03 02:17   
Hi jsantos,
It not related to display Korean, the bug is when we typing the Korean not correctly
For debug, could you install Korean keyboard IME

-> Backspace few time.
-> Type gksrmf +space
-> Expect 한글
--> Result 글

Font :
https://drive.google.com/open?id=1hxje5CUxjN0iJTJKqCLDp6jgJdIqZiQT

Thank you
(0004968)
jsantos   
2018-01-03 02:25   
Thanks for your feedback, so there is no problem when you display those characters in a textblock, the issue is only happening in the textblock, right?
It seems to be a IME issue then (as you perfectly pointed out)
(0004969)
philong   
2018-01-03 02:33   
The problem is Typing Korean in TextBox
Thank you.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1264 [NoesisGUI] Unity3D major always 2018-03-27 12:43 2019-02-12 03:49
Reporter: horeaper Platform: Windows  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: IME doesn't work in Unity Windows build
Description: Typing chinese/japanese characters using IME inside TextBox doesn't work with Windows build, both in editor and build result.
It feels like keystrokes get send directly to TextBox, IME doesn't get a chance to process them.

However the Login sample from native SDK works fine (as the attachment screenshot shows), suggests that Noesis' TextBox actually supports IME, it may just something get messed up while integrated into Unity.
Tags:
Steps To Reproduce: Open the Unity "Login" sample on Windows, hit play, or build.
Use a chinese or japanese IME, and type into the TextBox.
Unlike the native SDK's sample, the IME will not work.
Additional Information:
Attached Files: IME_with_NativeSDK.jpg (86,353 bytes) 2018-03-27 12:43
https://www.noesisengine.com/bugs/file_download.php?file_id=909&type=bug
Notes
(0005278)
admin   
2018-10-30 13:03   
----------------------------------------------------------------------
 (0005278) sfernandez (manager) - 2018-10-04 12:29
 https://www.noesisengine.com/bugs/view.php?id=1264#c5278
----------------------------------------------------------------------
IME is implemented in our App framework, is not part of the core Noesis library.
We will try to implement it also for the Unity integration for the next version.
(0005279)
admin   
2018-10-30 13:03   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1243 [NoesisGUI] Unity3D text always 2018-02-26 03:51 2019-02-12 03:48
Reporter: philong Platform:  
Assigned To: jsantos OS:  
Priority: immediate OS Version:  
Status: resolved Product Version: 2.1.0rc3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Korean IME input in Unity 2017
Description: Can't type the Korean character in a textbox in unity version 2017.3.1f1. It always shows the alphabet character
In unity 5.6 it works.

I'm using Korean IME

Tags:
Steps To Reproduce:
Additional Information:
Attached Files: ime.png (14,961 bytes) 2018-02-26 03:51
https://www.noesisengine.com/bugs/file_download.php?file_id=889&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1359 [NoesisGUI] C++ SDK minor have not tried 2018-11-22 17:22 2019-02-09 20:21
Reporter: KeldorKatarn Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Unable to parse StreamGeometry
Description: Can't parse the following SVG string:
<Path Data="F1M0,0z M22.36,16.86A9.4,9.4,0,0,0,20.19,6.78,9.55,9.55,0,0,0,9.44,4.88l6.24,6.28-4.35,4.38L4.94,9.26
A9.45,9.45,0,0,0,6.82,20.07a9.27,9.27,0,0,0,10,2.19l13.21,13.3a1.4,1.4,0,0,0,2,0l3.34-3.36a1.32,1.32,0,0,0,.14-2Z M40,40z"/>


The problem is parser doesn't work when grouping several A commands together without specifying the A again.
Tags:
Steps To Reproduce:
Additional Information: https://www.noesisengine.com/forums/viewtopic.php?p=8672#p8675
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1355 [NoesisGUI] C# SDK minor have not tried 2018-11-21 13:54 2019-02-04 14:42
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: PropertyMetadata constructors like WPF
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=709#p3955
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1392 [NoesisGUI] Unity3D minor have not tried 2019-01-18 13:06 2019-01-30 13:48
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: ImageSource throws ArgumentException when content is on separate line
Description: Creating an ImageSource resource like this works fine:

<ImageSource x:Key="Image.DNA">pack


if I use a tool like XAMLStyle to reformat the code, which ends up looking like this:

<ImageSource
    x:Key="Image.DNA">
    pack://application:,,,/HelloWorld;component/Assets/NoesisGUI/HelloWorld/Resources/Images/DNA.jpg
</ImageSource>


I get this:

ArgumentException: Illegal characters in path.
System.IO.Path.IsPathRooted (System.String path) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
System.IO.Path.InsecureGetFullPath (System.String path) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
System.IO.Path.GetFullPath (System.String path) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
NoesisPostprocessor.NormalizePath (System.String uri) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:124)
NoesisPostprocessor.AbsolutePath (System.String parent, System.String uri) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:152)
NoesisPostprocessor.ScanTexture (System.String directory, System.String text, System.String extension, System.Collections.Generic.HashSet`1[T] textures) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:201)
NoesisPostprocessor.ScanTextures (NoesisXaml xaml, System.String directory, System.String text) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:220)
NoesisPostprocessor.ScanDependencies (NoesisXaml xaml, System.String directory) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:311)
NoesisPostprocessor.ImportXaml (NoesisXaml xaml, System.String directory, System.IO.FileStream file) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:323)
NoesisPostprocessor.ImportXaml (System.String filename) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:336)
NoesisPostprocessor.ImportAssets (System.String[] assets, NoesisPostprocessor+UpdateProgress d) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:67)
NoesisPostprocessor.OnPostprocessAllAssets (System.String[] importedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromAssetPaths) (at Assets/NoesisGUI/Plugins/Editor/NoesisPostprocessor.cs:82)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <f2e6809acb14476a81f399aeb800f8f2>:0)
UnityEditor.AssetPostprocessingInternal.PostprocessAllAssets (System.String[] importedAssets, System.String[] addedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromPathAssets) (at C:/buildslave/unity/build/Editor/Mono/AssetPostprocessor.cs:140)
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1522&p=8676#
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1369 [NoesisGUI] Unity3D minor always 2018-12-06 20:57 2019-01-29 13:46
Reporter: goldsaucer Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Windows
Summary: Noesis fails to load XAML files due to NoesisException: invalid token
Description: Everytime we pushes changes to our git repository and someone pulls those, the XAML files cannot be loaded anymore in Unity due to a Noesis exception. Sometimes it says there is no content, sometimes something about an invalid token in the XML.

Right now I have the same problem with the Noesis examples even.
This is particularly bad with the ControlGalery example where I now have to touch (as in make some random change and save it again) every single xaml file to make it work again.

Here's the stack trace:

NoesisException: Assets/NoesisGUI/Samples/ControlGallery/Resources/SimpleStyle.xaml(1): Invalid token.
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.GUI.Noesis_LoadXaml_ (System.String xaml) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:275)
Noesis.GUI.LoadXaml (System.String xaml) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:125)
NoesisXaml.Load () (at Assets/NoesisGUI/Plugins/NoesisXaml.cs:31)
ControlGallery.MainWindow.LoadXaml (System.String xaml) (at Assets/NoesisGUI/Samples/ControlGallery/MainWindow.xaml.cs:137)
ControlGallery.MainWindow.OnInitialized (System.Object sender, Noesis.EventArgs args) (at Assets/NoesisGUI/Samples/ControlGallery/MainWindow.xaml.cs:41)
Noesis.FrameworkElement.RaiseInitialized (System.IntPtr cPtr, System.IntPtr sender, System.IntPtr e) (at Assets/NoesisGUI/Plugins/API/Proxies/FrameworkElement.cs:247)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.View.Noesis_View_Create_ (System.Runtime.InteropServices.HandleRef content) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:402)
Noesis.View..ctor (Noesis.FrameworkElement content) (at Assets/NoesisGUI/Plugins/API/Core/NoesisView.cs:386)
NoesisView.CreateView (Noesis.FrameworkElement content) (at Assets/NoesisGUI/Plugins/NoesisView.cs:1036)
NoesisView.LoadXaml (System.Boolean force) (at Assets/NoesisGUI/Plugins/NoesisView.cs:340)
NoesisView.OnEnable () (at Assets/NoesisGUI/Plugins/NoesisView.cs:398)
Tags: Unity
Steps To Reproduce: Given there is a unity project using noesis which is tracked using git.

1. A: Make change to XAML file.
2. A: Commit change to XAML and asset file.
3. A: Push changes to repository.
4. B: Pull these changes.
5. B: Try to run the scene using this XAML file.
Additional Information:
Attached Files: noesis-unity-bug.PNG (81,449 bytes) 2018-12-06 20:57
https://www.noesisengine.com/bugs/file_download.php?file_id=948&type=bug
Notes
(0005355)
goldsaucer   
2018-12-08 13:49   
Update: I just had the problem again. But I figured out that just selecting the Noesis folder in Unity and reimporting it fixes the issue. Until it happens again. Then I have to reimport it again etc.
(0005360)
jsantos   
2018-12-10 17:08   
Thanks for this report!
(0005401)
jsantos   
2019-01-18 14:51   
I am working on this issue today but I am unable to reproduce. I need you to confirm the following:

- When you make a change and push changes, those changes are: the XAML itself, and the asset corresponding to that XAMl righ? When you update in a different machine you get those two files. And then going to Unity you get the error without doing anything. Is that correct?

Thanks!
(0005402)
jsantos   
2019-01-19 21:34   
I created a github repository today for testing. I was unable to reproduce this...

I need your help :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1394 [NoesisGUI] Unity3D minor have not tried 2019-01-18 13:31 2019-01-28 23:14
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Reimport all hangs in unity
Description: When going to Noesis->Settings and hitting "Reimport All" and some errors occur in loading any of the XAML files, the Reimport All XAMLs popup just hangs in mid-progress and never closes.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1393 [NoesisGUI] Unity3D major have not tried 2019-01-18 13:09 2019-01-28 23:14
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: "Document contains no elements" when using chained resources
Description: The problems are super hard to diagnose, which is yet another problem.
In Unity when I load a resource chain (i.e. resource dictionaries importing others in a chain to avoid loading resources multiple times), whenever there's a problem in one of the dictionary files,
I'm basically getting

"NoesisException: Assets/NoesisGUI/HelloWorld/MainWindow.xaml(1): Document contains no elements."

from Unity, which tells me absolutely nothing. But under some circumstances I cannot really reproduce it tells me that it cannot parse the string.

To be honest, the fact alone that errors in the creation of resource dictionaries throw such useless errors is already a major deterrent from using Noesis.
We need to be able to understand what Noesis is complaining about. Simply saying a file has no elements, which is clearly not the case, is not helpful at all.
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1516&p=8678#p8678
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1366 [NoesisGUI] Unity3D minor have not tried 2018-11-30 12:42 2019-01-28 23:13
Reporter: sfernandez Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b6  
    Target Version: 2.2.0  
Platform: Any
Summary: Asset post processor needs write rights on source files
Description: From user C4ustic (https://www.noesisengine.com/bugs/view.php?id=1329)

Another thing that isn't really a bug but it is very annoying is that the code that builds Noesis Assets must have write rights to the source files. This makes it so I must check out every UI source file and run reimport every time I open Unity. This goes for font files too. It is not necessary since you never change anything in the source file. To be clear in order to properly build MyMenu.asset, MyMenu.xaml must not be write protected.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1035 [NoesisGUI] C# SDK crash always 2017-03-14 09:56 2019-01-28 16:30
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version: 1.3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Crash when using x:Static for accessing value of public static field in C#
Description: Hi guys,

consider this case:

    public static class LiquidColorsIcons
    {
        public static readonly Color ColorWater = Color.FromArgb(0xFF, 0x0C, 0x8A, 0xD3);
        ...
     }


And then:
<SolidColorBrush Color="{x:Static data:LiquidColorsIcons.ColorWater}" />

It works perfectly fine in WPF.
In 1.3.0 (2.0.0) release build it crashes with MemoryAccessViolation when I try to load that XAML file with GUI.LoadComponent() method.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004529)
sfernandez   
2017-03-16 12:46   
We don't have support for static reflection yet, and x:Static only works for enums.

Is this feature very important for you, or could you use a ResourceDictionary with StaticResources instead?
(0004530)
ai_enabled   
2017-03-16 12:52   
Thanks for clarification, Sergio!
I thought you already might have implemented proper support for x:Static as it working fine for enums and because NoesisGUI simply crashes without any proper error message in that case...

Oh, it's not that important then. As workaround we are using ResourceDictionary and finding these resources from C#. But finding these resources from C# is done with string identifiers so it's not so reliable as x:Static.

It would be much better if you could quickly add proper error message. We could live without x:Static :-).
(0004535)
sfernandez   
2017-03-16 13:22   
We will fix the crash and provide a correct error message.
(0004537)
jsantos   
2017-03-16 19:03   
Sergio, as far as I understand this should be "trivial" to implement if we implemented the x:Static markup entirely in C# right?
(0005415)
ai_enabled   
2019-01-24 18:16   
BTW would love to have this supported :-) . But as I understand it requires support for C# MarkupExtensions?
(0005422)
jsantos   
2019-01-28 16:30   
No, MarkupExtensions are not needed in C# for this but the solution is not trivial because we need to extend our reflection system to support static properties. This is something we must implement soon or later though. It's been requested many times.
(0005423)
ai_enabled   
2019-01-28 16:30   
Thanks!
Is there something I might help you with? If it's only on C# side I can take a look at what's missing to add support for this.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1385 [NoesisGUI] C# SDK minor always 2019-01-09 15:30 2019-01-24 11:07
Reporter: darthmaule2 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0b5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Difference from WPF - Some functions missing from VirtualizingPanel/Panel base classes
Description: These functions are missing from the VirtualizingPanel class:
protected void AddInternalChild(UIElement child)
protected void InsertInternalChild(Int32 index, UIElement child)
protected void RemoveInternalChildRange(Int32 index, Int32 range)
protected override void OnItemsChanged(object sender, ItemsChangedEventArgs e)

This property is missing from the Panel base class:
protected internal System.Windows.Controls.UIElementCollection InternalChildren { get; }

Panel's InternalChildren property is just the same as Children, so you can use that.

All the Add/Insert/Remove Child methods are just redirected to the children collection, so you can use Children.Add/Insert/Remove instead.

Recommended work-around for now from Sergio:
And you can subscribe to the ItemsChanged event on the ItemContainerGenerator of the corresponding ItemsControl, something like this:

public class VirtualizingTilePanel : Noesis.VirtualizingPanel, Noesis.IScrollInfo
{
  public VirtualizingTilePanel()
  {
    Loaded += (s, e) =>
    {
      ItemsControl itemsControl = ItemsControl.GetItemsOwner(this);
      itemsControl?.Generator?.ItemsChanged += OnItemsChanged;
    }
  }
  private void OnItemsChanged(object sender, ItemsChangedEventArgs e)
  {
  }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1399 [NoesisGUI] C# SDK minor always 2019-01-23 13:07 2019-01-24 11:06
Reporter: Djekke Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0b5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Cannot generate my own MouseWheel event.
Description: I was trying to make ListBox pass scroll event to parent, by I found, that I cannot generate my own MouseWheelEvent.

   Error: Property or indexer 'RoutedEventArgs.RoutedEvent' cannot be assigned to -- it is read only
   Error: Property or indexer 'RoutedEventArgs.Source' cannot be assigned to -- it is read only
   Error: 'MouseWheelEventArgs' does not contain a definition for 'MouseDevice' and no accessible extension method 'MouseDevice' accepting a first argument of type 'MouseWheelEventArgs' could be found (are you missing a using directive or an assembly reference?)
   Error: 'MouseWheelEventArgs' does not contain a definition for 'Timestamp' and no accessible extension method 'Timestamp' accepting a first argument of type 'MouseWheelEventArgs' could be found (are you missing a using directive or an assembly reference?)
Tags:
Steps To Reproduce: private static void ListBoxOnPreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
    if(!e.Handled)
    {
        e.Handled = true;
        var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta)
        {
            RoutedEvent = UIElement.MouseWheelEvent,
            Source = sender
        };
        var parent = ((Control) sender).Parent as UIElement;
        parent.RaiseEvent(eventArg);
    }
}
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1395 [NoesisGUI] C++ SDK block always 2019-01-20 20:23 2019-01-23 13:09
Reporter: realesmedia Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b5  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: Using components declared in the dynamic library dll
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1566

link to minidump (using component in dll): https://yadi.sk/d/9S9NFqSzg5jtxw
link to minidump (only register-unregister component in dll): https://yadi.sk/d/KCo55MUT1DTOlQ
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005405)
jsantos   
2019-01-21 14:56   
(Last edited: 2019-01-21 14:56)
Thanks for the Dumps!

At kernel shutdown we destroy all the types, so the DLL with the corresponding code for that type must be loaded. This is something we could improve for the future (because we have a way to unregister components in the factory but no way to unregister types) but the solution is not easy.

The workaround is unloading your DLL after NoesisShutdown. Is that a valid solution for you?

(0005407)
realesmedia   
2019-01-22 10:51   
Unloading Dll after NsShutdown does not fit. I showed a simplified use case. We will seek a solution.

thanks.
(0005410)
jsantos   
2019-01-22 14:11   
If you unload your dll after doing NsShutdown you are still getting a crash? Could you attach the dump please?
(0005411)
realesmedia   
2019-01-22 17:34   
(Last edited: 2019-01-22 18:24)
if unload dll after NsShutdown () there is no crash)))).

I had to change the algorithm for loading modules dll:

Engine.exe
    InitNoesis()

loop:
        UpdateCurrentWorld();
        DrawCurrentWord();

commands:
      LoadWord("world_1"); // script command...
.....
        LoadWord(""world_2""); // script command...
.......
       LoadWord(""world_3""); // script command...
...
exit:
     
      free_current_world_instance();

     NoesisShutdown()!!!!! OK

    for(auto handle : dll_handles) {
        ::FreeLibrary(handle)
    }
  
exit:
!!!! OK
----------------------------------------------------------------------
LoadWord()
{
         free_current_world_instance();

          loadLibrary(*.dll) //Implementation plugin, GameWorld... with unique GUI NoesisComponents
           init_world_instance();

           store_dll_handles();
}

(0005412)
jsantos   
2019-01-23 10:58   
Good news! Should we close this for now then?
(0005413)
realesmedia   
2019-01-23 11:51   
yes. can close)))
thank
(0005414)
jsantos   
2019-01-23 13:09   
Thanks for your feedback!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1397 [NoesisGUI] Unity3D crash always 2019-01-22 06:11 2019-01-22 14:09
Reporter: nokola Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Noesis crashes when changing control.Width during screen rotation
Description: Unfortunately doesn't reproduce with all controls, just this one. But reproduces always with this one on Android. Does not reproduce in Unity Editor.

I have this code that sets a UserControl's width/height when the user rotates the screen. The width/height are valid values.
            Debug.Log($"CROP: width == {width}, height == {height}"); // CROP: width == 195, height == 126.8516
            _adorner.Width = width;
            _adorner.Height = height;

Results in this crash:


    (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
2019-01-21 21:06:08.434 6773-6976/com.android.systemui W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
2019-01-21 21:06:08.435 6773-6976/com.android.systemui D/vndksupport: Loading /vendor/lib/hw/gralloc.msm8974.so from current namespace instead of sphal namespace.
2019-01-21 21:06:08.461 6773-6773/com.android.systemui D/StatusBar: disable<e i a s b h r c s > disable2<q i n >
2019-01-21 21:06:08.544 21207-21223/com.datcompany.fantasiapainter I/Unity: CROP: width == 195, height == 126.8516
     
    (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
2019-01-21 21:06:08.609 20129-20353/com.microsoft.office.outlook D/ClClient: Not sending keepalive. Current connection state=STOPPED
2019-01-21 21:06:08.647 6773-6976/com.android.systemui W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
2019-01-21 21:06:08.643 280-280/? I/healthd: type=1400 audit(0.0:16711): avc: denied { read } for name="present" dev="sysfs" ino=18498 scontext=u:r:healthd:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
2019-01-21 21:06:08.643 280-280/? I/healthd: type=1400 audit(0.0:16712): avc: denied { open } for name="present" dev="sysfs" ino=18498 scontext=u:r:healthd:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
2019-01-21 21:06:08.662 20129-20129/com.microsoft.office.outlook D/HxBatteryStatusReceiver: onReceiveandroid.intent.action.BATTERY_CHANGED
2019-01-21 21:06:08.666 6773-6773/com.android.systemui D/StatusBar: disable<e i a s b h r c s > disable2<q i n >
2019-01-21 21:06:08.686 6430-6497/system_process I/WindowManager: Screen frozen for +604ms due to Window{23c87b0 u0 StatusBar}
2019-01-21 21:06:08.690 292-362/? D/SurfaceFlinger: duplicate layer name: changing BlackSurface to BlackSurface#1
2019-01-21 21:06:08.691 292-623/? D/SurfaceFlinger: duplicate layer name: changing BlackSurface to BlackSurface#2
2019-01-21 21:06:08.691 292-622/? D/SurfaceFlinger: duplicate layer name: changing BlackSurface to BlackSurface#3
    
    --------- beginning of crash
2019-01-21 21:06:08.692 21592-21234/? A/google-breakpad: Microdump skipped (uninteresting)
2019-01-21 21:06:08.696 285-285/? E/WifiHAL: wifi_get_link_stats: requestResponse Error:-5
2019-01-21 21:06:08.696 6430-6570/system_process E/WifiVendorHal: getWifiLinkLayerStats(l.937) failed {.code = ERROR_INVALID_ARGS, .description = }
2019-01-21 21:06:08.698 292-362/? W/SurfaceFlinger: Attempting to destroy on removed layer: 4c49c0d AssistPreviewPanel#0
2019-01-21 21:06:08.712 21207-21234/com.datcompany.fantasiapainter W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
2019-01-21 21:06:08.712 21207-21234/com.datcompany.fantasiapainter W/google-breakpad: Chrome build fingerprint:
2019-01-21 21:06:08.713 21207-21234/com.datcompany.fantasiapainter W/google-breakpad: 1.23
2019-01-21 21:06:08.713 21207-21234/com.datcompany.fantasiapainter W/google-breakpad: 23
2019-01-21 21:06:08.713 21207-21234/com.datcompany.fantasiapainter W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
2019-01-21 21:06:08.875 21207-21234/com.datcompany.fantasiapainter E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0001873b
2019-01-21 21:06:08.875 21207-21234/com.datcompany.fantasiapainter E/CRASH: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-01-21 21:06:08.875 21207-21234/com.datcompany.fantasiapainter E/CRASH: Build fingerprint: 'oneplus/bacon/A0001:6.0.1/MHC19Q/ZNH2KAS1KN:user/release-keys'
2019-01-21 21:06:08.875 21207-21234/com.datcompany.fantasiapainter E/CRASH: Revision: '0'
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: pid: 21207, tid: 21234, name: UnityGfxDeviceW >>> com.datcompany.fantasiapainter <<<
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: r0 7d75d554 r1 7d4e6179 r2 7d4dff4d r3 00000001
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: r4 0001873b r5 634fa520 r6 00000004 r7 802ea120
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: r8 ffffffff r9 00000003 sl 87afb580 fp 00018a26
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: ip 634fa420 sp 87afb500 lr 7d4e05bf pc 7d4e6182 cpsr 0000000b
2019-01-21 21:06:08.876 21207-21234/com.datcompany.fantasiapainter E/CRASH: backtrace:
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #00 pc 00157182 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #01 pc 001515bd /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #02 pc 00157245 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #03 pc 00151c75 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #04 pc 00153cb1 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #05 pc 0015842d /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #06 pc 00158537 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #07 pc 002310cf /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #08 pc 00230c8f /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.920 21207-21234/com.datcompany.fantasiapainter E/CRASH: #09 pc 0022e52f /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #10 pc 0022e597 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #11 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #12 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #13 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #14 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #15 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #16 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #17 pc 0022e597 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #18 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #19 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #20 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #21 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #22 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #23 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #24 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #25 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #26 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #27 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #28 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #29 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #30 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: #31 pc 0022e567 /data/app/com.datcompany.fantasiapainter-qKNTFhmucC1vR_iin3txeg==/lib/arm/libNoesis.so
2019-01-21 21:06:08.921 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r0:
2019-01-21 21:06:08.922 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d534 7d498921 7d498929 7d498931 7d47a3b1 !.I}).I}1.I}..G}
2019-01-21 21:06:08.922 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d544 7d4e598d 7d4e5993 00000000 00000000 .YN}.YN}........
2019-01-21 21:06:08.922 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d554 7d4e6179 7d4e6199 7d4e62dd 7d47881b yaN}.aN}.bN}..G}
2019-01-21 21:06:08.922 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d564 7d47887d 7d478889 7d478697 7d4786a9 }.G}..G}..G}..G}
2019-01-21 21:06:08.922 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d574 7d4786c3 00000000 00000000 7d4e6421 ..G}........!dN}
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d584 7d4e6479 7d4e6a55 7d47881b 7d47887d ydN}UjN}..G}}.G}
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d594 7d478889 7d478697 7d4786a9 7d4786c3 ..G}..G}..G}..G}
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5a4 7d4e64d9 7d4e66bf 7d4785b9 7d49750f .dN}.fN}..G}.uI}
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5b4 7d497515 7d47d8e9 fffffff8 00000000 .uI}..G}........
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5c4 7d4e644d 7d4e64a9 7d4e6a55 7d49891d MdN}.dN}UjN}..I}
2019-01-21 21:06:08.923 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5d4 7d498921 7d498929 7d498931 7d4e66b9 !.I}).I}1.I}.fN}
2019-01-21 21:06:08.924 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5e4 7d4e66d7 00000000 00000000 7d4e71f5 .fN}.........qN}
2019-01-21 21:06:08.924 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d5f4 7d4e73af 7d4ecd05 7d47881b 7d47887d .sN}..N}..G}}.G}
2019-01-21 21:06:08.924 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d604 7d478889 7d478697 7d4786a9 7d4786c3 ..G}..G}..G}..G}
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d614 7d4e73cd 7d4e7541 7d4e76f1 7d4e7765 .sN}AuN}.vN}ewN}
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d75d624 7d4e7781 7d4e79a9 7d4e7ac9 7d4e7bb1 .wN}.yN}.zN}.{N}
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r1:
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6158 44786025 68009903 1a406800 b004bf04 %`xD...h.h@.....
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6168 f790bdb0 bf00eee6 002c3d10 002c3cca .........=,..<,.
2019-01-21 21:06:08.925 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6178 4604b510 44784805 60203008 f7f968a0 ...F.HxD.0 `.h..
2019-01-21 21:06:08.926 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6188 4620ff68 4010e8bd baccf792 002773ca h. F...@.....s'.
2019-01-21 21:06:08.926 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6198 4604b510 44784806 60203008 f7f968a0 ...F.HxD.0 `.h..
2019-01-21 21:06:08.926 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61a8 4620ff58 fabef792 4010e8bd bb1af792 X. F.......@....
2019-01-21 21:06:08.926 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61b8 002773aa 4ff0e92d 4682b093 460c4838 .s'.-..O...F8H.F
2019-01-21 21:06:08.926 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61c8 4478991c 68004615 90126800 60486808 ..xD.F.h.h...hH`
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61d8 130ae9cd 6818a906 93049002 90016858 .......h....Xh..
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61e8 0008f8da fa98f7fa 0008f8da 91034629 ............)F..
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61f8 f04fb3e5 25000b00 94052700 faa1f7fa ..O....%.'......
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6208 901bf834 4626ac0c 454d9c04 2004d820 4.....&F..ME ..
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6218 08c5ea40 46316820 4440462a 0a01ed10 @... h1F*F@D....
2019-01-21 21:06:08.927 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6228 0ac0eeb7 0b0ced8d 0a00ed90 0ac0eeb7 ................
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6238 0b0eed8d 7710e9cd 0008f8da f8d0f7fa .......w........
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6248 f1089805 35010808 901bf830 d9e1454d .......50...ME..
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r2:
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff2c f7972101 bf00e978 002ca070 00247980 .!..x...p.,..y$.
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff3c 002c9fde 002c9f10 47704770 47704770 ..,...,.pGpGpGpG
2019-01-21 21:06:08.928 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff4c 47704770 43f0e92d 2040b081 f8fcf7b4 pGpG-..C..@ ....
2019-01-21 21:06:08.929 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff5c d0572800 6064f44f ff66f005 20004601 .(W.O.d`..f..F.
2019-01-21 21:06:08.929 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff6c d04c2900 f2484a29 4b297622 0601f2c0 .)L.)JH."v)K....
2019-01-21 21:06:08.929 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff7c 447a4d2b f8df447b 447dc09c e098f8df +MzD{D....}D....
2019-01-21 21:06:08.929 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff8c 8098f8df f8df44fc 44fe909c 44f84c29 .....D.....D)L.D
2019-01-21 21:06:08.929 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dff9c 44f94f29 447c6008 0016e9c1 e9c1447f )O.D.`|D.....D..
2019-01-21 21:06:08.930 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dffac e9c10008 e9c10006 660e0004 f8814e23 ...........f#N..
2019-01-21 21:06:08.930 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dffbc f8810078 447e0079 5080f8c1 f8c14d1a x...y.~D...P.M..
2019-01-21 21:06:08.930 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dffcc 4a1a2084 f8c1447d 4b193088 f8c1447a . .J}D...0.KzD..
2019-01-21 21:06:08.930 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dffdc f8c1c08c 447be00c 8074f8c1 9090f8c1 ......{D..t.....
2019-01-21 21:06:08.930 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dffec 5d20f8c1 2d24f8c1 3d28f8c1 4d2cf8c1 .. ]..$-..(=..,M
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4dfffc 7d30f8c1 6d34f8c1 0d38f8c1 b0014608 ..0}..4m..8..F..
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e000c 83f0e8bd b0012000 83f0e8bd 000000cd ..... ..........
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e001c 000000cd 000000bf 000000bb 000000b9 ................
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r4:
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018718 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.931 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018728 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.932 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018738 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.932 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018748 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.932 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018758 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.932 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018768 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.933 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018778 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.933 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018788 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.933 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018798 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.933 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187a8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.933 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187b8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.934 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187c8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.934 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187d8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.934 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187e8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.934 21207-21234/com.datcompany.fantasiapainter E/CRASH: 000187f8 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018808 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r5:
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa500 634fa480 634fa520 634fa400 634fa480 ..Oc .Oc..Oc..Oc
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa510 634fa380 80d4e970 00000000 ffffffff ..Ocp...........
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa520 803ea4f8 634fa500 634fa480 634fa400 ..>...Oc..Oc..Oc
2019-01-21 21:06:08.935 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa530 634fa540 80d4ea60 00000000 00000001 @.Oc`...........
2019-01-21 21:06:08.936 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa540 634fa380 634fa4c0 634fa520 00000003 ..Oc..Oc .Oc....
2019-01-21 21:06:08.936 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa550 00000000 00000000 00000000 40840000 ...............@
2019-01-21 21:06:08.936 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa560 00000000 00000000 634fb220 634fa620 ........ .Oc .Oc
2019-01-21 21:06:08.936 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa570 634fa5c0 8bba2658 00000000 00000001 ..OcX&..........
2019-01-21 21:06:08.937 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa580 8a1c3318 71911000 71987000 00000001 .3.....q.p.q....
2019-01-21 21:06:08.937 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa590 00000000 7379732f 2f6d6574 6d617266 ..../system/fram
2019-01-21 21:06:08.937 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5a0 726f7765 72612f6b 6f622f6d 632d746f ework/arm/boot-c
2019-01-21 21:06:08.937 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5b0 2d65726f 6162696c 6f2e7472 00007461 ore-libart.oat..
2019-01-21 21:06:08.937 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5c0 634fa580 71987000 71a92000 00000101 ..Oc.p.q. .q....
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5d0 00000000 7379732f 2f6d6574 6d617266 ..../system/fram
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5e0 726f7765 72612f6b 6f622f6d 632d746f ework/arm/boot-c
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa5f0 2d65726f 6162696c 6f2e7472 00007461 ore-libart.oat..
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near r7:
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea100 00000000 00000000 00000000 40840000 ...............@
2019-01-21 21:06:08.938 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea110 00000000 00000000 00000003 00000000 ................
2019-01-21 21:06:08.939 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea120 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.939 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea130 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.939 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea140 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.939 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea150 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.939 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea160 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.940 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea170 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.940 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea180 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.941 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea190 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.941 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1a0 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.942 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1b0 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.942 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1c0 00000000 00000000 9854bb40 00000000 ........@.T.....
2019-01-21 21:06:08.942 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1d0 00000000 00000000 802ea1e8 802ea260 ............`...
2019-01-21 21:06:08.942 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1e0 802ea368 00000000 01000000 80000062 h...........b...
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 802ea1f0 802ea1c0 84ef5a70 00000000 00000000 ....pZ..........
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near sl:
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb560 84ef5abc 87afb64c 43011300 01d9bd4b .Z..L......CK...
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb570 80e7cdf0 7d4dff69 84ef5acc 84ef5abc ....i.M}.Z...Z..
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb580 00000000 7ff80000 00000000 7ff80000 ................
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb590 00000000 00000000 01d9bd4b 80e7cdf0 ........K.......
2019-01-21 21:06:08.943 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5a0 87afb624 84ef5aa0 87afb600 00000000 $....Z..........
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5b0 87afb600 87afb624 87afb6b8 7d4e0c79 ....$.......y.N}
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5c0 84ef5acc 87afb6b8 84ef5aa0 87afb73c .Z.......Z..<...
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5d0 00000000 7d4e2cb3 87afb640 01d9bd4b .....,N}@...K...
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5e0 87afb6b8 3d23d70b 87afb624 80e3f198 ......#=$.......
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5f0 7d4ef5ab 634f6768 87afb73c 7d4e7431 ..N}hgOc<...1tN}
2019-01-21 21:06:08.944 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb600 83865500 00000080 3f800000 00000000 .U.........?....
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb610 00000000 3f800000 00000000 00000000 .......?........
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb620 00000000 7d75d4a0 3d23d70b 00000000 ......u}..#=....
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb630 00000000 84ef5aa0 87afb64c 87afb650 .....Z..L...P...
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb640 87afb68c 7d47b6bf 87afb64c 00070003 ......G}L.......
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb650 83865500 7d4ef4cf 80fd90c0 00000080 .U....N}........
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near fp:
2019-01-21 21:06:08.945 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a04 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.946 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a14 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.946 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a24 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.946 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a34 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.946 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a44 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.946 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a54 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.947 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a64 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.947 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a74 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.947 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a84 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.947 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018a94 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.948 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018aa4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.948 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018ab4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.948 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018ac4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.948 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018ad4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.949 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018ae4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.949 21207-21234/com.datcompany.fantasiapainter E/CRASH: 00018af4 ffffffff ffffffff ffffffff ffffffff ................
2019-01-21 21:06:08.949 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near ip:
2019-01-21 21:06:08.949 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa400 803ea4d8 634fa420 634fa500 634fa3e0 ..>. .Oc..Oc..Oc
2019-01-21 21:06:08.949 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa410 634fa380 80d4ea60 00000000 00000001 ..Oc`...........
2019-01-21 21:06:08.950 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa420 634fa3e0 634fa400 634fa3e0 634fa500 ..Oc..Oc..Oc..Oc
2019-01-21 21:06:08.950 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa430 634fa440 80d4e970 00000000 ffffffff @.Ocp...........
2019-01-21 21:06:08.950 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa440 634fa4c0 803ea480 634fa3e0 00000001 ..Oc..>...Oc....
2019-01-21 21:06:08.950 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa450 80000000 408020e3 00000000 00000000 ..... .@........
2019-01-21 21:06:08.951 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa460 00000000 00000000 00000000 00000000 ................
2019-01-21 21:06:08.951 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa470 00000000 40268000 ffffffe8 00000000 ......&@........
2019-01-21 21:06:08.951 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa480 634fa3c0 634fa4a0 634fa520 634fa3c0 ..Oc..Oc .Oc..Oc
2019-01-21 21:06:08.951 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa490 634fa540 80d4e970 00000000 ffffffff @.Ocp...........
2019-01-21 21:06:08.952 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4a0 634fa520 634fa480 634fa3c0 634fa520 .Oc..Oc..Oc .Oc
2019-01-21 21:06:08.952 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4b0 634fa4c0 80d4ea60 00000000 00000001 ..Oc`...........
2019-01-21 21:06:08.952 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4c0 634fa540 634fa440 634fa4a0 00000002 @.Oc@.Oc..Oc....
2019-01-21 21:06:08.952 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4d0 80000000 408020e3 00000000 40840000 ..... .@.......@
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4e0 00000000 00000000 00000000 40020000 ...............@
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 634fa4f0 00000000 40268000 ffffffe7 ffffffff ......&@........
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: memory near sp:
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb4e0 802ea000 634fa4a0 634fa4a0 802ea100 ......Oc..Oc....
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb4f0 ffffffff 7d4dcc7b 802ea000 634fa4a0 ....{.M}......Oc
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb500 802ea000 7d4e05bf 87afb624 00000004 ......N}$.......
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb510 35a00000 00000000 00000000 00000000 ...5............
2019-01-21 21:06:08.953 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb520 34000000 00000000 00000008 84ef5abc ...4.........Z..
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb530 00000004 87afb580 00000000 00000024 ............$...
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb540 00000007 80e7cdf0 00000001 7d4e6249 ............IbN}
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb550 87afb600 83865640 83865600 00000002 ....@V...V......
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb560 84ef5abc 87afb64c 43011300 01d9bd4b .Z..L......CK...
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb570 80e7cdf0 7d4dff69 84ef5acc 84ef5abc ....i.M}.Z...Z..
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb580 00000000 7ff80000 00000000 7ff80000 ................
2019-01-21 21:06:08.954 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb590 00000000 00000000 01d9bd4b 80e7cdf0 ........K.......
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5a0 87afb624 84ef5aa0 87afb600 00000000 $....Z..........
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5b0 87afb600 87afb624 87afb6b8 7d4e0c79 ....$.......y.N}
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5c0 84ef5acc 87afb6b8 84ef5aa0 87afb73c .Z.......Z..<...
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: 87afb5d0 00000000 7d4e2cb3 87afb640 01d9bd4b .....,N}@...K...
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: code around pc:
2019-01-21 21:06:08.955 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6160 1a406800 b004bf04 f790bdb0 bf00eee6 .h@.............
2019-01-21 21:06:08.956 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6170 002c3d10 002c3cca 4604b510 44784805 .=,..<,....F.HxD
2019-01-21 21:06:08.956 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6180 60203008 f7f968a0 4620ff68 4010e8bd .0 `.h..h. F...@
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6190 baccf792 002773ca 4604b510 44784806 .....s'....F.HxD
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61a0 60203008 f7f968a0 4620ff58 fabef792 .0 `.h..X. F....
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61b0 4010e8bd bb1af792 002773aa 4ff0e92d ...@.....s'.-..O
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61c0 4682b093 460c4838 4478991c 68004615 ...F8H.F..xD.F.h
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61d0 90126800 60486808 130ae9cd 6818a906 .h...hH`.......h
2019-01-21 21:06:08.957 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61e0 93049002 90016858 0008f8da fa98f7fa ....Xh..........
2019-01-21 21:06:08.958 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e61f0 0008f8da 91034629 f04fb3e5 25000b00 ....)F....O....%
2019-01-21 21:06:08.958 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6200 94052700 faa1f7fa 901bf834 4626ac0c .'......4.....&F
2019-01-21 21:06:08.958 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6210 454d9c04 2004d820 08c5ea40 46316820 ..ME .. @... h1F
2019-01-21 21:06:08.958 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6220 4440462a 0a01ed10 0ac0eeb7 0b0ced8d *F@D............
2019-01-21 21:06:08.958 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6230 0a00ed90 0ac0eeb7 0b0eed8d 7710e9cd ...............w
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6240 0008f8da f8d0f7fa f1089805 35010808 ...............5
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e6250 901bf830 d9e1454d 0008f8da fa8af7fa 0...ME..........
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: code around lr:
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e059c d0064282 1d38f8d4 2026f648 0001f2c0 .B....8.H.& ....
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05ac 68e1e098 2026f648 0001f2c0 68e1e09b ...hH.& .......h
2019-01-21 21:06:08.959 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05bc 68a04788 d15a2800 0098f8d4 dc0f2863 .G.h.(Z.....c(..
2019-01-21 21:06:08.960 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05cc 1040eb04 60b8f8c0 ab28ed80 9b2aed80 ..@....`..(...*.
2019-01-21 21:06:08.960 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05dc 8b2ced80 0098f8d4 f8c43001 e0670098 ..,......0....g.
2019-01-21 21:06:08.960 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05ec f7fc9601 60a0fc46 d06a2800 0098f8d4 ....F..`.(j.....
2019-01-21 21:06:08.960 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e05fc db362801 1040eb04 f1006865 f10409a0 .(6...@.eh......
2019-01-21 21:06:08.960 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e060c f04f07a0 f04f0a01 69be38ff 4628b135 ..O...O..8.i5.(F
2019-01-21 21:06:08.961 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e061c fb29f7fc d0542800 e00b68ed f7fc68a0 ..)..(T..h...h..
2019-01-21 21:06:08.961 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e062c 4605f951 d04c2d00 46286869 f9d5f7fc Q..F.-L.ih(F....
2019-01-21 21:06:08.961 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e063c d0462800 60c66928 0b00ed97 0b04ed80 .(F.(i.`........
2019-01-21 21:06:08.961 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e064c 0b02ed97 0b06ed80 0b04ed97 454f3720 ............ 7OE
2019-01-21 21:06:08.961 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e065c 0b08ed80 a01cf8c5 f8c06868 6065801c ........hh....e`
2019-01-21 21:06:08.962 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e066c 2000d3d3 0098f8c4 0094f884 68659e01 ... ..........eh
2019-01-21 21:06:08.962 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e067c 4628b12d faf7f7fc 68edb300 68a0e009 -.(F.......h...h
2019-01-21 21:06:08.962 21207-21234/com.datcompany.fantasiapainter E/CRASH: 7d4e068c f920f7fc b1cd4605 46286869 f9a5f7fc .. ..F..ih(F....
Tags:
Steps To Reproduce: See description
Additional Information:
Attached Files: stack.txt (14,307 bytes) 2019-01-22 13:14
https://www.noesisengine.com/bugs/file_download.php?file_id=961&type=bug
Notes
(0005406)
nokola   
2019-01-22 07:47   
Figured out how to work around the crash. I was assigning _adorner.Width and other controls' properties (e.g. border.Thickness = new Thickness(...)) twice to the same value in two consecutive frames. Once I changed my code to assign only once, the crash stopped.

Likely crash is caused due to combination of calling UpdateLayout() and assigning values to controls' properties from C# in two consecutive frames. The code in question is handling orientation change (portrait to landscape and vice versa).

Hope that helps pinpoint the crash! Currently I'm not blocked anymore, just very cautious with assigning properties to Noesis controls.
(0005408)
sfernandez   
2019-01-22 13:14   
@jsantos Could you help here, the stack points to a crash inside the tessellator: CALL_ERROR_OR_ERROR_DATA( GLU_TESS_COORD_TOO_LARGE );
(0005409)
jsantos   
2019-01-22 14:09   
Sure, I will analyze it


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1396 [NoesisGUI] C++ SDK feature always 2019-01-21 07:40 2019-01-21 13:46
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.2.0b6  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: More generic IDictionaryIndexer implemetation
Description: Follow up from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1561

NoesisGUI currently cannot handle binding to a dictionary indexer with key other than string.

# This is currently low priority issue for us
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1389 [NoesisGUI] C++ SDK block always 2019-01-17 06:10 2019-01-18 11:44
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Cannot build C++ SDK from trunk r
Description: Hi, today I updated our source code with Noesis SDK r7643 but it caused the projects failed to build with the following errors:

1> Creating library ..\..\..\..\NoesisSDK\Lib\windows_x86\Noesis.lib and object ..\..\..\..\NoesisSDK\Lib\windows_x86\Noesis.exp
1>Rect.obj : error LNK2019: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z) referenced in function "public: struct Noesis::Recti __thiscall Noesis::Recti::Intersect(struct Noesis::Recti const &)const " (?Intersect@Recti@Noesis@@QBE?AU12@ABU12@@Z)
1>Size.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>KeyTime.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>RepeatBehavior.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>TimeSpan.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>Point.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>StringFormat.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>NumericConverter.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>PropertyPath.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>Duration.obj : error LNK2001: unresolved external symbol "int __cdecl Noesis::String::ToInteger(char const *,unsigned int *)" (?ToInteger@String@Noesis@@YAHPBDPAI@Z)
1>Thickness.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Transform.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Point.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Rect.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Size.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>SVGPath.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>KeyTime.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>RepeatBehavior.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Color.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>CornerRadius.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>Slider.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>TickBar.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>VirtualizationCacheLength.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>KeySpline.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>NumericConverter.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>DashStyle.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>GridLength.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>LengthConverter.obj : error LNK2001: unresolved external symbol "float __cdecl Noesis::String::ToFloat(char const *,unsigned int *)" (?ToFloat@String@Noesis@@YAMPBDPAI@Z)
1>NumericConverter.obj : error LNK2019: unresolved external symbol "double __cdecl Noesis::String::ToDouble(char const *,unsigned int *)" (?ToDouble@String@Noesis@@YANPBDPAI@Z) referenced in function "public: struct Noesis::ParseResult __thiscall Noesis::PE::Double::TryParse<struct Noesis::DefaultSkip>(class Noesis::ParserSource<struct Noesis::DefaultSkip> const &)" (??$TryParse@UDefaultSkip@Noesis@@@Double@PE@Noesis@@QAE?AUParseResult@2@ABV?$ParserSource@UDefaultSkip@Noesis@@@2@@Z)
1>D:\Noesis\v2.9.5.0_libz_NoesisMerge\libz\\Debug\Noesis32.dll : fatal error LNK1120: 3 unresolved externals

It seems that the following functions inside NsCore/StringUtils.h are not implemented

/// Parses the string, interpreting its content as a float and returns its value
float ToFloat(const char* str, uint32_t* charParsed);

/// Parses the string, interpreting its content as a double and returns its value
double ToDouble(const char* str, uint32_t* charParsed);

/// Parses the string, interpreting its content as an integer and returns its value
int ToInteger(const char* str, uint32_t* charParsed);

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005396)
sfernandez   
2019-01-17 13:59   
(Last edited: 2019-01-17 14:01)
The implementation of those functions is in StringUtils.cpp (added in r7629).
I've just updated trunk in a clean working directory and built Noesis-win-x86.conf without problems.

Is it possible that you didn't regenerate the Noesis project after updating?

(0005397)
jsantos   
2019-01-17 15:34   
I just generated a clean version right now and I have verified that those functions are being exported (using Depends.exe):

?ToDouble@String@Noesis@@YANPBDPAI@Z
?ToFloat@String@Noesis@@YAMPBDPAI@Z
?ToInteger@String@Noesis@@YAHPBDPAI@Z


Could you try first in a clean version? What visual studio version are you using?
(0005399)
nikobarli   
2019-01-17 23:57   
Hi, yes you are right. I missed the StringUtils.cpp when merging your source code (it wasn't SVN added to our source tree). Sorry for the trouble. Please close this issue.
(0005400)
jsantos   
2019-01-18 11:44   
Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
707 [NoesisGUI] C++ SDK minor always 2015-08-16 16:52 2019-01-15 17:09
Reporter: movra Platform:  
Assigned To: jsantos OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Fullscreen XamlPlayer big difference in GPU usage with MSAA
Description: When running certain XAMLs in fullscreen XamlPlayer there's a big difference in GPU usage between the MSAA modes.
Tags:
Steps To Reproduce: - Load TicTacToe.xaml or MasterMind.xaml in XamlPlayer.
- Disable any animations.
- Maximize the XamlPlayer window.
- When switching from MSAA 2x to MSAA 4x or MSAA 8x the GPU usage will jump from about 1% to 70%.
Additional Information:
Attached Files: TicTacToe-1920x1148-MSAA8x.png (187,356 bytes) 2015-10-19 23:07
https://www.noesisengine.com/bugs/file_download.php?file_id=564&type=bug
TicTacToe-1920x1148-MSAA4x.png (172,317 bytes) 2015-10-19 23:08
https://www.noesisengine.com/bugs/file_download.php?file_id=565&type=bug
TicTacToe-784x562-MSAA8x.png (92,057 bytes) 2015-10-19 23:08
https://www.noesisengine.com/bugs/file_download.php?file_id=566&type=bug
Notes
(0003085)
jsantos   
2015-10-08 18:25   
Yes, what you are observing is normal because MSAA demands more bandwidth to the GPU so the time is moved there.

Could you elaborate more about this ticket?

Thanks for your feedback!
(0003122)
movra   
2015-10-19 23:23   
Hm, I didn't get an e-mail about your reply.

I just retested the TicTacToe example in XAML Player. See screenshots.

MSAA 4x Maximized: 1.6 ms
MSAA 8x Windowed: 0.58 ms
MSAA 8x Maximized: 66.59 ms (sometimes it jumps to 133 ms)

See, there's a huge jump.

There should be enough video memory available. With MSAA 8x Maximized it sits at about 820 MB out of 1 GB. After closing XAML Player it's 383 MB.

But there's something else strange going on. Sometimes the MSAA 4x Maximized jumps to 33 ms and stays there until switching the AA or resizing the window.
(0005391)
jsantos   
2019-01-10 14:08   
(Last edited: 2019-01-10 14:09)
So many changes in XamlPlayer since this report. :)

Did you have the chance to test the latest version of NoesisGUI? In these new versions you need to indicate the multisample level at the command line (--samples 8)

(0005392)
movra   
2019-01-10 23:40   
Hey jsantos. I just tested 2.2.0b5. Looking good so far!

Of course, since my bug report in 2015 I have upgraded some hardware. From an i7-920 and a 460 GTX to a Ryzen 5 2600 with 1070 GTX.

Also the example TicTacToe.xaml has changed and MasterMind.xaml is removed.

So it is not really a fair comparison. But with Palette.xaml at 8x MSAA 1080p 60 fps, GPU time is max 2.39 ms.
(0005395)
jsantos   
2019-01-15 17:09   
Those are good numbers I think, you will probably get better GPU numbers if you disable vsynv (--vsync 0).

So many optimizations happened since the last version you tried. :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
826 [NoesisGUI] C# SDK minor have not tried 2016-02-09 01:38 2019-01-10 14:10
Reporter: flownthecoop Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: 1.3 Beta Download
Description: I was asked to create a ticket for the 1.3 beta and android x64 support.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003533)
jsantos   
2016-02-09 12:58   
Thanks!
(0003549)
flownthecoop   
2016-02-12 23:30   
Do you know when the beta will be available?
(0003553)
jsantos   
2016-02-16 19:03   
Can't give you a date right now. This is the plan we are following:

1. Release 1.2.6 with many improvements and optimizations.
2. Release first public 1.3 beta for C++
3. Release 1.3 for C#
4. Release 1.3 for Unity.

Please, a bit of patience. :)
(0004582)
jsantos   
2017-04-26 02:21   
android_arm and android_x86 are already available in C# SDK 2.0

is that enough for you? Do you need 64 bits?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1383 [NoesisGUI] Unity3D minor always 2019-01-08 04:42 2019-01-08 10:36
Reporter: liusujin Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: NoesisException:Can't assign property to abstract class 'CornerRadius'.
Description: ResourceDictionary code : <CornerRadius x:Key="RoundedCorner" TopLeft="5.0" TopRight="5.0" BottomRight="5.0" BottomLeft="5.0"/> can't converted in unity.
Tags: Unity
Steps To Reproduce: a. declares cornerradius source like this:<CornerRadius x:Key="RoundedCorner" TopLeft="5.0" TopRight="5.0" BottomRight="5.0" BottomLeft="5.0"/>;
b.quate it like this: CornerRadius="{StaticResource RoundedCorner}";
c.import files in unity3d;
d.the error appears.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1235 [NoesisGUI] C++ SDK major always 2018-02-06 06:01 2018-12-31 11:44
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: high OS Version: Windows 10 FCU  
Status: resolved Product Version: 2.1.0rc2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Assertion triggered inside FrameworkElement::ResetInheritanceParent()
Description: Assertion mTEmplatedParent == 0 inside FrameworkElement::ResetInheritanceParent() is triggered in some cases
Tags:
Steps To Reproduce: 1. Run XamlPlayer using VS debugger in Debug mode
2. Extract the attached Repro.zip to a directory
3. Drop NoesisControls.xaml to the XamlPlayer (there are errors because I couldn't attach all the resources, but I think it doesn't relate to the issue)
4. Exit the XamlPlayer

-> Assertion mTEmplatedParent == 0 inside FrameworkElement::ResetInheritanceParent() is triggered multiple of times:

-> If I removed the reference to NoesisStyle.xaml from inside NoesisControls.xaml, then the assertion disappears.
Additional Information:
Attached Files: Repro.zip (70,871 bytes) 2018-02-06 06:07
https://www.noesisengine.com/bugs/file_download.php?file_id=881&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1382 [NoesisGUI] C++ SDK major always 2018-12-29 10:21 2018-12-31 11:29
Reporter: nikobarli Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Windows
Summary: ContextMenuOpening event is not sent when button is disabled
Description: From https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1549&sid=9bdfdd01c790c93445e429d25e5fb373

In WPF, we get ContextMenuOpening event on both the button and the grid.
However, in NoesisGUI, the event is not fired (it is fired if the button IsEnabled="True").
Tags:
Steps To Reproduce: The XAML is as follows:

<Grid ContextMenuOpening="Grid_ContextMenuOpening">
    <Button Name="testDisabledButton" IsEnabled="False" Content="Disabled Button" ContextMenuOpening="testDisabledButton_ContextMenuOpening">
        <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Header="Test 1"/>
                <MenuItem Header="Test 2"/>
            </ContextMenu>
        </Button.ContextMenu>
    </Button>
</Grid>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1220 [NoesisGUI] Unity3D major always 2018-01-17 18:52 2018-12-27 13:33
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 2.1.0b15  
Product Build: Resolution: won't fix  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.0  
Platform: Any
Summary: Memory issue
Description: In the Control gallery sample, when switching between two items, the memory usage grows and it is never released.
In general this occurs when instantiating new user controls, the memory is not released after the UserControl is not in use anymore.
I will try to reproduce this in an empty unity project.
Tags: 2.1Beta
Steps To Reproduce:
Additional Information:
Attached Files: Noesis bug.rar (11,750 bytes) 2018-01-20 15:56
https://www.noesisengine.com/bugs/file_download.php?file_id=874&type=bug
Notes
(0005025)
sfernandez   
2018-01-18 00:34   
I'm trying to reproduce the problem with the ControlGallery and after switching between samples I see the memory growing, but after Garbage Collector kicks in memory is returned to the system.
Are you sure the memory keeps growing forever?
(0005033)
ivan_b   
2018-01-20 15:56   
I think I have located the problem, the problem is not when you load the xaml's as in the control gallery sample but when you use a UserControl and the inside a user control you use Noesis.GUI.LoadComponent.
I have uploaded a small sample.
When you switch multiple time between the two view you can see that the memory usage grows but when you click the button for garbage collection (it calls GC.Collect) the memory is not deallocated.
(0005043)
sfernandez   
2018-01-23 17:48   
Thanks for the project ivan... I'm investigating the issue.
(0005051)
sfernandez   
2018-01-25 13:53   
Hi ivan,

The problem is related to the event hook (Initialized in your example).

Our current implementation requires to store the event handler in a static dictionary to communicate with native code. This is causing the delegate Target to remain strongly referenced and object is not released.
We know about this problem but the right solution is not totally clear as we don't want to harm event performance.

In your scenario this problem can be workaround by manually unregistering from the events when control is removed from the tree:

namespace NoesisBug
{
    public class Menu : UserControl
    {
        public Menu()
        {
            this.Initialized += OnInitialized;
            this.Unloaded += OnUnloaded;
            this.InitializeComponent();
        }

        private void InitializeComponent()
        {
            Noesis.GUI.LoadComponent(this, "Assets/MemoryBug/Menu.xaml");
        }

        private void OnInitialized(object sender, EventArgs args)
        {
        }

        private void OnUnloaded(object sender, RoutedEventArgs e)
        {
            Initialized -= OnInitialized;
            Unloaded -= OnUnloaded;
        }
    }
}
(0005052)
ivan_b   
2018-01-25 14:14   
Thanks for the help.

I don't mind if it stays this way :).
(0005378)
sfernandez   
2018-12-27 13:33   
I found another simple way to break the strong reference, to allow memory to be correctly disposed.
Instead of unregistering from the events, use an intermediate weak reference:

namespace NoesisBug
{
    public class Menu : UserControl
    {
        public Menu()
        {
            WeakReference weak = new WeakReference(this);
            this.MouseDown += (s, e) => { ((Menu)weak.Target)?.OnMouseDown(s, e); };

            this.InitializeComponent();
        }

        private void InitializeComponent()
        {
            Noesis.GUI.LoadComponent(this, "Assets/MemoryBug/Menu.xaml");
        }

        private void OnMouseDown(object sender, MouseButtonEventArgs args)
        {
        }
    }
}

This will correctly destroy Menu instances, even when registering against own events.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
833 [NoesisGUI] C# SDK minor N/A 2016-02-25 09:00 2018-12-27 11:18
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Difference with WPF - StreamGeometryContext
Description: Hello!

I've noticed that StreamGeometryContext API is little bit different. The fix should be pretty easy.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1148 [NoesisGUI] Unity3D block sometimes 2017-09-15 13:51 2018-12-27 11:18
Reporter: easylaser Platform: Windows  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: NoesisException: Calling thread (12260) doesn't have access to this object (10004)
Description: Hi,
We are getting this exception rather often.
After running a debug build of noesis I tracked it down to "NoesisGUI_PINVOKE.delete_StreamGeometryContext(swigCPtr);".

In the C++ the call chain are: ~StreamGeometryContext -> Close -> UpdateFillRule -> SetFillRule ....

So, what to do? remove the close from the destructor?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004814)
andreasg   
2017-09-15 14:45   
As a quick solution, I added Dispose calls in our code to force the destructor to run in main thread
(0004817)
sfernandez   
2017-09-20 16:48   
I was going to suggest to follow the using pattern:

StreamGeometry geom = new StreamGeometry();
using (StreamGeometryContext ctx = geom.Open())
{
    ctx.BeginFigure(...);
    ctx.LineTo(...);
    ctx.LineTo(...);
}
return geom;


It should automatically call Dispose.
(0004820)
andreasg   
2017-09-21 08:04   
I know, that is my quick fix.

But the problem is still there, the Finalizers in .net is executed in some GC thread. That must be handled correctly.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1381 [NoesisGUI] C++ SDK feature have not tried 2018-12-23 20:41 2018-12-24 01:32
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Improvements to StringFormat
Description: There a few bugs in the implementation of StringFormat (see related tickets) that must be fixed. Besides, custom numeric formats should be implemented to allow things like:

<TextBlock Text="{Binding ElementName=wnd, Path=ActualWidth, StringFormat=Window width: {0:#,#.0}}" />
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
996 [NoesisGUI] C# SDK minor always 2016-12-28 16:24 2018-12-24 01:29
Reporter: WaveEngineTeam Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: StringFormat de los Binding
Description: Al usar StringFormat en los Binding, el comportamiento en el siguiente caso no es el mismo que en WPF:

En un TextBlock usando la propiedad Text de la siguiente forma, muestra el texto "{0}m". Siendo Area un double.
- Text="{Binding Info.Area, StringFormat={}{0}m}"

Si lo uso de la siguiente forma, muestra "123m":
- Text="{Binding Info.Area, StringFormat={}{0:F0}m}"

En WPF los dos casos muestran lo mismo.

Tags: WaveEngine
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1363 [NoesisGUI] Unity3D minor always 2018-11-29 05:10 2018-12-10 13:43
Reporter: arukari Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Windows
Summary: GC.Alloc occurs each time PropertyChanged is executed.
Description: Reference:https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1525&p=8720#p8689
Tags: Unity
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1367 [NoesisGUI] C++ SDK feature have not tried 2018-12-05 12:49 2018-12-05 13:06
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Implement Binding.Delay property
Description: To allow scenarios like this, where you don't want to update the source on every key stroke:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=PropertyChanged, Delay=1000}" Width="200"/>
        <TextBlock x:Name="source" Text="Type something here..." Margin="3,10"/>
    </StackPanel>
</Grid>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1143 [NoesisGUI] C# SDK minor always 2017-08-28 15:45 2018-12-04 17:39
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Exception "Native type is not registered" when trying to get Parent of ToolTip
Description: Hi guys,

I'm reworking our in-game tooltip system to use NoesisGUI native tooltip system with minimal customization on our side.
The idea is to use Absolute positioning and manually position control as we need.
The tooltip control template contains my custom content control.
On loaded I can get ToolTip object. But the problem is I can't get parent of this ToolTip object - it throws an exception "Native type is not registered".
Tags:
Steps To Reproduce:
 public class TestTooltipInside : ContentControl
    {
        public TestTooltipInside()
        {
            this.Loaded += this.OnLoaded;
        }

        protected void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
        {
            var tooltip = VisualTreeHelper.GetParent(this) as ToolTip;
            // this throws exception - cannot get the tooltip parent
            var tooltipParent = VisualTreeHelper.GetParent(tooltip);
        }
    }

And style:
 
<Style TargetType="ToolTip">
        <Setter Property="OverridesDefaultStyle" Value="true" />
        <Setter Property="Placement" Value="Absolute" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <styles:TestTooltipInside>
                        <Border Name="Border"
                            BorderThickness="1"
                            Width="{TemplateBinding Width}"
                            Height="{TemplateBinding Height}"
                            Background="Red"
                            BorderBrush="Blue">
                            <ContentPresenter Margin="4"
                                          HorizontalAlignment="Left"
                                          VerticalAlignment="Top" />
                        </Border>
                    </styles:TestTooltipInside>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Then create any control and add any tooltip. On hover tooltip should be opened and TestTooltipInside will be instantiated, when it's loaded an exception is thrown.
Additional Information:
System Description
Attached Files:
Notes
(0004797)
sfernandez   
2017-08-30 12:25   
Thanks for reporting, I found what is happening and will solve it for the next release.
(0005134)
ai_enabled   
2018-03-15 09:51   
The issue is still happening in v2.1.0f1.
(0005137)
ai_enabled   
2018-03-15 10:20   
I think it's not critical for us as I can use tooltip HorizontalOffset and VerticalOffset properties...
But we definitely need https://www.noesisengine.com/bugs/view.php?id=1142 fixed to make proper tooltips and get rid of our custom tooltips system (it's quite inconvenient to use as we can't simply set ToolTip property in XAML or C# and have to use our custom attached property like this:
ui:ToolTipServiceExtend.ToolTip="{Binding TooltipContent}">


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1044 [NoesisGUI] C# SDK tweak always 2017-04-05 18:37 2018-12-04 17:06
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: ItemCollection should implement IEnumerable
Description: ItemCollection should implement IEnumerable and all other collection interfaces it supports.
Otherwise LINQ extension methods and other standard code can not be used on the collection.

It already exposes the GetEnumerator() method defined by IEnumerable, so it is just to add the interface to the inheritance list (other classes like Collection and FreezableCollection should add it too).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1304 [NoesisGUI] C# SDK minor always 2018-05-25 10:57 2018-12-01 19:36
Reporter: grigoryp Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: confirmed Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: NoesisException on 2nd launch of Android app
Description: I think that happens due to static initialization. On Xamarin.Android AppDomain remains the same (if you don't kill process) and static fields have old values (from previous launch)

This is why its a bad practice to have any static fields in XA apps.

_view = GUI.CreateView((FrameworkElement)GUI.LoadXaml(XamlName)); - this line throws exception
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005208)
jsantos   
2018-06-01 22:34   
With '2nd launch of Android app' you mean a second Noesis initialization within the same process?
(0005216)
grigoryp   
2018-06-04 12:27   
Yeah. And on Android it happens kind of implicitly (coz the process isn't killed when u exit the application).
(0005218)
jsantos   
2018-06-05 20:46   
This is weird and also the fact that nobody reported it before. I wonder if there is a way to 'force' killing the process.
(0005353)
jsantos   
2018-12-01 19:35   
(Last edited: 2018-12-01 19:35)
We have this in the C++ Application Framework:

void android_main(android_app* app)
{
    // Store current app environment
    NoesisApp::Display::SetPrivateData(app);

    const char* argv[] = { "/system/bin/app_process" };
    NsMain(1, (char**)argv);

    // We need to kill the process because if we don't do that the native dynamic library will
    // be reused for the next activity and all our static variables will have garbage
    exit(0);
}


I will check we are doing the same in C#. Long term solution, we should stop using statics in Noesis.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
739 [NoesisGUI] Unity3D minor have not tried 2015-10-21 21:30 2018-11-30 21:08
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: GridLength struct is not exposed to C# correctly
Description: I cannot make a value converter that returns a GridLength.

I get these errors when running:

1:
 
Exception: System.InvalidOperationException: Native type is not registered
  at Noesis.Extend.GetNativeTypeInfo (IntPtr nativeType) [0x00012] in /Users/MarJoh/G3/g3_unity/Assets/Plugins/NoesisGUI/Scripts/Core/NoesisExtend.cs:294
  at Noesis.Extend.ConverterConvert (IntPtr unityType, IntPtr cPtr, IntPtr valPtr, IntPtr typePtr, IntPtr paramPtr) [0x0000d] in /Users/MarJoh/G3/g3_unity/Assets/Plugins/NoesisGUI/Scripts/Core/NoesisExtend.cs:1582
Noesis.Error.Check () (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisError.cs:21)
Noesis.UIRenderer.Noesis_CreateRenderer (IntPtr root) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRendererImports.cs:87)
Noesis.UIRenderer..ctor (Noesis.FrameworkElement content, Vector2 offscreenSize, UnityEngine.GameObject target) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRenderer.cs:112)
NoesisGUIPanel.LoadXaml () (at Assets/Plugins/NoesisGUI/Scripts/NoesisGUIPanel.cs:503)
NoesisGUIPanel.OnEnable () (at Assets/Plugins/NoesisGUI/Scripts/NoesisGUIPanel.cs:375)
 
2:
InvalidOperationException: Native type is not registered
Noesis.Extend.GetNativeTypeInfo (IntPtr nativeType) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisExtend.cs:294)
Noesis.Extend.ConverterConvert (IntPtr unityType, IntPtr cPtr, IntPtr valPtr, IntPtr typePtr, IntPtr paramPtr) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisExtend.cs:1582)
UnityEngine.Debug:LogException(Exception)
Noesis.Error:SetNativePendingError(Exception) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisError.cs:29)
Noesis.Extend:ConverterConvert(IntPtr, IntPtr, IntPtr, IntPtr, IntPtr) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisExtend.cs:1601)
System.Object:wrapper_native_0x156ccf250(IntPtr)
Noesis.UIRenderer:Noesis_CreateRenderer(IntPtr) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRendererImports.cs:86)
Noesis.UIRenderer:.ctor(FrameworkElement, Vector2, GameObject) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRenderer.cs:112)
NoesisGUIPanel:LoadXaml() (at Assets/Plugins/NoesisGUI/Scripts/NoesisGUIPanel.cs:503)
NoesisGUIPanel:OnEnable() (at Assets/Plugins/NoesisGUI/Scripts/NoesisGUIPanel.cs:375)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1162 [NoesisGUI] Unity3D minor always 2017-10-14 14:07 2018-11-30 20:38
Reporter: monstercho Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: not fixable  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.0  
Platform: Any
Summary: Noesis.GUI.SoftwareKeyboard.Hide() doesn't hide the keyboard
Description: It's known issue because Inside UnitySoftwareKeyboard.Hide() I see comment:
// TODO: Force software keyboard to hide

As workaround I added to this method:
                _keyboard.active = false;
and now it closes the keyboard

Tags: 2.1Beta
Steps To Reproduce: Call Noesis.GUI.SoftwareKeyboard.Hide() while keyboard is on-screen. Tested on iOS.
Additional Information:
Attached Files:
Notes
(0005352)
sfernandez   
2018-11-30 20:38   
New Keyboard integration API doesn't deal with this, it only notifies when software keyboard should be opened or close (when a text control gets or lost forcus).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1043 [NoesisGUI] C# SDK tweak always 2017-04-05 18:10 2018-11-30 20:35
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: VisualTreeHelper methods should receive a DependencyObject
Description: VisualTreeHelper.GetParent, VisualTreeHelper.GetChild, ... expect a DependencyObject instance in WPF.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1356 [NoesisGUI] C# SDK minor have not tried 2018-11-21 13:57 2018-11-30 18:07
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Geometry.Parse not implemented
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=752
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1181 [NoesisGUI] Unity3D minor always 2017-11-11 03:01 2018-11-30 14:46
Reporter: vaninadisc Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Mismatched return types from a Converter silently fail
Description: <Setter Property="Canvas.Left" Value="{Binding WorldLeftPosition, Converter={StaticResource ResourceKey="WorldLeftPositionConverter"} />
If WorldLeftPositionConverter provides an int instead of a float...
ie return 100; instead of return 100f;

There will be a silent failure and the property will end up getting set to 0.

It would be much better to not have a silent failure and instead throw an error.

Tags:
Steps To Reproduce: see description
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1329 [NoesisGUI] C# SDK minor have not tried 2018-10-30 12:48 2018-11-30 14:43
Reporter: C4ustic Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Exceptions in converters is thrown at confusing times.
Description: Exceptions thrown in converters are "buffered" in the Noesis.Error class and not
thrown until something else runs Check. This causes very confusing exceptions to
be thrown at the wrong time.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005269)
admin   
2018-10-30 12:49   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.
(0005270)
admin   
2018-10-30 12:51   
----------------------------------------------------------------------
 (0005269) C4ustic (reporter) - 2018-09-30 11:48
 https://www.noesisengine.com/bugs/view.php?id=1329#c5269
----------------------------------------------------------------------
Yes sure, I think it is a fairly usual case.
I set the binding in code:
c_slider = GetTemplateChild("PART_slider") as Slider;
c_sliderBinding = new Binding("SliderValue");
c_sliderBinding.Source = c_propertyItem;
c_sliderBinding.Path = new PropertyPath("Value");
c_sliderBinding.Mode = BindingMode.TwoWay;
c_sliderBinding.Converter = new NsUIConverters.NsFloatToInt();
BindingOperations.SetBinding(c_slider, Slider.ValueProperty, c_sliderBinding);

The exception should have been thrown during the SetBinding() call because it
runs the converter which throws an exception. However what happened is that the
next Noesis Code that happens to run throws that exception instead.

I have another Converter issue where I get a call to Convert when I expected
ConvertBack to be called. I don't know enough about WPF to know if this is a bug
though. I expected ConvertBack to be called every time the target changes and
Convert every time the source changes. It that is supposed to be the case you
have another bug there.

Another thing that isn't really a bug but it is very annoying is that the code
that builds Noesis Assets must have write rights to the source files. This makes
it so I must check out every UI source file and run reimport every time I open
Unity. This goes for font files too. It is not necessary since you never change
anything in the source file. To be clear in order to properly build
MyMenu.asset, MyMenu.xaml must not be write protected.
----------------------------------------------------------------------


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
906 [NoesisGUI] Unity3D major N/A 2016-06-09 16:07 2018-11-30 14:30
Reporter: Scherub Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: iOS BitCode Support
Description: Not much more to say I guess. :)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1348 [NoesisGUI] Unity3D minor have not tried 2018-11-21 13:23 2018-11-30 14:30
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: iOS
Summary: Add support for Bitcode
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=867
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1163 [NoesisGUI] Unity3D minor always 2017-10-17 21:09 2018-11-30 12:34
Reporter: Gwynneth Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Strange values appear when calling SetCurrentValue with floats on double properties.
Description: Attached properties of type double produce strange values when trying to set a float value using the method SetCurrentValue.
Tags:
Steps To Reproduce: Use example code from:

https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1201
Additional Information: Occurred on v2.1.0b4 (Unity)
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1323 [NoesisGUI] C# SDK minor have not tried 2018-10-30 12:27 2018-11-30 11:42
Reporter: JasonL663 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b5  
    Target Version: 2.2.0  
Platform: Any
Summary: Binding Context Becomes Unavailable Inside Nested Scopes
Description: Any object not inheriting from FrameworkElement loses access to the entire binding
context when inside a nested scope.
Tags:
Steps To Reproduce: 1. Open the attached repro project in Visual Studio
2. Build the project and observe the "Binding Succeeded" message confirming the
binding working for WPF
3. Open the project properties and add NOESIS to the conditional compilation symbols
4. Set the Build Action for App.xaml and MainWindow.xaml to 'None'
5. Build the project again and observe the exception indicating that the 'TestMsg' resource could not be found

6. Change the TestComponent class's base class from UIElement to
FrameworkElement
7. Build the project again and observe that the "Binding Succeeded" message
indicating that the binding is working properly again
Additional Information:
Attached Files: BindingRepro.zip (3,821,946 bytes) 2018-11-25 22:41
https://www.noesisengine.com/bugs/file_download.php?file_id=947&type=bug
Notes
(0005260)
admin   
2018-10-30 12:32   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.
I know this sounds embarrassing but could you please upload 'BindingRepro.zip' again?
(0005345)
JasonL663   
2018-11-25 22:41   
Reuploaded bug repro
(0005346)
sfernandez   
2018-11-26 19:25   
Thank you very much.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1362 [NoesisGUI] C++ SDK minor always 2018-11-28 18:03 2018-11-29 15:28
Reporter: asusralis Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Setting ListBoxItem's Focusable property allows list selection
Description: When setting ListBoxItem's Focusable property, items in the list should not be selectable. This works in WPF, but not in Noesis.

Reference: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1528

Tags:
Steps To Reproduce: <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Focusable" Value="False"/>
                </Style>
            </ListBox.ItemContainerStyle>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
850 [NoesisGUI] Unity3D major always 2016-03-18 23:30 2018-11-29 15:18
Reporter: Erio Platform: i7-4790k, GTX980, 32GB DDR3 RAM  
Assigned To: sfernandez OS: Windows 64b  
Priority: normal OS Version: 10  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Xaml Display down Y axis
Description: Hey guys,

I just found something "interesting", if you have any idea as of how to fix it, please let me know.

Now, the problem:

http://puu.sh/nKxIg/b04919454b.jpg

http://puu.sh/nKxW7/2bd9ffa8fe.jpg

The control should be centered but it's being put a bit down. the amount change with the window size.

Regarding the clicks however, they still are positionned correctly, so it's correctly hitting the buttons for the hover events etc etc but it's doing this weird visual thing.

It works well in the editor and I'm using 1.2.5f10 of NoesisGUI.

-----

No, it was not happening with Unity 5.3.

I am using the default so it's in the User Player Settings. so, it's the Forward Rendering Path.

If I do move the window around my screens the placement doesn't change. But if I do resize it, it does xD

The effect is indeed extremely weird.

THE WORSE being that it works perfectly in the editor "play"... xD

----
Tags:
Steps To Reproduce: Import NoesisGUI in Unity 5.4.0b10 editor
Add a new NoesisGUIPanel to Camera
Select a XAML (for example Style)
Press play in editor (will display correctly)
Press Build & run
Select exe location
See that it's not being displayed correctly in standalone mode.
Additional Information: Thread: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=893&p=4853#p4853

I do included a unitypackage for a setup I made showing it
Attached Files: NoesisGUIUnity5.4.0b10.unitypackage (19,860 bytes) 2016-03-18 23:30
https://www.noesisengine.com/bugs/file_download.php?file_id=629&type=bug
Notes
(0003611)
Erio   
2016-03-18 23:33   
Note: Resizing the window will (allowing it at first in the player settings) will change the space between the top of the window and the top of the xaml.
(0003617)
jsantos   
2016-03-21 15:08   
Thanks for the report Erio!
(0005339)
sfernandez   
2018-11-23 11:54   
If this is no longer happening, could we close it?
(0005351)
Erio   
2018-11-29 15:18   
I imagine this has been fixed with the use of most recent NoesisGUI versions and Unity (since this is fairly old now), but I didn't try so I could not tell.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
660 [NoesisGUI] Unity3D major N/A 2015-05-04 14:56 2018-11-27 19:55
Reporter: easylaser Platform: Android  
Assigned To: jsantos OS: Android  
Priority: immediate OS Version: 4 and 5  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Feature request: Possibility to use systems fonts
Description: Hi,

Most android distributions have a lot of common fonts in /system/fonts.
I want the possibility to use those fonts and other "non asset" fonts in Noesis Gui.

In our case, we want to let the customer download fonts at a later time
Tags: Damalini
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002619)
andreasg   
2015-05-15 07:57   
bump
(0002623)
sfernandez   
2015-05-19 09:43   
We will study this request and provide you a quote for this specific task.
(0004943)
jsantos   
2017-12-14 19:22   
We are adding support for system fonts in 2.1. For now, it is implemented only in Windows.
(0005347)
jsantos   
2018-11-27 19:54   
Already implemented for Windows, macOS, Linux, iOS and Android


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1344 [NoesisGUI] C++ SDK major always 2018-11-21 11:00 2018-11-24 01:33
Reporter: a.devaykin Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0b2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Windows
Summary: TabControl.ContentTemplate only displayed when ContentPresenter is direct child of DataTamplate
Description: XAML markup that worked in the stable version does not work in preview as the title says. Here is the basic example:
...
<TabControl TabStripPlacement="Left" Height="300">
    <TabControl.ContentTemplate>
        <DataTemplate>
            <Grid>
                <ContentPresenter Content="{Binding}" Width="230" Margin="20" />
            </Grid>
            <!-- Uncomment this line and text will be visible! -->
            <!--<ContentPresenter Content="{Binding}" Width="230" Margin="20" />-->
        </DataTemplate>
    </TabControl.ContentTemplate>
...

Here if I wrap ContentPresenter in a Grid or other elements it won't be displayed when the tab is selected. Removing any wrappers and making ContentPresenter direct child of DataTemplate solves the problem, but the no custom content template layout is possible.
Tags:
Steps To Reproduce: Check out the attached changed HelloWorld example from official Samples directory.
Additional Information:
Attached Files: HelloWorld.zip (47,514 bytes) 2018-11-21 11:00
https://www.noesisengine.com/bugs/file_download.php?file_id=946&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
620 [NoesisGUI] C++ SDK feature always 2015-03-25 17:07 2018-11-23 19:45
Reporter: ZanAlex Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Drag'n drop implementation
Description: Even though the drag'n drop example is very useful and the behaviour can be quite easily implemented, having the full set of DragEnter/DragOver/DragLeave/Drop events implemented would be very valuable. In this current state, one have to reimplement all of these behaviours with all the troubles caused by mouse capture everytime one need drag'n drop behaviour. It makes duplicated code everywhere this behaviour is needed. In my opinion, it is the kind of feature that is expected from an UI framework and not having to bother with part of this thing would be brilliant.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002363)
sfernandez   
2015-03-25 22:10   
We agree that Drag & Drop events are important, so we have plans to include them in our next major version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1138 [NoesisGUI] C++ SDK minor always 2017-08-24 09:14 2018-11-23 19:44
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Hide context menu after focus inside
Description: I create custom context menu on right mouse button.
When context menu shows I can close it by clicking outside of the context menu.
If I click on active elements (such as slider, buttons, checkitems) inside custom context menu I can't close it by clicking outside.

I temporarily add OnMouseLeave event with next code:
menu->SetIsOpen(false);

but it crashed on Win7 in xaml view MouseMove().
Tags:
Steps To Reproduce:
Additional Information: Forum topic: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1153
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1054 [NoesisGUI] C# SDK major always 2017-04-12 12:06 2018-11-23 19:33
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version: 1.3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Cannot bind StaticResource of type Double to dependency property of type Double
Description: Hi guys,

I cannot use double value defined in ResourceDictionary as static resource for style:
<system:Double x:Key="GameMenuWindowWidth">526</system:Double>

<Style TargetType="{x:Type core:GameWindow}">
        <Setter Property="WindowWidth" Value="{StaticResource GameMenuWindowWidth}" />
</Style>

Noesis.Error+NoesisException: Invalid value 'Boxed<Float32>' for property '.?AVTypeClass@Core@Noesis@@.WindowWidth'

It seems NoesisGUI consider every system:Double property to be Float32 (system:Single), but dependency property is expecting value of type double.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1360 [NoesisGUI] C++ SDK major always 2018-11-22 17:45 2018-11-23 17:32
Reporter: tkawa Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.2.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Windows
Summary: MouseDown/Up events come to owner control when click to context menu.
Description: See: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1508

Tags: C++
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1352 [NoesisGUI] C++ SDK minor have not tried 2018-11-21 13:50 2018-11-23 16:58
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Loaded event raised twice when UpdateLayout is called on children.
Description: If you call UpdateLayout() on children of an element from its Loaded event, then Loaded is raised twice on the children and error is thrown.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
508 [NoesisGUI] Unity3D major always 2014-12-03 00:01 2018-11-23 16:52
Reporter: MrHayato Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: ColorAnimationUsingKeyframes does not animate the dependency property
Description: When using a ColorAnimationUsingKeyframes, and you use Dynamic Resources as the value for the keyframes, the actual resource itself gets modified. For example:

<Color x:Key="Theme1Color">#FFFFFFFF</Color>
<Color x:Key="Theme2Color">#FF000000</Color>


<Storyboard x:Key="ChangeSelectedTextColorTransition">
    <ColorAnimationUsingKeyFrames BeginTime="0:0:0"
                                    Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
        <EasingColorKeyFrame KeyTime="0:0:0"
                                Value="{DynamicResource Theme1Color}" />
        <EasingColorKeyFrame KeyTime="0:0:0.250"
                                Value="{DynamicResource Theme2Color}" />
    </ColorAnimationUsingKeyFrames>
</Storyboard>

When running this storyboard via C# and passing in a TextBlock as the FrameworkElement to animate, it looks like the textblock is animating from white to black as it should. However, everything else that uses the Theme1Color resource is now black. It seems like the animation isn't animating the TextBlock's color, but it's actually modifying the Color resource itself.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0001856)
MrHayato   
2014-12-03 00:41   
Actually, turns out the problem is because the TextBlock has a binding to Foreground like so:

<TextBlock Foreground="{Binding TextColorBrush}" />

And TextColor is a reference to the original Color brush (which I get from the ResourceDictionary programmatically), and is getting modified because of the binding. Setting Mode=OneWay does not solve the problem unfortunately.
(0002000)
sfernandez   
2015-01-21 13:04   
Hi,

I tried the following sample in WPF:

---
<Grid
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Background="Red">
    <Grid.Resources>
        <Color x:Key="Theme1Color">#FFFFFFFF</Color>
        <Color x:Key="Theme2Color">#FF000000</Color>
        <SolidColorBrush x:Key="TextColorBrush" Color="{DynamicResource Theme1Color}"/>
        <Storyboard x:Key="ChangeSelectedTextColorTransition">
            <ColorAnimationUsingKeyFrames
                Storyboard.TargetName="txt"
                Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
                <EasingColorKeyFrame KeyTime="0:0:0" Value="{StaticResource Theme1Color}" />
                <EasingColorKeyFrame KeyTime="0:0:2" Value="{StaticResource Theme2Color}" />
            </ColorAnimationUsingKeyFrames>
        </Storyboard>
    </Grid.Resources>
    <Grid.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource ChangeSelectedTextColorTransition}"/>
            </EventTrigger.Actions>
        </EventTrigger>
    </Grid.Triggers>
    <Rectangle x:Name="rect" Fill="{StaticResource TextColorBrush}" Width="200" Height="100"/>
    <TextBlock x:Name="txt" Text="Hello World" FontSize="40" Foreground="{Binding Fill, ElementName=rect}"/>
</Grid>
---

And the animation is modifying the color of the rectangle too, so I think we are doing the correct thing here.

You can Freeze the resource obtained from the ResourceDictionary, so it gets cloned when animation tries to modify it.

Let me know if this solution works for you.
(0002015)
MrHayato   
2015-01-26 21:56   
I'm not sure that's a viable solution. To me, the Color itself should not change. It should be making a copy of the color and animating that rather than modifying the original resource. We use the same color key throughout the application so it's not possible for us to Freeze the value every time we need to animate it.

Right now, we have to animate everything through code to prevent this issue. Our current solution is something along the lines of:


        private ColorAnimation CreateSelectAnimation()
        {
            var colorAnim = new ColorAnimation();

            colorAnim.SetFrom(new NullableColor(Theming.GetColor("BlackColor")));
            colorAnim.SetTo(new NullableColor(Theming.GetColor("Theme1Color")));
            colorAnim.SetDuration(new Duration(new TimeSpan(0.250)));
            
            return colorAnim;
        }
(0002016)
MrHayato   
2015-01-26 22:24   
And this is our other animation code for animating a color when we don't know what color we're animating from:


        private void Animate(TextBlock depObj, Action callback)
        {
            var sb = new Storyboard();
            var currentColor = depObj.GetForeground().As<SolidColorBrush>().GetColor();

            //TODO: Refactor once we get DataTriggers.
            //Bug in Noesis prevents us from using the values directly in a storyboard...
            depObj.SetForeground(new SolidColorBrush(new Color(currentColor.GetRedF(), currentColor.GetGreenF(), currentColor.GetBlueF(), currentColor.GetAlphaF())));

            Storyboard.SetTarget(_selectAnimation, depObj);
            Storyboard.SetTargetProperty(_selectAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)"));

            sb.GetChildren().Add(_selectAnimation);
            BeginStoryboard(depObj, sb, callback);
        }
(0002079)
MrHayato   
2015-02-13 06:43   
Hi Sergio, I looked into this a little further as I encountered this problem again. The way to fix it in WPF is to add 'x:Shared="False"' to the SolorColorBrush. This isn't supported in the Unity version of Noesis, but it would solve the problem. This creates a new instance of the color object instead of using the reference. Here's the working WPF example:

    <Grid
        Background="Red">
        <Grid.Resources>
            <Color x:Key="Theme1Color">#FFFFFFFF</Color>
            <Color x:Key="Theme2Color">#FF000000</Color>
            <SolidColorBrush x:Key="Theme1Brush" x:Shared="False" Color="{StaticResource Theme1Color}" />
            <SolidColorBrush x:Key="Theme2Brush" x:Shared="False" Color="{StaticResource Theme2Color}" />


            <Storyboard x:Key="ChangeSelectedTextColorTransition">
                <ColorAnimationUsingKeyFrames RepeatBehavior="Forever"
                                              AutoReverse="True"
                                              Storyboard.TargetName="txt"
                                              Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
                    <EasingColorKeyFrame KeyTime="0:0:0" Value="{StaticResource Theme1Color}" />
                    <EasingColorKeyFrame KeyTime="0:0:2" Value="{StaticResource Theme2Color}" />
                </ColorAnimationUsingKeyFrames>
            </Storyboard>
        </Grid.Resources>

        <Grid.Triggers>
            <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                <EventTrigger.Actions>
                    <BeginStoryboard Storyboard="{StaticResource ChangeSelectedTextColorTransition}" />
                </EventTrigger.Actions>
            </EventTrigger>
        </Grid.Triggers>

        <Rectangle x:Name="rect" Fill="{StaticResource Theme1Brush}" Width="200" Height="100" />
        <TextBlock x:Name="txt" Text="Hello World" FontSize="40" Foreground="{StaticResource Theme1Brush}" />
    </Grid>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
573 [NoesisGUI] Unity3D minor always 2015-02-16 01:15 2018-11-23 16:32
Reporter: elecman Platform: Win 7  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: FontFamily compatibility with Inkscape
Description: The FontFamily property exported by inkscape does not include a hash (#) character, causing a parsing error. This can be added manually, but to include the workflow, it would be great if you can interpret FontFamily="Arial" the same way as FontFamily="#Arial". This would require the font to be in the same folder as the xaml, but that is an acceptable trade off.
Tags:
Steps To Reproduce: -Open Inkscape 0.91
-Add text.
-Export as xaml.
-Remove the span (not supported yet) and put the text in the textbox item.
-Add the xaml in a Unity NoesisGUI project.
-See the console for the parsing error.
Additional Information:
Attached Files:
Notes
(0004854)
elecman   
2017-10-27 11:15   
Any update on this?
(0004860)
sfernandez   
2017-10-30 12:40   
Nothing new on this issue yet.

We haven't decided because using a FontFamily without the # has a different meaning, it indicates that you are using a system font.
We'll discuss about this topic again and let you know what are our plans.
(0004869)
elecman   
2017-10-31 01:13   
It will be fine if I just modify the NoesisGUI code dealing with this. Which part do I need to modify?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1350 [NoesisGUI] C++ SDK minor have not tried 2018-11-21 13:44 2018-11-23 16:31
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Incorrect layout of Grid
Description: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=656
Tags:
Steps To Reproduce:
<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Ellipse Grid.Column="0" Grid.Row="0" Width="200" Height="3000" Fill="Red"/>

        <StackPanel Grid.Column="0" Grid.Row="1">
            <Button Content="Save Planet" Margin="2"/>
            <Button Content="Revert Planet" Margin="2"/>
            <Button Content="Randomize Planet" Margin="2"/>
        </StackPanel>

    </Grid>
</Page>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
816 [NoesisGUI] Unity3D minor random 2016-02-01 22:39 2018-11-23 13:19
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: Animating "(TextElement.Foreground).(Brush.Opacity)" leads sometimes to unexpected results
Description: I've created a TextBox style that occasionally has some unexpected results due to the following line:

[code]
<DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(TextElement.Foreground).(Brush.Opacity)" To="0.5" />
[/code]

The results so far only apply to a ReadOnly textbox and reach from everything as expected over black font to non-visible font (but the text is there).

I've put the whole Style under "Additional Information".
Tags:
Steps To Reproduce:
Additional Information:     <Style TargetType="TextBox">
        <Setter Property="Background" Value="{DynamicResource ControlBackgroundBrush}" />
        <Setter Property="BorderThickness" Value="{DynamicResource TextBoxBorderThickness}" />
        <Setter Property="Foreground" Value="{DynamicResource ControlForegroundBrush}" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="Padding" Value="5,2" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TextBox">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualStateGroup.Transitions>
                                    <VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver"/>
                                    <VisualTransition GeneratedDuration="0:0:0.3" From="MouseOver" />
                                    <VisualTransition GeneratedDuration="0:0:0.1" To="Disabled" />
                                    <VisualTransition GeneratedDuration="0:0:0.1" From="Disabled" />
                                    <VisualTransition GeneratedDuration="0:0:0.1" To="ReadOnly"/>
                                    <VisualTransition GeneratedDuration="0:0:0.1" From="ReadOnly"/>
                                </VisualStateGroup.Transitions>
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="FocusBorder" Storyboard.TargetProperty="(Border.Background).(Brush.Opacity)" To="0.2" />
                                        <ColorAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" To="{DynamicResource ControlDisabledColor}" />
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="ReadOnly">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderBrush).(Brush.Opacity)" To="0.3" />
                                        <DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(TextElement.Foreground).(Brush.Opacity)" To="0.5" />
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="Border" Storyboard.TargetProperty="(Border.BorderBrush).(Brush.Opacity)" To="0.8" />
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="FocusStates">
                                <VisualStateGroup.Transitions>
                                    <VisualTransition GeneratedDuration="0:0:0.1" To="Focused"/>
                                    <VisualTransition From="Focused" GeneratedDuration="0:0:0.3"/>
                                </VisualStateGroup.Transitions>
                                <VisualState x:Name="Unfocused" />
                                <VisualState x:Name="Focused">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="FocusBorder" Storyboard.TargetProperty="(Border.BorderBrush).(Brush.Opacity)" To="1.0" />
                                        <DoubleAnimation Storyboard.TargetName="FocusBorder" Storyboard.TargetProperty="(Border.Background).(Brush.Opacity)" To="0.1" />
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>

                        <Border Name="Border" CornerRadius="{DynamicResource ControlCornerRadiusSmall}" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
                                BorderThickness="{TemplateBinding BorderThickness}">
                            <Border.BorderBrush>
                                <SolidColorBrush Color="{DynamicResource ControlBorderColor}" Opacity="0.5" />
                            </Border.BorderBrush>

                                <ScrollViewer x:Name="PART_ContentHost"
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
                        </Border>

                        <Border Name="FocusBorder" CornerRadius="{DynamicResource ControlCornerRadiusSmall}" BorderThickness="{DynamicResource TextBoxBorderThickness}">
                            <Border.Background>
                                <SolidColorBrush Color="{DynamicResource ControlFocusColor}" Opacity="0.0" />
                            </Border.Background>
                            <Border.BorderBrush>
                                <SolidColorBrush Color="{DynamicResource ControlBorderColor}" Opacity="0.0" />
                            </Border.BorderBrush>
                        </Border>

                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
Attached Files:
Notes
(0003508)
sfernandez   
2016-02-02 13:06   
The behavior is unexpected as you are animating a DynamicResource brush that it is probably shared and animated in other places.

Anyway I tried this Style in Kaxaml and it complains about trying to animate an immutable object.

Besides inherited properties doesn't transfer its values beyond the ControlTemplate, so if you want to modify the Foreground property of a Control you should do it using a Setter that targets the control itself:

<ControlTemplate TargetType="TextBox">
  ...
  <ControlTemplate.Triggers>
    <Trigger Property="IsReadOnly" Value="True">
      <Setter Property="Foreground" Value="{DynamicResource ControlReadOnlyBrush}"/>
    </Trigger>
  <ControlTemplate.Triggers>
</ControlTemplate>
(0003509)
Scherub   
2016-02-02 13:55   
Ah, of course. I forgot that it was a shared resource. I had the same problem with the border and background too until I instantiated a new SolidColorBrush from a color.

I'll try to change it, thanks! :)
(0003510)
jsantos   
2016-02-02 15:04   
Anyway, Sergio, shouldn't we be giving the same error as KaXaml/WPF?
(0003513)
sfernandez   
2016-02-02 18:02   
Yes, this is something we have to fix.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
799 [NoesisGUI] Unity3D minor always 2016-01-18 13:50 2018-11-23 13:03
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Focused controls inside ScrollViewer disappear when size of ScrollViewer is reduced
Description: I've uploaded a screenshot displaying the problem. But as a short explanation:

I have a "create user" dialog that is divided into a 'form' area and a message area. The form area can take all the space that's the available and the content is surrounded by a ScrollViewer. The message area just takes the space that's required.

Now in a worst case scenario this dialog displays lots of messages. The Scollbars appear as they should but if the user is in the "password confirmation" textbox and now changes the password that doesn't match the other password, the currently focused textbox disapppears (partially) as the ScrollViewer doesn't keep it inside its visible area.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: AccountManagement - Create User 4.jpg (124,213 bytes) 2016-01-18 13:51
https://www.noesisengine.com/bugs/file_download.php?file_id=608&type=bug
Notes
(0003462)
sfernandez   
2016-01-19 07:09   
Yes, I confirmed it is a bug. We will fix it as soon as possible.

Meanwhile you can force the focused TextBox to show entirely by calling BringIntoView when you add messages to the message area.
(0003463)
Scherub   
2016-01-19 17:14   
Okay, thanks a lot. :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
786 [NoesisGUI] Unity3D minor always 2015-12-20 14:29 2018-11-23 12:29
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: ComboBox-Popup stays open when containing UserControls switches to hidden
Description: I have an options dialog with various ComboBoxes. When I open a ComboBox (the popup/dropdown of it) and just close (hide) the dialog without mouse interaction (using keyboard or gamepad) the popup stays open.

Until this is solved I'll try to use the "IsDropDownOpen"-Property to close it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
785 [NoesisGUI] Unity3D minor always 2015-12-19 05:37 2018-11-23 12:28
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: Changing content of ToggleButton in Trigger doesn't work
Description: As the subject says, changing the content of a toggle button depending on its checked state doesn't work. Also setting the content in the style-setter doesn't work. It works in WPF, though.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
932 [NoesisGUI] Unity3D minor always 2016-07-27 12:55 2018-11-23 12:26
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.6f4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: Button in ListBox does not absorb touch events
Description: On touch devices when the Button is placed inside the ListBox and you click on the button the item in the ListBox gets selected. Also the Button stay highlighted.
Tags:
Steps To Reproduce: Start the scene GUI.unity in the project it will be displayed a list with a button inside each element. Every time the button is clicked the containing ListBoxItem will be selected.
I have tried on an Android device
Additional Information:
Attached Files: Assets.zip (1,130,731 bytes) 2016-07-27 12:55
https://www.noesisengine.com/bugs/file_download.php?file_id=690&type=bug
Notes
(0004097)
sfernandez   
2016-08-25 19:41   
Ok, I was able to reproduce the problem with this sample, thank you.
We will fix it as soon as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
909 [NoesisGUI] Unity3D major always 2016-06-11 14:52 2018-11-23 12:13
Reporter: roland.tomczak Platform: Android  
Assigned To: jsantos OS: Android 4.2.2  
Priority: normal OS Version: Android 4.2.2  
Status: feedback Product Version: 1.2.6f3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ClipToBounds issue
Description: The issue occurs on a Samsung Galaxy Tab 3 8' (2013).

ClipToBounds on a screen-sized item prevent the item to render : The item is simply not displayed. The issue occurs on the GUIPanel being associated with the main camera (but if I render the camera to a texture, I don't have the issue).

I don't have the issue on smaller items. I don't have the issue on Lenovo Yoga Tab 3, or on my Samsung Galaxy S6.

For now, my only workaround is to overlap two black rectangles over the viewbox (cf repro) in order to "hide" the non-clipped part of the screen.
Tags:
Steps To Reproduce: The problem occured with this very simple snippet :

This very simple snippet :
<UserControl>
 <Grid>
  <Viewbox x:Name="vbxMain">
   <Grid Width="1280" Height="800" ClipToBounds='true'>
    <Rectangle Width="Auto" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
   </Grid>
  </Viewbox>
</Grid>
</UserCOntrol>

The same with (ClipToBounds is set to the viewbox, not on its content):

<UserControl>
 <Grid>
  <Viewbox x:Name="vbxMain" ClipToBounds='true'>
   <Grid Width="1280" Height="800">
    <Rectangle Width="Auto" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
   </Grid>
  </Viewbox>
</Grid>
</UserCOntrol>
Additional Information:
Attached Files:
Notes
(0005341)
sfernandez   
2018-11-23 12:13   
Is this still being an issue with the latest 2.1 version?


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
831 [NoesisGUI] C# SDK minor always 2016-02-24 11:54 2018-11-23 11:52
Reporter: anthonyLeBot Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.5f8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Datetime binding not working
Description: Hello When binding a textblock to a datetime field, nothing is displayed.
If i put a converter, it won't enter into the converter
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
792 [NoesisGUI] C++ SDK minor always 2016-01-07 15:27 2018-11-23 11:40
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.5f9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Setter value not restored in a Trigger if animated
Description: As described in this forum post: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=856

If a trigger sets a new Brush and animates it (on the Trigger.EnterActions), when the trigger stops being active, original Brush value is not restored, the animation stays playing.
Tags:
Steps To Reproduce:
Additional Information:
<Style x:Key="MyStyle" TargetType="{x:Type common:MyComponent}">
  <Style.Triggers>
    <DataTrigger Binding="{Binding State}" Value="Done">
      <Setter Property="Background" Value="Green"/>
    </DataTrigger>
    <DataTrigger Binding="{Binding State}" Value="Doing">
      <Setter Property="Background">
        <Setter.Value>
          <RadialGradientBrush x:Name="RadialGradient" >
            <GradientStop Color="White" Offset="0.0"/>
            <GradientStop Color="{StaticResource Color.Active.Bright.Normal}" Offset="1.5"/>
          </RadialGradientBrush>
        </Setter.Value>
      </Setter>
      <DataTrigger.EnterActions>
        <BeginStoryboard x:Name="FlashingAnimation">
          <Storyboard>
              <DoubleAnimation x:Name="xAnimation" 
              Storyboard.TargetProperty="Background.RadiusX" 
              From="5" To="1" Duration="0:0:1" AutoReverse="True" 
              RepeatBehavior="Forever" />
              <DoubleAnimation x:Name="yAnimation" 
              Storyboard.TargetProperty="Background.RadiusY" 
              From="5" To="1" Duration="0:0:1" AutoReverse="True" 
              RepeatBehavior="Forever" />
          </Storyboard>
        </BeginStoryboard>
      </DataTrigger.EnterActions>
      <DataTrigger.ExitActions>
        <StopStoryboard BeginStoryboardName="FlashingAnimation"/>
      </DataTrigger.ExitActions>
    </DataTrigger>
  </Style.Triggers>
</Style>
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
789 [NoesisGUI] Unity3D major always 2015-12-29 09:31 2018-11-23 11:39
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Brush animations won't stop playing when leaving DataTrigger.
Description: If a trigger sets a new Brush and animates it (on the Trigger.EnterActions), when the trigger stops being active, original Brush value is not restored, the animation stays playing.
Tags:
Steps To Reproduce:
Additional Information: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=856&sid=fcd3b2b04b06023400cb3c2965c22ad0
Attached Files:
Notes
(0003425)
sfernandez   
2015-12-29 12:24   
(Last edited: 2015-12-29 12:27)
Hi,

While we solve this bug, you can use another Storyboard in the Trigger.ExitActions to transition to normal state brush:

<Style x:Key="MyStyle" TargetType="{x:Type common:MyComponent}">
  <Setter Property="Background">
    <Setter.Value>
          <RadialGradientBrush>
            <GradientStop Color="Green" Offset="0.0"/>
            <GradientStop Color="Green" Offset="1.5"/>
          </RadialGradientBrush>
    </Setter.Value>
  </Setter>
  <Style.Triggers>
    <DataTrigger Binding="{Binding State}" Value="Doing">
      <DataTrigger.EnterActions>
        <BeginStoryboard>
          <Storyboard>
            <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[0].Color"
              To="White" Duration="0:0:0.2"/>
            <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[1].Color"
              To="{StaticResource Color.Active.Bright.Normal}" Duration="0:0:0.2"/>
            <DoubleAnimation Storyboard.TargetProperty="Background.RadiusX" 
              From="5" To="1" Duration="0:0:1" AutoReverse="True" 
              RepeatBehavior="Forever" />
            <DoubleAnimation Storyboard.TargetProperty="Background.RadiusY" 
              From="5" To="1" Duration="0:0:1" AutoReverse="True" 
              RepeatBehavior="Forever" />
          </Storyboard>
        </BeginStoryboard>
      </DataTrigger.EnterActions>
      <DataTrigger.ExitActions>
        <BeginStoryboard>
          <Storyboard>
            <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[0].Color"
              To="Green" Duration="0:0:0.5"/>
            <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[1].Color"
              To="Green" Duration="0:0:0.2"/>
          </Storyboard>
        </BeginStoryboard>
      </DataTrigger.ExitActions>
    </DataTrigger>
  </Style.Triggers>
</Style>


(0003649)
peterh   
2016-03-23 13:46   
Thank you. Sadly, this workaround won't cut it for me, as the actual state (as opposed to the minimal example I gave you) is much more complex than the workaround allows.
I'll just have to wait until this is fixed instead.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
936 [NoesisGUI] Unity3D minor N/A 2016-08-17 16:01 2018-11-23 11:15
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: Property Accessor change isn't detected automatically
Description: In one of my abstract base view models I have a property of type GameField that is also called GameField. During prototyping the setter was public which I now changed (even if I'm still prototyping) to private while also adding a public method that assigned the property instead and also executes some other code.

After this change I always got the exception mentioned under 'Additional Information'. Since it was complaining about the PropertyAccessor.Set (that's apparently missing) I thought it might have something to do with the serialization process. After some debugging I also found that NoesisGUI still thinks that the property is 'writable' and so tries to assign a null value. Then it fails as the property has no setter.

After manually invoking NoesisGUI to rebuild it worked without trouble. So my question is why it doesn't detect this change? I tried switching it a few times and always end up with the same result.
Tags:
Steps To Reproduce:
Additional Information: NotImplementedException: The requested feature is not implemented.
Noesis.Extend+PropertyAccessorT`1[System.Object].Set (System.Object instance, System.Object value) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisExtendProps.cs:36)
Noesis.Extend.SetPropertyValue[Object] (Noesis.PropertyAccessor prop, System.Object instance, System.Object value) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisExtend.cs:3027)
Noesis.Extend.SetPropertyValue_BaseComponent (IntPtr nativeType, Int32 propertyIndex, IntPtr cPtr, IntPtr valType, IntPtr val) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisExtend.cs:3407)
UnityEngine.Debug:LogException(Exception)
Noesis.Debug:LogException(Exception) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisDebug.cs:24)
Noesis.Error:SetNativePendingError(Exception) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisError.cs:33)
Noesis.Extend:SetPropertyValue_BaseComponent(IntPtr, Int32, IntPtr, IntPtr, IntPtr) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisExtend.cs:3412)
System.Object:wrapper_native_00007FFF87BF6F70(IntPtr, IntPtr)
Noesis.NoesisGUI_PINVOKE:Collection_Add(HandleRef, HandleRef) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Proxies/NoesisGUI_PINVOKE.cs:53143)
Noesis.Collection:Add(Object) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Proxies/Collection.cs:163)
LifeSim.Gui.Game.GameView:OnDisplayUserControlAdded(DisplayUserControl) (at Assets/[Gui]/Game/GameViewModel.cs:126)
Proton.Unity.Gui.Noesis.GuiUserControl:AddDisplayEntry(DisplayUserControl) (at Assets/Libraries/Proton/Gui/Noesis/BaseUserControl/GuiUserControl.cs:218)
LifeSim.Gui.Game.GameView:OnEndPostInit() (at Assets/[Gui]/Game/GameViewModel.cs:99)
Proton.Unity.Gui.Noesis.GuiUserControl:OnPostInit() (at Assets/Libraries/Proton/Gui/Noesis/BaseUserControl/GuiUserControl.cs:119)
System.Reflection.MethodBase:Invoke(Object, Object[])
Noesis.Extend:OnPostInit(IntPtr, IntPtr) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Core/NoesisExtend.cs:1632)
System.Object:wrapper_native_00007FFF87BF6F70(IntPtr, IntPtr)
Noesis.NoesisGUI_PINVOKE:Collection_Add(HandleRef, HandleRef) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Proxies/NoesisGUI_PINVOKE.cs:53143)
Noesis.Collection:Add(Object) (at Assets/Plugins/Proton/Gui/Noesis.Lib/Proxies/Collection.cs:163)
Proton.Unity.Gui.Noesis.BaseRootViewModel:OnNavigationUserControlAdded(NavigationUserControl) (at Assets/Libraries/Proton/Gui/Noesis/BaseClasses/BaseRootViewModel.cs:177)
Proton.Unity.Gui.Noesis.BaseRootViewModel:AddNavigationEntry(NavigationUserControl) (at Assets/Libraries/Proton/Gui/Noesis/BaseClasses/BaseRootViewModel.cs:156)
LifeSim.Gui.RootViewModel:OnBeginPostInit() (at Assets/[Gui]/Root/RootViewModel.cs:16)
Proton.Unity.Gui.Noesis.BaseRootViewModel:OnPostInit() (at Assets/Libraries/Proton/Gui/Noesis/BaseClasses/BaseRootViewModel.cs:71)
Proton.Unity.Gui.Noesis.GuiBehaviour:SetRootViewModel() (at Assets/Libraries/Proton/Gui/Noesis/GuiBehaviour.cs:243)
Proton.Unity.Gui.Noesis.GuiBehaviour:Start() (at Assets/Libraries/Proton/Gui/Noesis/GuiBehaviour.cs:120)
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
250 [NoesisGUI] Unity3D major always 2013-08-29 08:16 2018-11-23 11:08
Reporter: ai_enabled Platform: Unity  
Assigned To: sfernandez OS: Windows  
Priority: low OS Version: 7  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: VisualBrush won't shown
Description: I attached example XAML, which works in Kaxaml.
Tags:
Steps To Reproduce: <!-- This example shows how to use a VisualBrush to paint shapes and controls.
     The code behind file, PaintingWithImages.xaml.cs, contains a default
     constructor that initializes the markup defined here. -->
<UserControl
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  >

  <StackPanel>

    <StackPanel.Background>
      <VisualBrush Opacity="0.1" Viewport="0,0,250,30" ViewportUnits="Absolute" TileMode="Tile" Stretch="None">
        <VisualBrush.Visual>
          <Border Width="250" Background="Transparent">
            <TextBlock Margin="5" FontFamily="Palatino Linotype" FontSize="20px" >
              Painting with VisualBrush
              <TextBlock.Foreground>
                <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                  <LinearGradientBrush.GradientStops>
                    <GradientStop Offset="0.0" Color="Black" />
                    <GradientStop Offset="1.0" Color="Blue" />
                  </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
              </TextBlock.Foreground>
            </TextBlock>
          </Border>
        </VisualBrush.Visual>
        <VisualBrush.RelativeTransform>
          <RotateTransform Angle="0" CenterX="0.5" CenterY="0.5" />
        </VisualBrush.RelativeTransform>
      </VisualBrush>
    </StackPanel.Background>

    <TextBlock Name="test"></TextBlock>
    <Border Margin="0,10,0,30"
      BorderBrush="Black" BorderThickness="1" >
      <Border.Background>
        <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
          <LinearGradientBrush.GradientStops>
            <GradientStop Offset="0.0" Color="#CCCCFF" />
            <GradientStop Offset="1.0" Color="Transparent" />
          </LinearGradientBrush.GradientStops>
        </LinearGradientBrush>
      </Border.Background>

      <TextBlock Margin="10">
        <Bold>Painting with a VisualBrush</Bold><LineBreak/><LineBreak/>
        A VisualBrush can be used to paint areas with text, shapes, controls, and more.
      </TextBlock>
    </Border>

    <StackPanel Orientation="Horizontal" Margin="10" Background="White" HorizontalAlignment="Left">
      <Rectangle Width="150" Height="150" Stroke="Black" Margin="0,0,5,0">
        <Rectangle.Fill>
          <VisualBrush Viewport="0,0,95,35" ViewportUnits="Absolute" TileMode="Tile">
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <TextBlock FontSize="10pt" Margin="10">Hello, World!</TextBlock>
              </StackPanel>
            </VisualBrush.Visual>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>

      <Rectangle Width="150" Height="150" Stroke="Black" Margin="5,0,5,0">
        <Rectangle.Fill>
          <VisualBrush>
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <TextBlock FontSize="10pt" Margin="10">Hello, World!</TextBlock>
              </StackPanel>
            </VisualBrush.Visual>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>

      <Rectangle Width="150" Height="150" Stroke="Black" Margin="5,0,0,0">
        <Rectangle.Fill>
          <VisualBrush Viewport="0,0,95,35" ViewportUnits="Absolute" TileMode="Tile">
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <TextBlock FontSize="10pt" Margin="10">Hello, World!</TextBlock>
              </StackPanel>
            </VisualBrush.Visual>
            <VisualBrush.RelativeTransform>
              <RotateTransform Angle="45" CenterX="0.5" CenterY="0.5" />
            </VisualBrush.RelativeTransform>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>
    </StackPanel>


    <StackPanel Orientation="Horizontal" Margin="10" Background="White" HorizontalAlignment="Left">
      <Rectangle Width="150" Height="150" Stroke="Black" Margin="0,0,5,0">
        <Rectangle.Fill>
          <VisualBrush Viewport="0,0,50,50" ViewportUnits="Absolute" TileMode="Tile">
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <Rectangle Width="25" Height="25" Fill="Red" Margin="2" />
                <TextBlock FontSize="10pt" Margin="2">Hello, World!</TextBlock>
                <Button Margin="2">A Button</Button>
              </StackPanel>
            </VisualBrush.Visual>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>

      <Rectangle Width="150" Height="150" Stroke="Black" Margin="5,0,5,0">
        <Rectangle.Fill>
          <VisualBrush>
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <Rectangle Width="25" Height="25" Fill="Red" Margin="2" />
                <TextBlock FontSize="10pt" Margin="2">Hello, World!</TextBlock>
                <Button Margin="2">A Button</Button>
              </StackPanel>
            </VisualBrush.Visual>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>

      <Rectangle Width="150" Height="150" Stroke="Black" Margin="5,0,0,0">
        <Rectangle.Fill>
          <VisualBrush Viewport="0,0,50,50" ViewportUnits="Absolute" TileMode="Tile">
            <VisualBrush.Visual>
              <StackPanel Background="Transparent">
                <Rectangle Width="25" Height="25" Fill="Red" Margin="2" />
                <TextBlock FontSize="10pt" Margin="2">Hello, World!</TextBlock>
                <Button Margin="2">A Button</Button>
              </StackPanel>
            </VisualBrush.Visual>
            <VisualBrush.RelativeTransform>
              <RotateTransform Angle="45" CenterX="0.5" CenterY="0.5" />
            </VisualBrush.RelativeTransform>
          </VisualBrush>
        </Rectangle.Fill>
      </Rectangle>
    </StackPanel>
  </StackPanel>
</UserControl>
Additional Information:
Attached Files:
Notes
(0000708)
sfernandez   
2013-08-29 10:57   
Our current VisualBrush implementation only works when VisualBrush.Visual refers to a Visual in the logical tree, for example:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <StackPanel VerticalAlignment="Center" Width="400">
        <StackPanel x:Name="Source" Orientation="Horizontal">
            <TextBlock Text="Hello World" Margin="2"/>
            <Button Content="A button" Margin="2"/>
            <Rectangle Width="100" Fill="Red" Margin="2"/>
        </StackPanel>
        <Rectangle Stroke="Black" Height="100" Margin="0,10">
            <Rectangle.Fill>
                <VisualBrush Visual="{Binding ElementName=Source}" Stretch="Uniform"/>
            </Rectangle.Fill>
        </Rectangle>
    </StackPanel>
    
</Grid>

We will create a ticket in our feature request database to support inline definition of the VisualBrush.Visual property.

Do you need this feature right now?
(0000709)
ai_enabled   
2013-08-29 11:02   
I need VisualBrush or DrawingGeometry, without it I can't skin some controls. For example, I want to make health bar with small gradation rectangles. I have a XAML for it and it works good in WPF, but I can't port it to NoesisGUI. We decide not to use bitmap images for this, because our UI must be 100% vector-based and scalable.
(0000710)
sfernandez   
2013-08-29 11:17   
Could you please paste here that health bar code to try figure out how to do it with current implemented features?
(0000711)
ai_enabled   
2013-08-29 12:32   
I need to implement bar like this: http://screencloud.net/v/EAzn

I have implemented bar this way:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid.Resources>
    <Geometry x:Key="BarBrushPath">F1M200,2C200,2 207,2 207,2 207,2 220,15 220,15 220,15 213,15 213,15 213,15 200,2 200,2z M191,2C191,2 198,2 198,2 198,2 211,15 211,15 211,15 204,15 204,15 204,15 191,2 191,2z M182,2C182,2 189,2 189,2 189,2 202,15 202,15 202,15 195,15 195,15 195,15 182,2 182,2z M173,2C173,2 180,2 180,2 180,2 193,15 193,15 193,15 186,15 186,15 186,15 173,2 173,2z M164,2C164,2 171,2 171,2 171,2 184,15 184,15 184,15 177,15 177,15 177,15 164,2 164,2z M155,2C155,2 162,2 162,2 162,2 175,15 175,15 175,15 168,15 168,15 168,15 155,2 155,2z M146,2C146,2 153,2 153,2 153,2 166,15 166,15 166,15 159,15 159,15 159,15 146,2 146,2z M137,2C137,2 144,2 144,2 144,2 157,15 157,15 157,15 150,15 150,15 150,15 137,2 137,2z M128,2C128,2 128.438,2 129.094,2 131.062,2 135,2 135,2 135,2 148,15 148,15 148,15 141,15 141,15 141,15 128,2 128,2z M119,2C119,2 119.438,2 120.094,2 122.062,2 126,2 126,2 126,2 139,15 139,15 139,15 132,15 132,15 132,15 119,2 119,2z M110,2C110,2 110.438,2 111.094,2 113.062,2 117,2 117,2 117,2 130,15 130,15 130,15 123,15 123,15 123,15 110,2 110,2z M101,2C101,2 101.438,2 102.094,2 104.062,2 108,2 108,2 108,2 121,15 121,15 121,15 114,15 114,15 114,15 101,2 101,2z M92,2C92,2 92.438,2 93.094,2 95.062,2 99,2 99,2 99,2 112,15 112,15 112,15 105,15 105,15 105,15 92,2 92,2z M83,2C83,2 83.438,2 84.094,2 86.062,2 90,2 90,2 90,2 103,15 103,15 103,15 96,15 96,15 96,15 83,2 83,2z M74,2C74,2 74.438,2 75.094,2 77.062,2 81,2 81,2 81,2 94,15 94,15 94,15 87,15 87,15 87,15 74,2 74,2z M65,2C65,2 65.438,2 66.094,2 68.062,2 72,2 72,2 72,2 85,15 85,15 85,15 78,15 78,15 78,15 65,2 65,2z M56,2C56,2 56.438,2 57.094,2 59.062,2 63,2 63,2 63,2 76,15 76,15 76,15 69,15 69,15 69,15 56,2 56,2z M47,2C47,2 47.438,2 48.094,2 50.062,2 54,2 54,2 54,2 67,15 67,15 67,15 60,15 60,15 60,15 47,2 47,2z M38,2C38,2 45,2 45,2 45,2 58,15 58,15 58,15 51,15 51,15 51,15 38,2 38,2z M29,2C29,2 36,2 36,2 36,2 49,15 49,15 49,15 42,15 42,15 42,15 29,2 29,2z M20,2C20,2 27,2 27,2 27,2 40,15 40,15 40,15 33,15 33,15 33,15 20,2 20,2z M11,2C11,2 18,2 18,2 18,2 31,15 31,15 31,15 24,15 24,15 24,15 11,2 11,2z M2,2C2,2 9,2 9,2 9,2 22,15 22,15 22,15 15,15 15,15 15,15 2,2 2,2z</Geometry>
      <VisualBrush x:Key="BarBrush">
         <VisualBrush.Visual>
           <Path Fill="#00b8fc" Data="{StaticResource BarBrushPath}" />
         </VisualBrush.Visual>
      </VisualBrush>
  </Grid.Resources>
  
  <Rectangle x:Name="ValueDisplay" HorizontalAlignment="Left"
                                   Margin="0" Canvas.Left="1" Canvas.Top="4"
                                   Fill="{StaticResource BarBrush}" Width="221" MaxWidth="221"
                                   Height="13" MaxHeight="13">
      <Rectangle.Clip>
          <RectangleGeometry x:Name="ValueDisplayClip" Rect="0,0,221,13" />
      </Rectangle.Clip>
  </Rectangle>
</Grid>


<!-- Displayed value controled by setting Rect for the ValueDisplayClip. -->
(0000712)
sfernandez   
2013-08-29 13:06   
The following should work with the same results:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  
    <Grid.Resources>
        <Geometry x:Key="BarBrushPath">F1M200,2C200,2 207,2 207,2 207,2 220,15 220,15 220,15 213,15 213,15 213,15 200,2 200,2z M191,2C191,2 198,2 198,2 198,2 211,15 211,15 211,15 204,15 204,15 204,15 191,2 191,2z M182,2C182,2 189,2 189,2 189,2 202,15 202,15 202,15 195,15 195,15 195,15 182,2 182,2z M173,2C173,2 180,2 180,2 180,2 193,15 193,15 193,15 186,15 186,15 186,15 173,2 173,2z M164,2C164,2 171,2 171,2 171,2 184,15 184,15 184,15 177,15 177,15 177,15 164,2 164,2z M155,2C155,2 162,2 162,2 162,2 175,15 175,15 175,15 168,15 168,15 168,15 155,2 155,2z M146,2C146,2 153,2 153,2 153,2 166,15 166,15 166,15 159,15 159,15 159,15 146,2 146,2z M137,2C137,2 144,2 144,2 144,2 157,15 157,15 157,15 150,15 150,15 150,15 137,2 137,2z M128,2C128,2 128.438,2 129.094,2 131.062,2 135,2 135,2 135,2 148,15 148,15 148,15 141,15 141,15 141,15 128,2 128,2z M119,2C119,2 119.438,2 120.094,2 122.062,2 126,2 126,2 126,2 139,15 139,15 139,15 132,15 132,15 132,15 119,2 119,2z M110,2C110,2 110.438,2 111.094,2 113.062,2 117,2 117,2 117,2 130,15 130,15 130,15 123,15 123,15 123,15 110,2 110,2z M101,2C101,2 101.438,2 102.094,2 104.062,2 108,2 108,2 108,2 121,15 121,15 121,15 114,15 114,15 114,15 101,2 101,2z M92,2C92,2 92.438,2 93.094,2 95.062,2 99,2 99,2 99,2 112,15 112,15 112,15 105,15 105,15 105,15 92,2 92,2z M83,2C83,2 83.438,2 84.094,2 86.062,2 90,2 90,2 90,2 103,15 103,15 103,15 96,15 96,15 96,15 83,2 83,2z M74,2C74,2 74.438,2 75.094,2 77.062,2 81,2 81,2 81,2 94,15 94,15 94,15 87,15 87,15 87,15 74,2 74,2z M65,2C65,2 65.438,2 66.094,2 68.062,2 72,2 72,2 72,2 85,15 85,15 85,15 78,15 78,15 78,15 65,2 65,2z M56,2C56,2 56.438,2 57.094,2 59.062,2 63,2 63,2 63,2 76,15 76,15 76,15 69,15 69,15 69,15 56,2 56,2z M47,2C47,2 47.438,2 48.094,2 50.062,2 54,2 54,2 54,2 67,15 67,15 67,15 60,15 60,15 60,15 47,2 47,2z M38,2C38,2 45,2 45,2 45,2 58,15 58,15 58,15 51,15 51,15 51,15 38,2 38,2z M29,2C29,2 36,2 36,2 36,2 49,15 49,15 49,15 42,15 42,15 42,15 29,2 29,2z M20,2C20,2 27,2 27,2 27,2 40,15 40,15 40,15 33,15 33,15 33,15 20,2 20,2z M11,2C11,2 18,2 18,2 18,2 31,15 31,15 31,15 24,15 24,15 24,15 11,2 11,2z M2,2C2,2 9,2 9,2 9,2 22,15 22,15 22,15 15,15 15,15 15,15 2,2 2,2z</Geometry>
    </Grid.Resources>
  
    <Path Fill="#00b8fc" Data="{StaticResource BarBrushPath}">
        <Path.Clip>
            <RectangleGeometry x:Name="ValueDisplayClip" Rect="0,0,221,13" />
        </Path.Clip>
    </Path>
</Grid>
(0000713)
ai_enabled   
2013-08-30 12:10   
Yes, it works.
I just want to have CustomControl for displaying bars, with bar presented as rectangle. So I plan to use VisualBrush for healthbar case, and SolidColorBrush for other cases.
Don't bother, I've rewrited this CustomControl to ContentControl :-). It works great - by default I set Rectangle to Content property, in healthbar case I use Path.
Works great! You can look on screenshots here http://atomictorch.com/?p=151

By the way, it would be great if you fix this issue in later releases (1.0.5-1.1.0), and while it's not implemented, add this documentation note:
"Current VisualBrush implementation only works when VisualBrush.Visual refers to a Visual in the logical tree".


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
576 [NoesisGUI] Unity3D major always 2015-02-16 23:12 2018-11-23 10:41
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Registering a collection as dependency property is already initialized even if default value is set to null
Description: This bug entry is related to issue #570 and you can find the project file under issue #575.

I've integrated the fix mentioned in issue #570 and it kind of works when I set the default value to null. The strange thing is now that the ObservableCollection "Tabs" that I registered is already instantiated within the OnPostInit() method. I can only guess but it probably happens because I define the values in XAML. If this is correct then it should be changed as WPF would tell you that the collection "Tabs" is still null.

The other problem is that the collection is already filled with values so the CollectionChanged event is never called. That's also different to WPF.

In the files of the project there are lots of missing safety checks as I was just trying to figure out a way to work around these problems.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0002093)
sfernandez   
2015-02-17 12:03   
Yes, our parser is automatically creating the collection when you populate the collection property in the xaml, so you don't have to explicitly write a node in the xaml with the collection type:

---
<Object>
  <Object.List>
    <!--ItemList--> <!-- This becomes optional -->
      <Item/>
      <Item/>
      <Item/>
    <!--/ItemList--> <!-- ... -->
  </Object.List>
</Object>
---

And as long as the items are specified in the xaml, they are serialized with the collection in the xaml resource. Then, as you load the xaml, you already have those items added to the collection when the OnPostInit() gets called.

Is this behavior a problem?
(0002100)
Scherub   
2015-02-17 14:02   
You mean despite the fact that it works different in WPF? :P

Okay, to be more serious I have to think this through. The problem here was mainly that I expected a different beahviour and took me a while to figure out what's going on and why the CollectionChanged event was never called.

And I know there were problems/restrictions in v1.1 when you serialized other UserControls and / or collections so instead of this I changed everything so it was created dynamically.

I'll take another look at it and tell you how it went.
(0002102)
sfernandez   
2015-02-17 14:12   
:)

It's just to prioritize tasks, if you can live with current behavior for a while, we can assign it a low priority.

Of course, the right thing is to behave exactly as WPF, and we will change this.
(0002107)
Scherub   
2015-02-17 19:15   
Leave it as is for now. Unfortunately before I can continue you have to fix #575 first or least tell me what's causing it so I may be able to circumvent it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
769 [NoesisGUI] Unity3D minor always 2015-11-22 19:23 2018-11-23 02:17
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: ICommand.CanExecute returning false doesn't disable the button
Description: As the summary already says. When binding a command to a button the button doesn't get disabled when the CanExecute returns false.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003286)
sfernandez   
2015-11-23 10:49   
Yes, this is a known issue. The CanExecuteChanged event is not monitored and IsEnabled is not updated by Buttons or MenuItems.

If it is an important feature for you we can try to include in a near release.
(0003289)
Scherub   
2015-11-23 14:28   
Nope, it's not that important. I have already known about this for a long time and my workaround was to just bind the IsEnabled property to the appropriate property.

I primarily entered it here because it just occured to me when I was already submitting another issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
574 [NoesisGUI] Unity3D feature always 2015-02-16 01:23 2018-11-23 02:16
Reporter: elecman Platform: Win 7  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Partial support for span
Description: NoesisGUI doesn't support span text yet but in the mean time, it would be great if you can put the text in the span in the TextBlock, so it at least shows up when exporting from inkscape. This would speed up the workflow significantly.
Tags:
Steps To Reproduce: -Open inkscape 0.91
-Add some text.
-Export as XAML.
-Add XAML to a NoesisGUI Unity project.
-Run the project and you will see that the text doesn't show up.
-Now move the text in the span to the TextBlock property.
-Run the project again and now the text shows up.
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
288 [NoesisGUI] Unity3D feature N/A 2013-10-25 10:40 2018-11-23 02:16
Reporter: EisenbergEffect Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: MVVM
Description: This is a meta ticket to track all the features needed to implement MVVM
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0000819)
jsantos   
2013-10-27 02:55   
Rob, could you give the priority of these tasks?If i understood you right, PropertyChanged delegate in attached properties is the first thing to improve.
(0000820)
jsantos   
2013-10-27 02:56   
Sergio, rob passed me the following link to learn more about MVVM: http://www.caliburnproject.org/

Let's have a look a it to have a clear idea of the objective.
(0000986)
jsantos   
2014-01-07 15:24   
Just and update about this:

We already implemented binding creation in 1.1.3 and will probably implement PropertyChanged delegate support in 1.1.4.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
287 [NoesisGUI] C++ SDK feature N/A 2013-10-25 02:20 2018-11-23 02:15
Reporter: EisenbergEffect Platform: All  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Behaviors SDK
Description: In WPF, Silverlight and Windows Phone 7 there was great advantage in having the Blend Behaviors SDK available. A version of this is now being created for Windows Store and Phone 8.1. There is an open source implementation of the original SDK, ported to Win8 found here: https://github.com/jlaanstra/Windows.UI.Interactivity

Consider the possibility of getting something like this up and running on top of Noesis. It could be built as an add on, but we would need to confirm that the supporting features in the Xaml runtime are present in order to build it.

This is a major win for MVVM frameworks as well as declarative programming.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
431 [NoesisGUI] Unity3D feature N/A 2014-07-21 23:09 2018-11-23 02:15
Reporter: wckdspn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: PlaySoundAction Behavior implementation
Description: While it is not a requirement, for a better data-driven workflow, it would be nice to have the ability to set audio triggers from the editor. That isn't to say that I am asking for Noesis to support audio; what I really want is the hooks. Basically, I'd like the following:

The parser support the PlaySoundAction.
The runtime allows you to register handlers for Play Sound (the call would pass the name of the clip).
The runtime calls the register handler when the trigger occurs

With these, it'll be fairly easy to implement UI audio.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0001454)
sfernandez   
2014-07-28 23:48   
(Last edited: 2014-07-28 23:48)
We need to implement the Behaviors API first in order to expose this Behavior action.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
410 [NoesisGUI] Unity3D feature N/A 2014-06-01 19:30 2018-11-23 02:14
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Support of custom behaviors
Description: It would be really helpful to be able to create custom behaviors.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004548)
ai_enabled   
2017-03-22 10:38   
(Last edited: 2017-03-22 10:39)
Could we finally have this in NoesisGUI 2.0.x or 2.1?
That really would allow us to simplify some complex cases by applying reusable behavior.

(0004549)
Scherub   
2017-03-22 10:43   
Oh, not that I mind with this issue, but can other reporters see my issues now? :)

And I agree with ai_enabled, proper behavior-support would simplify various things.
(0004550)
ai_enabled   
2017-03-22 10:45   
Scherub, I've earned a super-power to see all the reported issues :-).
(0004551)
Scherub   
2017-03-22 10:50   
Lucky you!
(0004552)
ai_enabled   
2017-03-22 10:55   
I will not consider myself really lucky as I've reported 64 issues here... :-)
It's good to have this super-power - I could easily check if the issue is already reported. Less duplicated issue reports.
But let's stop using Mantis as chat :-).
(0004553)
Scherub   
2017-03-22 11:16   
(Last edited: 2017-03-22 11:49)
Mhm, I just realized that I've reported 117 issues. Do you mean you reported 64 that are duplicates of others?

I wish I had this super-power as well. Anyone here who can give them to me, too? :D

And does the 'private' checkbox hide my notes from others? It would be good to know.

Edit: I've posted a new private note as I can't set an existing one to private. Can you see it?

(0004554)
ai_enabled   
2017-03-22 11:44   
(Last edited: 2017-03-22 11:49)
I have reported total 166 issues. I'm sure 117 is also pretty much :-).
64 is what displayed on my page, perhaps it's amount of still opened issues...

Try to make private your post about "117 issues" and I will tell you if I can see it.

(0004557)
jsantos   
2017-03-23 19:34   
Hey guys, sorry for the confusion. This was not on purpose. ai_enabled shouldn't have this power, but it seems that the upgrade we did to "updater" is providing that. I think I should fix it but at the same time I think this is better...

Should we make all the previous report "private" by default and start providing public visibility to everybody?

We are a bit concerned because many clients provide here "private" information about their game.
(0004558)
Scherub   
2017-03-24 02:53   
I think your mentioned approach would be way better as it would hopefully result in less work for everyone involved. Obviously I can't speak for everyone, but many of my reported issues don't really have that much information about the games I'm working on and I would presume it's similar to all other developers.

In case you're going to change it, it's important to notify everyone beforehand, probably even highlighting it on the 'new issue' page. You could also ask all devs before you change it. :)

@ai_enabled: I presume you weren't able to read my note 4555?
(0004559)
ai_enabled   
2017-03-24 04:44   
Hi Jesús!
I didn't abused my new "super-power" :-). But you're right - most customers don't expect that their issue reports might become public to anyone else outside of your team. The already reported issues should be kept private as they're very often contain links on private (often non-protected/obfuscated) builds and investigation requests.
But users should be able to make these issues public by editing them (it would be best if they will be able to edit the issue title and description as well).

During the creation of new issues it would be best to have an option of marking the issue report as private or public.
The feature requests (like this one) should be always public.

Another great feature - to avoid issues duplication - is displaying "similar issues" when you print the issue title for reporting - it displays the already reported issues with similar title. Thought it makes most sense when you have too many request every day and I'm not sure if there is a Mantis plugin for this feature...

The good example is the JetBrains issue tracker - see https://youtrack.jetbrains.com/issues/RSRP try create a new issue and write "Tree view" in the title - it will find similar issues. And almost all reported issues are public (you select "visible to" when create an issue). Also they're protecting the uploaded files - so they're accessible only by admins and the author. I know we could not upload our game builds here as it will inflate Mantis DB, but you might add some protection for posted URLs by default.

@Scherub, that's correct, I cannot see it.

Regards!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
787 [NoesisGUI] Unity3D crash have not tried 2015-12-22 18:32 2018-11-23 02:12
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Using ColorAnimation on a Brush target crashes NoesisGUI
Description: Hi, I use the following Storyboard:

[code]
            <Storyboard x:Key="ShowStoryboard">
                <ColorAnimation From="Transparent" To="#CC000000" Duration="0:0:0.25" Storyboard.TargetName="MainGrid" Storyboard.TargetProperty="Background" />

                <DoubleAnimationUsingKeyFrames Storyboard.TargetName="WindowBorder" Storyboard.TargetProperty="RenderTransform.ScaleX">
                    <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0.0" />
                    <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="1.025" />
                    <EasingDoubleKeyFrame KeyTime="0:0:0.35" Value="1.0" />
                </DoubleAnimationUsingKeyFrames>
                
                <DoubleAnimationUsingKeyFrames Storyboard.TargetName="WindowBorder" Storyboard.TargetProperty="RenderTransform.ScaleY">
                    <EasingDoubleKeyFrame KeyTime="0:0:0" Value="0.0" />
                    <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="1.05" />
                    <EasingDoubleKeyFrame KeyTime="0:0:0.35" Value="1.0" />
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
[/code]

Both DoubleAnimations work without any problems but the ColorAnimation crashes NoesisGUI. I remember there was a problem with the ColorAnimation a long time ago. I don't know whether that was fixed. But the problem reported there was about using Static/DynamicResources in combination with ColorAnimation.

I'll give the ColorAnimationUsingKeyframes a try now.

I've also attached the crash dumps and various logs.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: NoesisGUI-Dumps - 20151222.zip (297,837 bytes) 2015-12-22 18:32
https://www.noesisengine.com/bugs/file_download.php?file_id=602&type=bug
Notes
(0003420)
Scherub   
2015-12-22 18:43   
Okay, I've changed the ColorAnimation to:

[code]
<ColorAnimation From="Transparent" To="{DynamicResource DarkenBackgroundColor}" Duration="0:0:0.25" Storyboard.TargetName="MainGrid" Storyboard.TargetProperty="(Grid.Background).(SolidColorBrush.Color)" />
[/code]

and it works now, even when using a DynamicResource. :)

Anyway, it still probably shouldn't crash NoesisGUI under certain circumstances. :)
(0003421)
sfernandez   
2015-12-22 19:51   
The crash occurs when using a ColorAnimtion with a target property that is not of type Color. This probably occurs with all the Animation timelines if target property doesn't match the animation type.

I changed the summary to reflect this and will fix it as soon as possible.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
473 [NoesisGUI] Unity3D major always 2014-09-28 22:33 2018-11-23 02:11
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Support for all TabControl tab placements
Description: It seems to be impossible to implement a vertical TabControl.

The default template doesn't support the placement property and overwriting the template didn't bring the expected results, even if it worked in WPF.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0001623)
Scherub   
2014-09-28 22:37   
Sorry, I was to quick and unfortunately it's not possible to edit the summary.
(0001624)
sfernandez   
2014-09-29 11:51   
Measure and Arrange of the TabPanel is not taking into account the TabStripPlacement property of the TabControl.

We will implement it.
(0005239)
sfernandez   
2018-06-26 13:04   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
869 [NoesisGUI] Unity3D minor always 2016-04-19 13:00 2018-11-23 02:08
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.2.5f9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: UIElement C# API missing RaiseEvent method
Description: The API for UIElement is missing the RaiseEvent method which is present in the WPF API. The documentation for UIElement at http://www.noesisengine.com/docs/Gui.Core._UIElement.html state that RaiseEvent should be present.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003816)
sfernandez   
2016-04-20 10:51   
RoutedEvents are not exposed to C# API yet.

First we need to provide access to the EventManager so new RoutedEvents can be created and registered.
Then we have to make public RoutedEvent already defined by the controls.
And finally expose the AddHandler/RemoveHandler and RaiseEvent methods of the UIElement to deal with RoutedEvents.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
813 [NoesisGUI] Unity3D minor always 2016-02-01 10:32 2018-11-23 02:07
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: FrameworkPropertyMetadataOptions does not exist
Description: I was trying to tell a dependency property that it should bind TwoWay by default but unfortunately that option is missing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003497)
sfernandez   
2016-02-01 12:52   
(Last edited: 2016-02-01 14:40)
The name of the enum is not correct, it was exposed as FrameworkOptions.

We will rename it (along with many more things) in 1.3 version.

(0003498)
Scherub   
2016-02-01 13:26   
Oh okay, somehow I missed that. Thanks! :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
397 [NoesisGUI] Unity3D minor always 2014-05-21 14:55 2018-11-23 02:02
Reporter: Kristof Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.1.0f1  
    Target Version:  
Platform: Any
Summary: TextDecorations are not supported
Description: I want to underline a TextBlock. In WPF this is done using the TextDecorations property. In Noesis I see that this property exists, but if I try to set it from XAML then I get this error:


Parsing TextBlock.TextDecorations (@48,6).
'Underline' is not a valid value for property 'TextBlock.TextDecorations'


This is the XAML:

<TextBlock Text="FORGOT PASSWORD?" TextDecorations="Underline"/>
Tags:
Steps To Reproduce:
Additional Information: Reported in the forum: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=406
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
790 [NoesisGUI] Unity3D minor have not tried 2016-01-02 19:06 2018-11-23 01:31
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Binding to RowDefinition Height doesn't work
Description: I am trying to place an element vertically relative to a calculated item value. Just think of a horizontal level list where each item is vertically placed in a different position.

I have it working in WPF but unfortunately it doesn't work in NoesisGUI. The problem seems to be the binding of the RowGridDefinition to the GridLength property of the item. Apparently it's ignored completely.

I've also tried giving the (for the calculation) required height (so I could actually rid of the percentage) to the bound item but the property's setter is never called.

I'll now try a MultiValueConverter even if I don't know whether they're already supported by NoesisGUI.

Following the DataTemplate I've used:

[code]
            <DataTemplate x:Key="LevelTemplate">
                <Border x:Name="Border" Width="{Binding ActualWidth, ElementName=MainPanel, Converter={StaticResource MultiplyConverter}, ConverterParameter=0.2}"
                      Height="{Binding ActualHeight, ElementName=MainPanel, Converter={StaticResource MultiplyConverter}, ConverterParameter=0.45}">
                    <Grid>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*" />
                                <RowDefinition Height="{Binding ActualHeight, ElementName=LevelItemGrid}" />
                            </Grid.RowDefinitions>

                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="{Binding Row1, Mode=OneWay}" />
                                    <RowDefinition Height="{Binding Row2, Mode=OneWay}" />
                                </Grid.RowDefinitions>

                                <Border x:Name="Decorator" BorderBrush="Black" BorderThickness="1" />
                            </Grid>
                        </Grid>


                        <Grid x:Name="LevelItemGrid" VerticalAlignment="Top" Height="{Binding ActualHeight, ElementName=BackButton, Converter={StaticResource MultiplyConverter}, ConverterParameter=1.5}">
                            <Grid.RenderTransform>
                                <TranslateTransform Y="{Binding ActualHeight, ElementName=Decorator}" />
                            </Grid.RenderTransform>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="60*" />
                                <RowDefinition Height="20*" />
                                <RowDefinition Height="20*" />
                            </Grid.RowDefinitions>

                            <Button x:Name="Button" Grid.Row="0" Grid.RowSpan="2" IsEnabled="{Binding IsPlayable}" Style="{DynamicResource CircleButtonStyle}"
                                Command="{Binding DataContext.PlayLevelCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding .}">
                                <TextBlock Text="{Binding Name}" noesis:Text.Stroke="{DynamicResource TextStrokeBrush}" noesis:Text.StrokeThickness="{DynamicResource TextStrokeThickness}" />
                            </Button>

                            <prot:ImageViewbox Grid.Row="1" Grid.RowSpan="2" ImageBrush="{Binding Medal, Converter={StaticResource ImageKeyToImageBrushConverter}, ConverterParameter=Icons_Star_}" />
                        </Grid>
                    </Grid>
                </Border>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding IsPlayable}" Value="False">
                        <Setter TargetName="Button" Property="BorderBrush" Value="{DynamicResource ButtonOuterStrokeDisabledBrush}" />
                    </DataTrigger>
                    <DataTrigger Binding="{Binding IsLastPlayed}" Value="True">
                        <Setter TargetName="Button" Property="BorderBrush" Value="{DynamicResource ButtonOuterStrokeHighlightedBrush}" />
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
[/code]
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Levels_Select.jpg (496,739 bytes) 2016-01-07 13:38
https://www.noesisengine.com/bugs/file_download.php?file_id=603&type=bug
Notes
(0003430)
sfernandez   
2016-01-07 11:29   
Hi,

Binding RowDefinition.Height works on simple scenarios, I just confirmed it. Maybe it is a problem on the layout when trying to calculate the element sizes and calculations are dependant between elements.

Could you please provide an image of what you want to accomplish? Maybe I can find an alternative while we solve the problem.

Thanks.
(0003437)
Scherub   
2016-01-07 13:39   
Okay, I've uploaded an old mockup image.
(0003442)
sfernandez   
2016-01-12 06:53   
Have you tried to use a TranslateTransform to move the item inside an available space?

<DataTemplate x:Key="LevelTemplate">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition/> <!-- item height depends on this row height -->
      <RowDefinition/> <!-- available space to move the item -->
    </Grid.RowDefinitions>
    <YourItem Grid.Row="0">
      <YourItem.RenderTransform>
        <TranslateTransform Y="{Binding OffsetY}"/>
      </YourItem.RenderTransform>
      ...
    </YourItem>
  </Grid>
</DataTemplate>
(0003443)
Scherub   
2016-01-12 07:22   
The problem here is that OffsetY requires a fixed value. I was trying to avoid having fixed values wherever possible and use percentages instead.
(0003444)
sfernandez   
2016-01-12 07:49   
Well, OffsetY can be anything you want. This value can be something relative to screen size, item size, whatever you can imagine.
(0003446)
Scherub   
2016-01-12 08:38   
Yes, you're right but for that I have to calculate the value and for that I need the available space and the percentage/alpha where it should appear.

As I said in the opening 'post' I also tried to submit the for the calculation required space to the bound level class over a property setter but that doesn't work either.

But maybe I just don't understand what you're trying to do/tell me.
(0003447)
sfernandez   
2016-01-12 09:40   
For example, to get from the View the screen size you can have an attached property, set in a top element covering the screen, that subscribes to its SizeChanged event.

Knowing that value, the OffsetY property can be calculated like this:

public float OffsetY
{
  get
  {
    return GlobalLayout.ScreenSize.Height * 
      GlobalLayout.LevelSize.Height * // relative: [0..1]
      GlobalLayout.GetOffset(Index, Parent.NumLevels); // relative: [0..1]
  }
}


GetOffset provides a relative offset depending on the position of the Level in the Levels array.

Does this make any sense in your scenario? :)
(0003448)
Scherub   
2016-01-12 11:42   
Well, that's not really the solution I was looking for but I guess it has to do for now.

The thing is that I already have the PC version in mind and I will use for various views different platform-dependend XAMLs but the same ViewModel and data (container) classes. So it would be much better to do these kind of things within the XAML.

But as I said, I'll do all the calculations in the data container class for now. Thanks again! :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
773 [NoesisGUI] Unity3D minor N/A 2015-11-26 02:54 2018-11-22 23:24
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: DynamicResourceExtension and IProvideValueTarget missing
Description: I'm trying to do something like this: http://stackoverflow.com/questions/33816511/how-do-you-create-a-dynamicresourcebinding-that-supports-converters-stringforma

But there are several missing classes in NoesisGUI such as DynamicResourceExtension or IProvideValueTarget.

My goal is to return a dynamic resource using a IValueConverter to convert my input 'Medal' into an 'image' of my image sheet.


Now that there are DataTriggers supported I'm wondering whether I should use these for now as a workaround. The problem with this approach is that I have to define it in several templates. Do you have a better idea? :)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003294)
sfernandez   
2015-11-26 14:08   
(Last edited: 2015-11-26 14:08)
Would it be a possibility to load the 'image' resources in a global class that can be accessed from the converter?

Something like this:

public static class ImageResources
{
  ResourceDictionary _resources;

  public static ImageBrush Find(string key)
  {
    if (_resources == null)
    {
      _resources = NoesisGUISystem.LoadXaml("Assets/Images/ImageResources.xaml");  
    }
    return _resources[key] as ImageBrush;
  }
}


And the converter:

public class IdImageConverter : IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  {
    return ImageResources.Find(((ImageId)value).ToString());
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
    throw new NotImplementedException();
  }
}


(0003302)
Scherub   
2015-11-27 11:41   
Well, it's not the solution I had in mind but at least it works. Thanks! :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
741 [NoesisGUI] C++ SDK minor sometimes 2015-10-22 12:02 2018-11-22 23:14
Reporter: ZanAlex Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Non-rectangular clipping region not affecting hit tests
Description: I've tried to do a radial menu that could have any given number of entries (I mean by that between 2 and 6). Here's the result so far:
https://gyazo.com/8f193373be331f78aa358114dbf471b1
The way I've done it is to create all the button I need, all these button fill the entire Canvas. Then, I cut each button to be a slice of pie.

It works reasonnably fine with few entries, but after 6 it gets weird with buttons being rolled over and pressed instead of others. I've also noticed that a button can be clicked if the cursor is out of the circle, but inside its bouding box. I think my solution is inefficient and I should probably try another way (Button should not overlap, I guess) but I'd like to know if that kind of problem is known to you. It seems the hitbox of a button is not exactly its unclipped part.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005332)
sfernandez   
2018-11-22 23:14   
I was able to reproduce it with this simple xaml:
<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Border BorderBrush="Red" BorderThickness="2" Width="300" Height="300">
        <Button Content="Hello">
            <Button.Clip>
                <StreamGeometry>M0,30L30,0 300,60 200,300z</StreamGeometry>
            </Button.Clip>
        </Button>
    </Border>
</Grid>


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
715 [NoesisGUI] Unity3D major always 2015-09-10 10:56 2018-11-22 21:41
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: RenderOptions.BitmapScalingMode doesn't apply to children
Description: Hello!
I just noticed that RenderOptions.BitmapScalingMode="NearestNeighbor" set to root element doesn't apply to children controls with image brushes.
Tested it with WPF and it works fine there.
We want to actively use raster images in our next project, so this task is important for us. Thanks!
Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Screenshot at 19-33-01.png (116,180 bytes) 2015-09-17 14:40
https://www.noesisengine.com/bugs/file_download.php?file_id=536&type=bug
Screenshot at 19-33-28.png (295,624 bytes) 2015-09-17 14:40
https://www.noesisengine.com/bugs/file_download.php?file_id=537&type=bug
TestGameLogo.7z (271,797 bytes) 2015-09-17 14:41
https://www.noesisengine.com/bugs/file_download.php?file_id=538&type=bug
Notes
(0002940)
ai_enabled   
2015-09-10 11:01   
Also I cannot see any difference between "HighQuality" and "Linear" settings. But it's very noticeable in WPF. Are you sure using trilinear texture quality when "HighQuality" selected? I'm talking about images loaded by NoesisGUI (defined by path in ResourceDictionary).
(0002944)
jsantos   
2015-09-10 16:33   
The difference between HighQuality and Linear only makes sense if you are using mipmaps. By default Unity doesn't generate mipmaps for 2D Textures. We also decided to do that in NoesisGUI v1.2, mipmaps are not generated.

Do you think you could get better quality with them?
(0002946)
ai_enabled   
2015-09-11 05:09   
Yes, in some cases trilinear texture filtering give us much better quality with scale animations. It looks much better in WPF with "HighQuality" setting.

But we need to have a control over it, as not all the UI textures need to have mipmaps. Maybe a good solution will be taking mipmaps property from Unity TextureImporter settings for an UI texture when NoesisGUI build the streaming assets.
(0002947)
jsantos   
2015-09-11 16:53   
In the next major (1.3) version we are working on, we plan to use the textures generated by Unity avoiding our preprocessing step. That way, you can activate mipmaps if you wish.

So, when adding mipmaps you are not observing excessive blurriness? Would be nice if you could attach the texture you are testing.
(0002950)
ai_enabled   
2015-09-11 18:17   
Great to know about this change with v1.3. It's definitely fixes this issue, but also makes RenderOptions.BitmapScalingMode option useless (and deceptive - it would good to mention about this with a warning during NoesisGUI assets build phase).

I'm not in the office at the moment so I couldn't attach images right now. But yes, it's definitely looks better when slow scale animation playing and a little bit blurry when static. It seems to be improved when setting "sharper" mipmap bias for Unity texture instance (if the texture assigned manually to an ImageBrush of course).

Also I've noticed that even the VoidExpanse game logo image rendered in Unity looks not as smooth and good as in WPF project with "HighQuality" setting applied - it has noticeable sharp edges in Unity (looks more like nearest neighbor filtering instead of bilinear), especially if the image rendered in the lower resolution than its native size.
(0002952)
jsantos   
2015-09-17 14:01   
Could you attach the XAML + images with the voidexpanse logo to exactly compare WPF vs Noesis?

This is something I will carefully study.

Besides, the original problem of the ticket is a different think. Sergio, did you have time to investigate it?
(0002955)
ai_enabled   
2015-09-17 14:43   
(Last edited: 2015-09-17 14:44)
It seems WPF "HighQuality" uses trilinear filtering, so that's why I've noticed it looks different in WPF.
Bilinear filtering looks no good when image downscaled (and when scale transform is animated it looks even worse, more like "nearest neighbor"). I've attached two images to compare (made with WPF application, VS2013 project also attached). Of course trilinear filtering looks little bit blurry when downscaled, but for my opinion it's better than jagged lines.

I cannot detect any visual difference between Unity and WPF with "Linear" quality.



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
702 [NoesisGUI] Unity3D minor always 2015-08-12 17:09 2018-11-22 21:34
Reporter: movra Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Scrollbars don't work in NoesisStyle
Description: Scrollbars that should be visible are not displayed when using NoesisStyle.xaml.
Tags:
Steps To Reproduce: 1) Run the ControlGallery sample scene
2) Navigate to Selector controls > ListBox
3) Observe that there are no scrollbars
4) Toggle the style in the menu from Noesis to Simple or Windows
5) Observe that now there are scrollbars
Additional Information:
Attached Files:
Notes
(0002906)
movra   
2015-08-13 00:18   
Oh I see, the scrollbars are invisible and fade in when you hover over their area.
(0002918)
sfernandez   
2015-08-17 13:14   
Yes, scrollbars appear when you place the mouse over the scrollbar area. Maybe the design is too risky, but we wanted to create a style more touch-friendly.
(0002921)
movra   
2015-08-17 13:55   
Ah of course. On desktop I can see the same kind of auto-hiding scrollbars in Windows 8 Metro apps.

But there's a couple of differences. In Metro apps:

- the scrollbars appear when hovering over the whole ListBox, not just the scrollbar area

- when using the scrollwheel, the scrollbars also appear


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1136 [NoesisGUI] C++ SDK minor always 2017-08-22 08:40 2018-11-22 20:48
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Returning nullptr from IMarkupExtension::ProvideValue caused error
Description: Follow up for https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1150.

When a custom markup extension returns nullptr from its ProvideValue method to be assigned to an event, XAML parser complains that the object is incompatible.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1068 [NoesisGUI] Unity3D feature N/A 2017-04-27 17:59 2018-11-22 20:22
Reporter: MrJul Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 2.0.1f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Support for custom Measure/Arrange
Description: NoesisGUI doesn't support custom controls that override `MeasureCore`/`ArrangeCore`.
While you can usually compose with other primitives, this is not always the case.

The main use case for me would be to extend Panel, to arrange items as I see fit. In WPF, I have a working `VirtualizingWrapPanel` that I planned to port to NoesisGUI. Without proper arrange support, it's just impossible to do, especially with virtualization involved.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1049 [NoesisGUI] Unity3D minor always 2017-04-07 10:06 2018-11-22 20:19
Reporter: XaeroDegreaz Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: ListBox with HorizontalAlignment set to "Stretch" moves list content left when pressing buttons
Description: Actually version 2.0.0f1 but you dont have it listed:

From: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1045

I have a TabControl with a Tabitem, as defined below:

[code]
<ListBox
    x:Name="KeyBindingsList"
    Height="Auto"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Top"
    ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <UniformGrid Columns="2">
                <Label Content="{Binding Path=Name}" VerticalAlignment="Center" />
                <Button Content="{Binding Path=PrimaryKeyName}" />
            </UniformGrid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
[/code]

When pressing the Button, the ListBox content shifts to the left. It also happens when the width of the ListBox is the same size as the container.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004752)
sfernandez   
2017-06-19 20:56   
Will be solved in our next release version 2.0.3.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1042 [NoesisGUI] C++ SDK minor have not tried 2017-04-05 18:07 2018-11-22 20:16
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Interactivity namespace
Description: Implement classes from Interactivity namespace: https://msdn.microsoft.com/en-us/library/system.windows.interactivity(v=expression.40).aspx

 - Interaction static class
 - TriggerBase
   - EventTrigger
 - TriggerAction
 - Behavior
 - IAttachedObject
 - AttachableCollection
   - TriggerCollection
   - TriggerActionCollection
   - BehaviorCollection
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1040 [NoesisGUI] C# SDK feature always 2017-04-05 17:24 2018-11-22 20:15
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Expose RoutedEvents in C#
Description: Expose in C# API RoutedEvents defined by UI classes like UIElement.MouseDownEvent or FrameworkElement.LoadedEvent.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1037 [NoesisGUI] C# SDK feature always 2017-03-16 09:42 2018-11-22 20:14
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 10 x64  
Status: assigned Product Version: 1.3.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Add XAML support for C# generic class
Description: Hello!

This feature is very useful for us. Could you have a look please?
https://www.codeproject.com/articles/37317/generic-support-in-xaml

Specifically, I'm talking about support of:
<local:ViewBase
   x:Class=”GenericViews.MessageLoggingWindow”
   x:TypeArguments=”local:MessageBoxLogger”
...

(x:TypeArguments for generics)

We need to use it for easier definition for generic user controls (with TViewModel).
Currently we have to use workaround.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004532)
sfernandez   
2017-03-16 13:10   
We will study the implications of this and see if we can implement it.
(0004533)
ai_enabled   
2017-03-16 13:11   
Thanks, Sergio!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1036 [NoesisGUI] C# SDK major always 2017-03-15 08:41 2018-11-22 20:11
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Cannot add strings to InlinesCollection
Description: Hi guys,

this code will crash NoesisGUI:

var textBlock = new TextBlock();
var inlines = textBlock.Inlines;
inlines.Add(new Run("someText"));
inlines.Add(new LineBreak());
// it seems this is not supported by NoesisGUI right now but compiles properly
inlines.Add(protoItem.Description);

// grid is LayoutRoot of the UserControl
grid.Children.Add(textBlock);


I think it would be better if you could add strong typing for Add() methods - as in WPF.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0004531)
sfernandez   
2017-03-16 13:04   
Yes, InlineCollection should only allow to add Inlines, we will fix it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1025 [NoesisGUI] Unity3D feature always 2017-02-25 04:45 2018-11-22 20:08
Reporter: KeldorKatarn Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: EventTrigger.EventName property
Description: As mentioned here http://www.noesisengine.com/forums/viewtopic.php?p=5727&sid=085e1cc1c16dda64864270ab3e8c272b#p5727
the EventName property should be available with setter and getter so stuff like this can be done like in WPF:

CreateTrigger = () => new EventTrigger { EventName = eventName }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005321)
sfernandez   
2018-11-22 20:08   
The EventTrigger that provides an EventName property is the one defined by the interactive package.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
964 [NoesisGUI] C# SDK tweak always 2016-10-18 10:40 2018-11-22 19:42
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 1.2.6f5  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Difference with WPF - Slider ValueChangedHandler signature is different
Description: Hello!

I've noticed that slider (RangeBase) value changed event signature is different from WPF. It's not a routed event.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
902 [NoesisGUI] C# SDK major always 2016-06-02 16:00 2018-11-22 19:32
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x86  
Status: assigned Product Version: 1.2.6f3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Difference with WPF - Storyboard EventHandler has different signature
Description: Hello!
I just noticed that storyboards in NoesisGUI are using TimelineEventArgs (which contains Target) when WPF storyboards are just simple plain EventArgs.

Will you consider changing this aspect to match WPF event handler signature?

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004221)
ai_enabled   
2016-11-02 08:40   
WPF utilizes completely different approach - it creates storyboard instances for each element in visual tree. NoesisGUI uses a single instance of storyboard when it's located in the control template... I also think it could lead to memory leaks.

To properly adapt API to match WPF, I've developed a workaround in 1.2 C# API, but it's quite unreliable, because it's very hard to determine what the event handler must be executed - they're all hooked to the single Storyboard instance!

Please consider fixing it for 1.3.
(0004986)
ai_enabled   
2018-01-13 08:12   
(Last edited: 2018-01-13 08:14)
Hi guys,

I've noticed you've fixed the signature for this method in v2.10 beta.
Did you completely rewrote this to match WPF behavior? - Do you create a new instance of storyboard and call event only for this particular instance?

(0004987)
ai_enabled   
2018-01-13 08:25   
Oh, no... You didn't. You just fixed the signature and actually even broken our hack with that change.
For example, we have over 10 game menus and each one subscribe to the storyboards Show and Hide completed event of the GameWindow control.
Now, when the single GameWindow opens or closes, I receive Completed event for all the 10 game menus, when it should trigger only for the particular storyboard instance in the particular GameWindow control.

Previously we've used a simple hack in NoesisGUI C# SDK by using TimelineEventArgs.Target property to determine the target object and then triggered Storyboard Completed event only for the particular control (storyboard Completed used everywhere in our code and in 99% of the cases this hack actualyl worked).

But now you've dropped TimelineEventArgs completely and only regular EventArgs remains so we have no option for determining the storyboard target and our hack is not applicable anymore.

I think the issue is because we're subscribing on the storyboard instances from the template. You're using them as singletones but WPF create separate instances. (described in first comment in this thread)

Example of how we acquire the instances of the storyboards
// on Init
this.storyboardOpen = (Storyboard)this.Template.Resources["StoryboardOpen"];
this.storyboardClose = (Storyboard)this.Template.Resources["StoryboardClose"];

// on Loaded (on Unloaded - unsubcribe)
this.storyboardOpen.Completed += this.StoryboardOpenCompletedHandler;
this.storyboardClose.Completed += this.StoryboardCloseCompletedHandler;


As a workaround for this issue - maybe you can bring back TimelineEventArgs from 2.0.2f2?
Anyways, it will be much better if you will be able to fix this to match WPF behavior completely, but I understand you have a totally different underlying architecture for templates...
(0004988)
ai_enabled   
2018-01-13 08:39   
(Last edited: 2018-01-13 08:41)
If you're curious about the hack/workaround we were using:

  [MonoPInvokeCallback(typeof(RaiseCompletedCallback))]
  private static void RaiseCompleted(IntPtr cPtr, IntPtr sender, IntPtr e) {
    try {
      if (!_Completed.ContainsKey(cPtr)) {
        throw new InvalidOperationException("Delegate not registered for Completed event");
      }
      if (sender == IntPtr.Zero && e == IntPtr.Zero) {
        _Completed.Remove(cPtr);
        return;
      }
      if (Noesis.Extend.Initialized) {
        CompletedHandler handler = _Completed[cPtr];
          if (handler == null)
          {
              return;
          }

          var args = new TimelineEventArgs(e, false);
          
          foreach (var @delegate in handler.GetInvocationList())
          {
            var storyboardTarget = args.Target as FrameworkElement;
              if (storyboardTarget.Tag is FrameworkElement)
              {
                      // workaround
                  @delegate.DynamicInvoke(Noesis.Extend.GetProxy(sender, false), new System.EventArgs());
                  return;
              }

              var delegateTarget = @delegate.Target;

            while (storyboardTarget != null)
            {
                if (ReferenceEquals(storyboardTarget, delegateTarget))
                {
                    @delegate.DynamicInvoke(Noesis.Extend.GetProxy(sender, false), new System.EventArgs());
                    break;
                }
                storyboardTarget = VisualTreeHelper.GetParent(storyboardTarget) as FrameworkElement;
            }
        }
      }
    }
    catch (Exception exception) {
      Noesis.Error.SetNativePendingError(exception);
    }
  }


As you can see it's quite unreliable and requires some special handling in our code like this:
            // special hack for NoesisGUI animation completed event
            this.backgroundControl.Tag = this;


However it helped us to 100% reliably worakaround all the cases (and there are dozen of them).

(0004993)
sfernandez   
2018-01-15 11:52   
(Last edited: 2018-01-15 11:52)
Sorry for breaking this.

The change only affects C# layer and native code still provides the target in the event args. So while I think about how to properly solve it you can bring back TimelineEventArgs to apply your hack in Timeline.RaiseCompleted() function:

[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct TimelineEventArgs {
  IntPtr target;

  public DependencyObject Target {
    get {
      return (DependencyObject)Noesis.Extend.GetProxy(target, false);
    }
  }
}

CompletedHandler handler = _Completed[cPtr];
if (handler != null) {
  TimelineEventArgs args = Marshal.PtrToStructure<TimelineEventArgs>(e);
  var storyboardTarget = args.Target as FrameworkElement;
  ...
}

About the hack we should fix it in the native code but first I need to investigate a few things.

(0004994)
ai_enabled   
2018-01-15 12:44   
Thanks, I will implement the hotfix back right now and continue testing last NoesisGUI beta.
(0004996)
ai_enabled   
2018-01-15 13:33   
Oh, I see now. You said to use your new class and use manual marshalling.
Sorry, will try it.
(0004997)
sfernandez   
2018-01-15 13:34   
Yeah, that's right :)
(0004998)
ai_enabled   
2018-01-15 14:37   
Ok, the workaround seems to work fine now.
I was able to locate another issue http://www.noesisengine.com/bugs/view.php?id=1217


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
926 [NoesisGUI] C# SDK minor always 2016-07-04 07:45 2018-11-22 19:31
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 1.2.6f4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Difference with WPF - collapsed controls should not be focusable
Description: Hello!

I just noticed that textboxes with Visibility=Collapsed still can be focused - I've investigated an issue and found that after I remove some elements (containing focus) the focus moves to a collapsed textbox (layoutRoot.GetKeyboard().GetFocused() == collapsed textbox).

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
920 [NoesisGUI] C# SDK minor always 2016-06-24 11:41 2018-11-22 19:19
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 1.2.6f4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Selector SelectionChanged event is not works
Description: Hello!

I've inherited from Selector control and subscribed on it SelectionChanged event.
There are a few TabItem placed into the control items collection. They're displayed correctly, but selecting any of them just set focus on it, but doesn't raise SelectionChanged event of the collection control (inherited from Selector control). It seems to be a bug.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004028)
ai_enabled   
2016-06-24 11:42   
(Last edited: 2016-06-24 11:42)
The same code works fine for me in WPF and event is raised. So this is definitely a bug.

(0004029)
ai_enabled   
2016-06-24 11:45   
Now I've inherited my custom collection control from TabControl instead and the event is raised correctly. So, that's it - control inherited from Selector never raise SelectionChanged event.
(0004038)
sfernandez   
2016-06-28 19:06   
Selection implementation is now done on specific controls (ListBox, ComboBox, TabControl guided by its corresponding items: ListBoxItem, ComboBoxItem, TabControlItem) instead of the Selector base class.

We will review this code so it works as in WPF.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
913 [NoesisGUI] C# SDK tweak N/A 2016-06-17 08:55 2018-11-22 19:14
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: low OS Version: 10 x64  
Status: resolved Product Version: 1.2.6f4  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Difference with WPF - ItemCollection.GetItemAt(int index) instead of ItemCollection.Get(uint index)
Description: Hello!

WPF: ItemCollection.GetItemAt(int index)
NoesisGUI: ItemCollection.Get(uint index)

I think you can keep compatibility and just add this method to C# API and call Get((uint)index) in it.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0004322)
sfernandez   
2016-12-30 14:11   
Fixed in new preview of next beta:
https://drive.google.com/open?id=0Bwl3Ci5GLsE8b0JEdlRnd3pVN3c
(0004326)
ai_enabled   
2016-12-30 15:28   
Yes, but you simply changed uint to int.
If we want full WPF compatibility it might be a good idea to add GetItemAt(int index) method which will simply return Get(index).
(0004337)
sfernandez   
2016-12-30 20:36   
Sorry, I totally miss the method name difference. I'll fix it correctly for the next version :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
810 [NoesisGUI] C# SDK feature always 2016-01-28 12:14 2018-11-22 19:11
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: Difference with WPF - event handlers
Description: Hello!
I found a lot of difference with event handlers names/signatures between NoesisGUI and WPF.
For example, Noesis.UIElement.MouseLeftButtonUpHandler vs universal System.Windows.Input.MouseButtonEventHandler (used for all buttons).

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003492)
ai_enabled   
2016-01-28 12:18   
(Last edited: 2016-01-28 12:18)
The signatures are the same, the problem is only with the names of the delegates.
So you need to replace using of MouseUpHandler (and etc) and use MouseButtonEventHandler(object sender, MouseButtonEventArgs e). MouseButtonEventArgs is already defined at your code.

(0003495)
sfernandez   
2016-02-01 04:39   
Yes, the handler type is wrong, thanks.
It will be fixed on 1.3 version.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
958 [NoesisGUI] Unity3D minor always 2016-10-02 23:18 2018-11-22 19:09
Reporter: nokola Platform: Unity3D  
Assigned To: sfernandez OS: Android  
Priority: low OS Version: Any  
Status: assigned Product Version: 1.2.6f5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: With PanningMode=Both in ScrollViewer buttons don't update background when tapped on Android
Description: With PanningMode=Both in ScrollViewer buttons don't update background when tapped on Android
Tags:
Steps To Reproduce: 1. Open https://1drv.ms/f/s!AspGCVZdWgTBuup9b2_-mTFV5_06EA and download ButtonPanningModeBug.zip
2. Open in Unity
Note the Assets\Examples\style_NOK and style_OK
3. Run on Android
Expected:
when tapping buttons, the background changes to the "pressed" color bg

Actual:
nothing happens
4. Change Noesis style to style_OK - works
Additional Information: The issue happens because of this line:
        <Setter Property="PanningMode" Value="Both"/>

Removing it fixes it. However, we now can't pan our scrollviewer as expected.
For the moment this is not a blocking issue for us, thus I set it to low pri (the TextBox issue I reported separately is blocking)
Attached Files:
Notes
(0004176)
sfernandez   
2016-10-19 13:28   
Hi,

We've been analyzing the Behavior in NoesisGUI and it matches exactly what WPF does. Let me try to explain what is happening:

When touch events are used inside a control that handles manipulation (as ScrollViewer does when PanningMode != None), then it captures touch events (raising ManipulationStarting event) until you move or release the touch.

OPTION 1: COMPLETED MANIPULATION

If touch is moved enough, then a manipulation starts (raising ManipulationStarted event, and subsequent ManipulationDelta events). Until touch is released (possibly raising ManipulationInertiaStarting event followed by some more ManipulationDelta events, and finally the ManipulationCompleted event).

This scenario can be better understood with the following MSDN image:
https://i-msdn.sec.s-msft.com/dynimg/IC392642.jpeg

OPTION 2: CANCELLED MANIPULATION

If you release the touch without moving it, then manipulation is cancelled, and previous touch events are promoted to mouse events. That means that the button will receive MouseDown, MouseMove and MouseUp events all in the same frame. So no visible change is seen in the button, but the Click event is always raised.

In a future release we want to change this behavior to something similar to UWP, that is better prepared for touch and multitouch environments than WPF.

Meanwhile, if you want to see a visual response when a Button receives a touch, maybe you can add an EventTrigger for the TouchDown event that animates the backgrounds color:

...
<ControlTemplate.Triggers>
    <EventTrigger RoutedEvent="UIElement.TouchDown">
        <BeginStoryboard>
            <Storyboard>
                <ObjectAnimationUsingKeyFrames
                  Storyboard.TargetProperty="Fill"
                  Storyboard.TargetName="ButtonBackground">
                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneAccentBrush}"/>
                    <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Null}"/>
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</ControlTemplate.Triggers>
...


Hope this helps.
(0004180)
jsantos   
2016-10-21 19:28   
This is the plan we have to improve Touching in 1.3 (basically, doing in like UWP)

https://trello.com/c/zN2r19h4/260-improve-manipulations
(0004196)
nokola   
2016-10-28 13:15   
Thanks, sounds good! Given that multitouch is a huge part of the market (phones, tablets) it's important and welcome change.
Thanks for the workarounds!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
954 [NoesisGUI] C# SDK minor have not tried 2016-09-09 10:08 2018-11-22 19:07
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: low OS Version: 10 x64  
Status: assigned Product Version: 1.2.6f5  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Difference with WPF - StrokeDashArray is using DoubleCollection in WPF
Description: Hello!

That's it - in WPF you need to set shape.StrokeDashArray = DoubleCollection.Parse(str), in NoesisGUI shape.StrokeDashArray is a string property.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1307 [NoesisGUI] Unity3D feature N/A 2018-06-05 21:28 2018-11-22 13:32
Reporter: Gwynneth Platform: Unity3D  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Add IDictionary support to ResourceDictionary
Description: Add IDictionary support to ResourceDictionary.
Tags:
Steps To Reproduce:
Additional Information: Forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1418
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1300 [NoesisGUI] Unity3D feature have not tried 2018-05-17 08:17 2018-11-22 13:30
Reporter: ivan_b Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Copy/paste context menu for TextBox
Description: Problem when implementing a TextBox style with copy/paste context menu.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005244)
sfernandez   
2018-06-28 12:04   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1298 [NoesisGUI] Unity3D minor always 2018-05-04 19:10 2018-11-22 13:29
Reporter: mingingmingler Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Noesis doesn't like x:Null as a value in xaml, e.g. Binding FallbackValue of Path.Stroke
Description: Noesis throws an error when trying to use x:Null as a fallback value on a Path.Stroke binding.


NoesisException: Assets/Ui/Resources/GeneratedGraphicResources.xaml(7): Property 'Path.FallbackValue' not found.
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.EnsureNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1502)
Noesis.Extend.EnsureNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1494)
Noesis.Extend.CreateNativeTypeData (System.Type type, IntPtr nativeType) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1358)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1254)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_FillExtendType_ (Noesis.ExtendTypeData& typeData, Int32 numProps, IntPtr propsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:20)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1259)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_RegisterEnumType_ (System.String typeName, Int32 numEnums, IntPtr enumsData) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:12)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1177)
Noesis.Extend.EnsureNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1502)
Noesis.Extend.EnsureNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1494)
Noesis.Extend.AddProperty (Noesis.NativeTypePropsInfo info, System.Reflection.PropertyInfo p, Boolean usePropertyInfo) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendProps.cs:765)
Noesis.Extend.CreateNativePropsData (System.Type type, System.Reflection.PropertyInfo[] props, Noesis.NativeTypeInfo info, System.Int32& numProps) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1426)
Noesis.Extend.RegisterNativeType (System.Type type, Boolean registerDP) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1256)
Noesis.Extend.RegisterNativeType (System.Type type) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1147)
Noesis.Extend.RegisterType (System.String typeName) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:1684)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_InstantiateExtend_ (IntPtr nativeType) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:26)
Noesis.Extend.NewCPtr (System.Type type, System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:3896)
Noesis.Extend.GetInstanceHandle (System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:4288)
Noesis.Extend.ProviderLoadXaml (IntPtr cPtr, System.String filename) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:2637)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_InstantiateExtend_ (IntPtr nativeType) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:26)
Noesis.Extend.NewCPtr (System.Type type, System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:3896)
Noesis.Extend.GetInstanceHandle (System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:4288)
Noesis.Extend.ProviderLoadXaml (IntPtr cPtr, System.String filename) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:2637)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_InstantiateExtend_ (IntPtr nativeType) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:26)
Noesis.Extend.NewCPtr (System.Type type, System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:3896)
Noesis.Extend.GetInstanceHandle (System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:4288)
Noesis.Extend.ProviderLoadXaml (IntPtr cPtr, System.String filename) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:2637)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.Extend.Noesis_InstantiateExtend_ (IntPtr nativeType) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtendImports.cs:26)
Noesis.Extend.NewCPtr (System.Type type, System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:3896)
Noesis.Extend.GetInstanceHandle (System.Object instance) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:4288)
Noesis.Extend.ProviderLoadXaml (IntPtr cPtr, System.String filename) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:2637)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.GUI.Noesis_LoadComponent_ (System.Runtime.InteropServices.HandleRef,string) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:282)
Noesis.GUI.LoadComponent (object,string) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:135)
Ui.HudScene.InitializeComponent () (at Assets/Ui/Scenes/HudScene.xaml.cs:472)
Ui.HudScene..ctor () (at Assets/Ui/Scenes/HudScene.xaml.cs:28)
(wrapper dynamic-method) System.Runtime.CompilerServices.ExecutionScope.lambda_method (System.Runtime.CompilerServices.ExecutionScope) <IL 0x00000, 0x00069>
Noesis.Extend.CreateInstance (intptr,intptr) (at Assets/NoesisGUI/Plugins/API/Core/NoesisExtend.cs:3933)
Rethrow as NoesisException
Noesis.Error.Check () (at Assets/NoesisGUI/Plugins/API/Core/NoesisError.cs:17)
Noesis.GUI.Noesis_LoadXaml_ (System.String xaml) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:275)
Noesis.GUI.LoadXaml (System.String xaml) (at Assets/NoesisGUI/Plugins/API/Core/NoesisGUI.cs:125)
NoesisXaml.Load () (at Assets/NoesisGUI/Plugins/NoesisXaml.cs:31)
NoesisView.LoadXaml (Boolean force) (at Assets/NoesisGUI/Plugins/NoesisView.cs:333)
NoesisView.OnEnable () (at Assets/NoesisGUI/Plugins/NoesisView.cs:398)


Tags:
Steps To Reproduce: <Path x:Key="Test" Stroke="{Binding Test, FallbackValue={x:Null}}" />
Additional Information: I have a pipeline which generates a xaml resource file for svg assets. The generator applies bindings to each path, which allows me to control various visual properties at runtime. For example, it allows the item system to take a base asset and create a new item with slightly different visuals. The generator places a fallback value on each of these bound properties to store the default values.

Path.Fill and Path.StrokeThickness seem to work fine, only Path.Stroke throws this error.
Attached Files:
Notes
(0005199)
mingingmingler   
2018-05-04 19:15   
Further testing revealed that it only happens when trying to apply a null value. I'm fairly sure null is an acceptable value for a stroke, but I can work around this so I've reduced the severity.
(0005200)
mingingmingler   
2018-05-04 19:40   
Currently using Transparent as a workaround. Not sure about this approach in terms of performance though when there are a lot of objects using it.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1297 [NoesisGUI] C# SDK feature N/A 2018-05-04 07:11 2018-11-22 13:27
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: FrameworkPropertyMetadata has all properties as read-only
Description: For example, this is very useful but doesn't work in NoesisGUI:

 public static readonly DependencyProperty SearchTextProperty =
            DependencyProperty.Register(nameof(SearchText),
                                        typeof(string),
                                        typeof(TextBoxSearch),
                                        new FrameworkPropertyMetadata(defaultValue: string.Empty)
                                        {
                                            BindsTwoWayByDefault = true,
                                            DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
                                        });
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0005225)
sfernandez   
2018-06-12 12:27   
I added all the setters, and also added the Flags attribute to the FrameworkPropertyMetadataOptions enum that was missing.
Will be fixed in next release.
(0005226)
ai_enabled   
2018-06-12 13:16   
Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1292 [NoesisGUI] Unity3D feature always 2018-04-18 22:33 2018-11-22 13:26
Reporter: Megamax5000 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: TextBox.ScrollToEnd() does not work, You must use ScrollViewer.ScrollToBottom() Instead
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1392
Tags:
Steps To Reproduce: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1392
Additional Information: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1392
Attached Files:
Notes
(0005230)
sfernandez   
2018-06-21 10:45   
Implemented for the next release.
(0005314)
sfernandez   
2018-11-22 13:26   
Implemented all TextBox scroll functions.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1282 [NoesisGUI] C# SDK feature always 2018-04-06 14:14 2018-11-22 12:51
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Binding when datacontext is null. Implement TargetNullValue?
Description: Hi guys,

For example, I have a control with the control template:

<Border Background="Red"
          Visibility="{Binding MyViewModelPropertyVisibility}">
...
</Border>


I would like to make visibility collapsed when the data context is null.
However, it seems impossible right now to do this directly as TargetNullValue is not implemented.

I've tried
Visibility="{Binding Path=., Converter={StaticResource NullToVisibilityConverter}}"

But the converter method doesn't even called by NoesisGUI when datacontext is null.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0005183)
sfernandez   
2018-04-10 23:03   
I know is not the same, but couldn't you use the FallbackValue that we already have implemented for these situations?

<Border Background="Red"
          Visibility="{Binding MyViewModelPropertyVisibility, FallbackValue=Collapsed}">
...
</Border>

(0005185)
ai_enabled   
2018-04-11 06:40   
Thanks!
Didn't knew it was implemented. Yes, it works fine.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1281 [NoesisGUI] Unreal minor always 2018-04-06 11:47 2018-11-22 12:47
Reporter: GeorgeR Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: ScrollContentPresenter.CanHorizontallyScroll not supported
Description: LogNoesis: Warning: /Game/Frontier/UI/Themes/Generic.Generic(1155): Unknown member ScrollContentPresenter.CanHorizontallyScroll
LogNoesis: Warning: /Game/Frontier/UI/Themes/Generic.Generic(1155): Unknown member ScrollContentPresenter.CanVerticallyScroll
Tags:
Steps To Reproduce: 1. Import the provided file and view the output log
Additional Information:
Attached Files: Generic.xaml (75,133 bytes) 2018-04-06 11:47
https://www.noesisengine.com/bugs/file_download.php?file_id=926&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1272 [NoesisGUI] Unity3D feature always 2018-04-03 14:55 2018-11-22 12:25
Reporter: zloty Platform:  
Assigned To: sfernandez OS:  
Priority: high OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Custom panel implementation
Description: As discussed in https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1337 we need a custom panel. But this is not possible, because we can't implement FrameworkElement.MeasureOverride and FrameworkElement.ArrangeOverride.

Furthermore Panel.InternalChildren is also not available in the interface, but this property is used in almost every WPF documentation for custom panels. But i'm not sure if this is really necessary or just the same as the already existing property Panel.Children.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1271 [NoesisGUI] Unreal minor always 2018-04-03 05:09 2018-11-22 12:21
Reporter: ride_wind Platform:  
Assigned To: sfernandez OS:  
Priority: none OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Menu Custom Style can't normal work
Description: I use custom style and template to create a menu,
When I mouse click menuitem of menu, and drag the mouse to outer of menu's pupup panel,
the clicked menuitem can't change from ispressed to normal, besides the popup can't close.

forum link: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1366
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1266 [NoesisGUI] C++ SDK feature N/A 2018-03-27 15:58 2018-11-22 12:17
Reporter: realesmedia Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: TextBox caret position from mouse cursor position
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1339
Do you have GetCharacterIndexFromPoint() implementation in Noesis?
How can I implement it by myself?
MSDN TextBox.GetCharacterIndexFromPoint()
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005231)
sfernandez   
2018-06-21 16:06   
I implemented this (along with other similar functions) for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1265 [NoesisGUI] C++ SDK major always 2018-03-27 15:57 2018-11-22 12:16
Reporter: realesmedia Platform: x64  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 7, 8.1, 10  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: ObservableCollection Clear() in Noesis 2.1
Description: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1338

Have a collection in class:
Code: Select all
Noesis::Ptr<Noesis::ObservableCollection<BasePropertyComponent>> properties = *new Noesis::ObservableCollection<BasePropertyComponent>();
In Noesis 2.0 we have to use properties->Clear() for destroy objects.

In Noesis 2.1 Clear() method doesn't call destructor, but next code works:
Code: Select all
while (properties->Count()) {
    properties->RemoveAt(0);
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Src.zip (1,790 bytes) 2018-03-28 12:09
https://www.noesisengine.com/bugs/file_download.php?file_id=910&type=bug
Src-2.zip (2,506 bytes) 2018-03-28 15:34
https://www.noesisengine.com/bugs/file_download.php?file_id=911&type=bug
Notes
(0005154)
realesmedia   
2018-03-28 12:10   
https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1254&p=7982#p7982
(0005158)
realesmedia   
2018-03-28 15:34   
UPD: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1254&p=7997#p7997
(0005227)
sfernandez   
2018-06-14 11:38   
Bug found and solved for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1236 [NoesisGUI] Unity3D major always 2018-02-06 06:46 2018-11-22 12:09
Reporter: CMarinacci Platform: Unity3D  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10.0.162  
Status: resolved Product Version: 2.1.0rc2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: The tabs in TabControl are always on a single line
Description: The tabs in TabControl are always on a single line. When using the included code, the tabs are on two lines in WPF, but only a single line in NoesisGUI (and the rightmost tabs are cut off).
Tags:
Steps To Reproduce: <UserControl x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d">
    <TabControl Width="200">
        <TabItem Header="One">
            <Grid Height="300"/>
        </TabItem>
        <TabItem Header="Two" />
        <TabItem Header="Three" />
        <TabItem Header="Four" />
        <TabItem Header="Five" />
        <TabItem Header="Six" />
    </TabControl>
</UserControl>
Additional Information:
Attached Files:
Notes
(0005237)
sfernandez   
2018-06-26 13:04   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1229 [NoesisGUI] C# SDK minor always 2018-01-29 10:00 2018-11-22 12:07
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0rc2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: LineHeight is broken for TextBlock?
Description: Hi guys,
I just noticed that LineHeight doesn't make any effect on our textblocks anymore... You've implemented this years ago http://www.noesisengine.com/bugs/view.php?id=472
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0005060)
sfernandez   
2018-01-29 15:06   
It seems that we broke this when we implemented support for inlines.
We will try to bring it back.
(0005063)
jsantos   
2018-01-30 05:16   
And we will add a test for this to avoid breaking it again... :(
(0005064)
ai_enabled   
2018-01-30 05:18   
Thanks, guys!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1306 [NoesisGUI] C# SDK major always 2018-06-01 12:19 2018-11-22 12:02
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: IsHitTestVisible assinging has no effect?
Description: Hi guys,

I've just noticed that assigning IsHitTestVisible in C# to my UserControl doesn't change the IsHitTestVisible value in NoesisGUI C++ part.

I mean, the value is properly assigned with NoesisGUI_PINVOKE.UIElement_IsHitTestVisible_set(swigCPtr, value) in setter
but the getter NoesisGUI_PINVOKE.UIElement_IsHitTestVisible_get(swigCPtr) always return previous value like nothing happened.

Please investigate :-).
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0005221)
sfernandez   
2018-06-06 16:19   
I know what was happening. It only occurs with elements that are not initialized (not yet added to the UI tree).
I fixed it to work always as expected.
(0005222)
ai_enabled   
2018-06-06 16:21   
Thanks!
I'm glad to help :-).


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1219 [NoesisGUI] Unity3D feature N/A 2018-01-17 14:49 2018-11-22 11:54
Reporter: easylaser Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0b17  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Support for InputScope
Description: Hi,

It would be nice to have support for InputScope:
https://msdn.microsoft.com/en-us/library/windows/apps/mt280229.aspx

In our program we will have email, text and numeric keyboard
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1151 [NoesisGUI] C++ SDK major always 2017-09-20 03:25 2018-11-22 11:49
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Cannot show ContextMenu programmatically when instantiating it from Resources
Description: Originally from http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1175

When a context menu is instantiated from a resource, it cannot be shown correctly programmatically (i.e. by calling SetIsOpen(true)). Showing by right-click is working.

Please see the sample code from the above link.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005243)
sfernandez   
2018-06-28 12:03   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1144 [NoesisGUI] Unity3D major always 2017-09-01 21:03 2018-11-22 11:48
Reporter: pbastia Platform: Unity 2017.1.0f3  
Assigned To: sfernandez OS: Windows  
Priority: high OS Version: 7  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: ContextMenu not closing properly when using complex template (Unity)
Description: I'm having a case where the context menu won't close after it has been open, when I put a button (or anything more than a label) inside a MenuItem header.
Things will behave properly until I click on the content (the button here). After this, the menu won't close with a click outside of it.

Clicking on the zone between the button and the edge of the menu causes things to work properly again.
Tags:
Steps To Reproduce: - Create a border with a context menu attached
- Inside the context menu's MenuItem header, insert something else than a label (e.g. a button)
- Right click on the border to open the menu
- Click on the button inside the contextmenu

Now the contextmenu is locked in the open state and cannot be closed by clicking outside anymore.

Additional Information: Code used to reproduce:

    <Border Background="#22000000">
        <Border.ContextMenu>
            <ContextMenu>
                <MenuItem>
                    <MenuItem.Header>
                        <Button Content="something"/>
                    </MenuItem.Header>
                </MenuItem>
            </ContextMenu>
        </Border.ContextMenu>
    </Border>
Attached Files:
Notes
(0005246)
sfernandez   
2018-06-28 12:16   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1140 [NoesisGUI] Unity3D feature always 2017-08-28 08:05 2018-11-22 11:43
Reporter: jumes Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Changing value of TabStripPlacement property in TabControl object don't change anything
Description: Ok, when I want to place the tab header on the left side, so I find this issue.From this thread http://www.noesisengine.com/forums/viewtopic.php?f=3&t=952&p=6404&hilit=TabStripPlacement#p6404
It is important for mobile games when player hold the device with two hands, it is easy to touch the left and right side of the screen.
If player hold device with single hand, it is easy to touch the bottom side of the screen.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005238)
sfernandez   
2018-06-26 13:04   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1118 [NoesisGUI] C++ SDK minor always 2017-06-26 09:46 2018-11-22 11:40
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: Windows 10  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: When empty, TextBox's caret is always positioned on the left
Description: Create a text box and set its TextAlignment property to "Center" (or "Right") as follows
 
            <TextBox TextAlignment="Center"></TextBox>

Then run it.

-> The caret is position on the left when the TextBox is empty. It should be positioned on Center following the TextAlignment property.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005068)
nikobarli   
2018-01-31 08:56   
Seems to have been fixed by 2.1.0rc2
(0005075)
nikobarli   
2018-02-01 03:16   
Sorry, I missed the verification. The problem is still there by 2.1.0.rc2
(0005229)
sfernandez   
2018-06-19 20:35   
I fixed this for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1048 [NoesisGUI] Unity3D major always 2017-04-07 10:05 2018-11-22 11:32
Reporter: XaeroDegreaz Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 1.3.0  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Unity - Framerate drops when pressing shift+tab, tab or clicking rightmost column inside of a ListView
Description: From: http://www.noesisengine.com/forums/posting.php?mode=edit&f=3&p=5951

Here's the code-behind:

[code]
using System.Collections.ObjectModel;
using Noesis;

namespace KazBall.Ui.Hud
{
    public class ScoreScreen : UserControl
    {
        public ScoreScreen()
        {
            Initialized += ( sender, args ) => { DataContext = new ScoreScreenViewModel( this ); };
            GUI.LoadComponent( this, "Assets/Ui/Hud/ScoreScreen.xaml" );
        }
    }

    public class ScoreScreenViewModel
    {
        public class ScoreItem
        {
            public string PlayerName { get; set; }
            public int Score { get; set; }
            public string TeamColour { get; set; }
        }

        public ObservableCollection<ScoreItem> ScoreItems { get; set; } = new ObservableCollection<ScoreItem>();

        public ScoreScreenViewModel( UserControl rootControl )
        {
            ScoreItems.Add( new ScoreItem {PlayerName = "Player 1", Score = 1, TeamColour = "Red"} );
            ScoreItems.Add( new ScoreItem {PlayerName = "Player 1", Score = 1, TeamColour = "LightBlue"} );
            //# These fix the "Tab" key, but not the "Shift + Tab"
            //rootControl.KeyDown += ( sender, args ) => args.Handled = true;
            //rootControl.PreviewKeyDown += ( sender, args ) => args.Handled = true;
        }
    }
}
[/code]

Here's the WPF:

[code]
<UserControl
    KeyboardNavigation.TabNavigation="None"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    x:Class="KazBall.Ui.Hud.ScoreScreen"
    d:DesignWidth="640" d:DesignHeight="480">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <ListView
            x:Name="ListView"
            Grid.ColumnSpan="2"
            ItemsSource="{Binding ScoreItems}">
            <ListView.View>
                <GridView AllowsColumnReorder="False">
                    <GridViewColumn
                        Header="Player"
                        Width="{Binding ActualWidth, ElementName=LeftColumn}">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock
                                    Text="{Binding PlayerName}"
                                    Foreground="{Binding TeamColour}" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn
                        Header="Score"
                        Width="{Binding ActualWidth, ElementName=RightColumn}"
                        DisplayMemberBinding="{Binding Score}"/>
                </GridView>
            </ListView.View>
        </ListView>
        <!-- Stupid hack for grid view columns to auto width -->
        <Grid Visibility="Hidden">
            <Grid Grid.Column="1" x:Name="LeftColumn" />
            <Grid Grid.Column="2" x:Name="RightColumn" />
        </Grid>
    </Grid>
</UserControl>
[/code]

I'd also like to not that it only seems to happen when there are actually items in the list.

Another note:
I tried changing the width of the two columns so that the right-most column is not wide enough to reach the edge of the grid and that stopped it from freaking out. I think it's related to the problem: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1045
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: 2017-04-07_02-37-10.gif (441,222 bytes) 2017-04-07 10:05
https://www.noesisengine.com/bugs/file_download.php?file_id=760&type=bug
2017-04-07_02-51-19.gif (840,655 bytes) 2017-04-07 10:05
https://www.noesisengine.com/bugs/file_download.php?file_id=761&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1214 [NoesisGUI] C++ SDK block always 2017-12-31 10:02 2018-11-22 11:32
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: urgent OS Version: Fall Creators Up  
Status: resolved Product Version: 2.1.0b12  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Juggling view of ListView when horizontal scrollbar is shown
Description: from https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1253

Please feed the following XAML to XamlPlayer. Then click the 'Font' header of the shown ListView. You'll see that the view is juggling left <-> right.
This doesn't happen if the horizontal scrollbar is not shown.

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Width="400" Height="300">
    <Grid>
        <ListView>
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Text" Width="200" DisplayMemberBinding="{Binding Text}"/>
                    <GridViewColumn Header="Font" Width="230" DisplayMemberBinding="{Binding FontFamily}"/>
                </GridView>
            </ListView.View>
            <ListView.Items>
                <TextBlock Text="First"/>
                <TextBlock Text="Second"/>
                <TextBlock Text="Third"/>
            </ListView.Items>
        </ListView>
    </Grid>
</UserControl>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005077)
nikobarli   
2018-02-01 04:26   
I increased the severity and priority of this issue, because after falling to this behavior, apps will stop responding.
(0005240)
sfernandez   
2018-06-26 18:46   
Fixed for the next release.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1045 [NoesisGUI] C++ SDK feature always 2017-04-05 18:54 2018-11-22 11:30
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Expose FrameworkElement.Parent property in reflection
Description: So it can be used in bindings: {Binding Parent.Radius}

From forum topic: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1052
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005233)
sfernandez   
2018-06-22 19:31   
Done.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1351 [NoesisGUI] C++ SDK feature have not tried 2018-11-21 13:48 2018-11-22 10:32
Reporter: jsantos Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Avoid exposing Noesis::Symbol in public API
Description: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=694&p=3838#p3838
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1166 [NoesisGUI] C++ SDK feature always 2017-10-19 10:14 2018-11-22 10:29
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Some scenarios that need to be supported by Drag and Drop framework
Description: From http://www.noesisengine.com/forums/viewtopic.php?f=3&t=540&start=10

There some scenarios that I think you should consider when implementing this.

1. Should be able to drag and drop between Noesis' View and native windows, including the case when the source and target are in different processes (e.g. you should be able to drag and drop text from a browser window into a Noesis' TextBox).

In Windows, this is done using Ole Drag and Drop (I think WPF's implementation wraps around this APIs).

2. Should be able to show Context Menu when an item is dropped (e.g. Drop -> Show Menu -> User selects 'Move Item' from the menu -> Drop done -> Item is removed from Source)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1165 [NoesisGUI] C++ SDK minor always 2017-10-19 10:11 2018-11-22 10:28
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Creators Update  
Status: resolved Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Controls do not respond when put inside Expander Header
Description: From https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1203

If I put some controls inside an expander's header, the controls do not respond to any mouse events.
For example, with the below XAML, I cannot edit the text box.

        <Expander>
            <Expander.Header>
                <TextBox>Header</TextBox>
            </Expander.Header>
        </Expander>
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1129 [NoesisGUI] C++ SDK minor always 2017-08-01 13:47 2018-11-22 10:19
Reporter: AndreasEnscape Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Expander Property ExpandDirection not working
Description: The above mentioned property ExpandDirection of the Expander object (xaml) is not working at all, drop down expanding will occur no matter what the property is set to (Left, Right, up, down).
Tags: Expander
Steps To Reproduce: <UserControl
    x:Class="SideExpander"
    x:Name="ViewAccessor"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    UseLayoutRounding="True"
>
    <Grid>
        <Expander ExpandDirection="Left" Margin="0,8,0,0" Width="auto" Height="120">
        </Expander>
    </Grid>
</UserControl>
Additional Information: Forum entry: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1143&p=6518#p6518
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1125 [NoesisGUI] C# SDK major always 2017-07-24 17:33 2018-11-22 10:16
Reporter: pbastia Platform: Unity 2017.1b  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 7  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ComboBox with complex item doesn't render in the main box
Description: Hi,

I am having trouble using the combobox in Unity3D, with more complex items (more than just a label or plain text). The selected object doesn't render in the main control, only in the expanding list. (see attached images)
However, Noesis behaves properly when using an itemtemplate.

Thanks a lot!
Tags:
Steps To Reproduce: <ComboBox Width="80" Height="40">
    <ComboBoxItem IsSelected="True">
        <StackPanel Orientation="Horizontal" Background="Yellow">
            <Label Content="123" Padding="6,4"/>
            <Label Content="123" Padding="6,4"/>
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem>
        <StackPanel Orientation="Horizontal" Background="MediumPurple">
            <Label Content="456" Padding="6,4"/>
            <Label Content="456" Padding="6,4"/>
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem>
        <StackPanel Orientation="Horizontal" Background="ForestGreen">
            <Label Content="789" Padding="6,4"/>
            <Label Content="789" Padding="6,4"/>
        </StackPanel>
    </ComboBoxItem>
</ComboBox>
Additional Information:
Attached Files: combo_closed.png (1,188 bytes) 2017-07-24 17:33
https://www.noesisengine.com/bugs/file_download.php?file_id=832&type=bug
combo_open.png (2,269 bytes) 2017-07-24 17:33
https://www.noesisengine.com/bugs/file_download.php?file_id=833&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1094 [NoesisGUI] C# SDK minor N/A 2017-05-24 05:55 2018-11-22 10:13
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: none OS Version: 10 x64  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Reduce locking in C# API
Description: There are many lock calls in NoesisExtend.cs. In some cases it decreases performance much and even might lead to deadlocks. Now it seems to be correct, but in the future, when API will be extended further, it might lead to this issue as the code is very complicated.

The problem I see is that you cannot use System.Collections.Concurrent and ThreadLocal as they were introduced in .NET 4.0+ which is supported only in the latest beta of Unity.

If I will have any ideas I will let you know.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1092 [NoesisGUI] C++ SDK tweak always 2017-05-23 17:22 2018-11-22 10:12
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 2.0.2f2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ListView bad drag scroll performance
Description: From: http://www.noesisengine.com/forums/viewtopic.php?f=3&t=1090

If I have to handle a large number of items inside ListView (~100k), is there anything I can do to boost the performance ? Scrolling using the mouse wheel seems pretty fast, but dragging using scroll bar seems a bit sluggish (fps is down to 5~10 fps in my environment).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1328 [NoesisGUI] C# SDK minor have not tried 2018-10-30 12:46 2018-11-22 09:57
Reporter: JasonL663 Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: NoesisException cannot be caught explicitly
Description: The Noesis.Error.NoesisException class is marked as private. This means it
cannot be caught explicitly. Instead, developers are forced to do a blanket
catch by catching System.Exception which makes it difficult to distinguish
between a Noesis error and a system error (e.g NullReferenceException).
Tags:
Steps To Reproduce: Attempt to compile an expression catching a NoesisException produced by a call
to Noesis.GUI.LoadComponent:

try { Noesis.GUI.LoadComponent(component, xamlPath); }
catch (Noesis.Error.NoesisException) { }

Observe the resulting CS0122 compile error:
'Error.NoesisException' is inaccessible due to its protection level
Additional Information:
Attached Files:
Notes
(0005268)
admin   
2018-10-30 12:47   
Our hosting company corrupted our database without a backup. We are manually reconstructing all the issues.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
412 [NoesisGUI] Unity3D feature N/A 2014-06-01 19:43 2018-11-22 09:49
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Group and sort items using a CollectionViewSource
Description: It would be nice to be able to group (and sort) items using a CollectionViewSource. Right now PropertyGroupDescription doesn't seem to be implemented.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1319 [NoesisGUI] C# SDK feature always 2018-06-30 05:29 2018-11-22 09:49
Reporter: horeaper Platform: Windows  
Assigned To: sfernandez OS: 10  
Priority: normal OS Version: 10.0.17134.112  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Add ICollectionView so sorting and grouping can be supported.
Description: Sorting is a most needed feature. Grouping can be achieved by various ways, yet sorting is not, at least not efficiently.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
711 [NoesisGUI] C++ SDK crash always 2015-08-26 18:00 2018-11-22 09:46
Reporter: ZanAlex Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: VisualBrush crash
Description: Apparently, setting VisualBrush.Visual to another element of the UI tree leads to a crash in both the Player and my application.
Tags:
Steps To Reproduce: <StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Background="Gray" Orientation="Vertical" VerticalAlignment="Center">

    <Slider x:Name="PART_Slider" Orientation="Horizontal" Height="22" Maximum="100" Value="4" Width="300"/>

        <ProgressBar Height="29.532" Value="{Binding Value, ElementName=PART_Slider}" Width="300">

            <ProgressBar.Style>
                <Style TargetType="{x:Type ProgressBar}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>

                                <Grid>
                                    <Rectangle x:Name="PART_Indicator" Fill="Pink" HorizontalAlignment="Left"/>
                                    <Border x:Name="PART_Track" Background="Black"/>
                                    <Grid>
                                        <Grid.OpacityMask>
                                            <VisualBrush Visual="{Binding ElementName=PART_Indicator}"/>
                                        </Grid.OpacityMask>
                                        <Rectangle Fill="White"/>
                                    </Grid>
                                </Grid>

                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ProgressBar.Style>

        </ProgressBar>

</StackPanel>
Additional Information: {{{
Unhandled exception at 0x0FB1D799: Access Violation writing location 0x8C0000AC
}}}
{{{
[ 0] [0x0FB1D799] Noesis.dll!Noesis::Gui::Visual::SetVisualFlag + 0x9 bytes
[ 1] [0x0FB1F99B] Noesis.dll!Noesis::Gui::VisualBrush::UpdateRenderProxy + 0x2b bytes
[ 2] [0x0FAC46C2] Noesis.dll!Noesis::Core::Exception::ClearCriticalFlag + 0xf052 bytes
[ 3] [0x0FB1EB77] Noesis.dll!Noesis::Gui::Visual::UpdateOpacityMask + 0xb7 bytes
[ 4] [0x0FB1ED8E] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x6e bytes
[ 5] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[ 6] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[ 7] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[ 8] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[ 9] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[10] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[11] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[12] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[13] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[14] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[15] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[16] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[17] [0x0FB1EDB6] Noesis.dll!Noesis::Gui::Visual::UpdateRender + 0x96 bytes
[18] [0x0FAB6A1B] Noesis.dll!Noesis::Core::Exception::ClearCriticalFlag + 0x13ab bytes
[19] [0x0FAB4C73] Noesis.dll!Noesis::Gui::RenderCommands::Reset + 0x9b3 bytes
[20] [0x0FAB38DE] Noesis.dll!Noesis::Gui::Visual::GetContentBoundsCore + 0x51e bytes
[21] [0x0FAB4BAE] Noesis.dll!Noesis::Gui::RenderCommands::Reset + 0x8ee bytes
[22] [0x0F9D1806] Noesis.dll!Noesis::Gui::Application::Tick + 0xa6 bytes
[23] [0x0FB8BF63] Noesis.dll!Noesis::Gui::NoesisApplication::Tick + 0x23 bytes
[24] [0x0FB8B7E4] Noesis.dll!Noesis::Gui::WindowApplication::OnKernelTick + 0xc4 bytes
[25] [0x0FB8B425] Noesis.dll!Noesis::Gui::WindowApplication::Finalize + 0xd5 bytes
[26] [0x0F8037D8] Noesis.dll!Noesis::Core::Threading::Job::SetGID + 0x758 bytes
[27] [0x0FB8BA57] Noesis.dll!Noesis::Gui::WindowApplication::Run + 0x67 bytes
[28] [0x01381220] Gui.XamlPlayer.exe
[29] [0x013818F1] Gui.XamlPlayer.exe
[30] [0x75C9336A] kernel32.dll!BaseThreadInitThunk + 0x12 bytes
[31] [0x778E9882] ntdll.dll!RtlInitializeExceptionChain + 0x63 bytes
[32] [0x778E9855] ntdll.dll!RtlInitializeExceptionChain + 0x36 bytes
}}}
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1308 [NoesisGUI] Unity3D feature N/A 2018-06-05 21:34 2018-11-22 09:43
Reporter: Gwynneth Platform: Unity3D  
Assigned To: sfernandez OS: Windows  
Priority: low OS Version: 10  
Status: assigned Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Offer support of serializing objects in XAML format.
Description: Offer support of serializing objects in XAML format. WPF offers a XamlWriter class for this. Intended use case is to save user edited ResourceDictionaries to file.
Tags:
Steps To Reproduce:
Additional Information: Forum post: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1418
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1233 [NoesisGUI] C++ SDK feature always 2018-02-06 05:19 2018-11-22 09:38
Reporter: nikobarli Platform: Windows  
Assigned To: sfernandez OS: Windows 10  
Priority: normal OS Version: Windows 10 FCU  
Status: assigned Product Version: 2.1.0rc2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Faster tree-view
Description: The speed of tree-view is very slow. Need a better support for virtualization.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1315 [NoesisGUI] C# SDK minor always 2018-06-27 07:12 2018-11-22 09:35
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version: 2.2.0b3  
    Target Version: 2.2.0  
Platform: Any
Summary: "Binding failed" spam for ItemsSource items - possibly an item disposal issue
Description: Hi guys,

I've enabled NoesisGUI errors and was overwhelmed by "binding failed" errors spam.
I have no reasonable explanation why so many "binding failed" errors are displayed.

For example, we have a console log in the game. It's implemented as an ItemsControl with ItemsSource binding to the observable collection of the viewmodels. The ItemTemplate is using databinding to bind to the viewmodel.
But I have tons of "binding failed" exceptions:
Binding failed: Path=TextMessage, Source=null(''), Target=TextBlock(''), TargetProperty=TextBlock.Text
Binding failed: Path=ForegroundBrush, Source=null(''), Target=TextBlock(''), TargetProperty=TextElement.Foreground
Binding failed: Path=ColumnSpan, Source=null(''), Target=TextBlock(''), TargetProperty=Grid.ColumnSpan
Binding failed: Path=Column, Source=null(''), Target=TextBlock(''), TargetProperty=Grid.Column
Binding failed: Path=ForegroundBrush, Source=null(''), Target=TextBlock(''), TargetProperty=TextElement.Foreground


It seems these binding errors happens when NoesisGUI sets DataContext to null when disposing the item control (built from the ItemTemplate).

Regards!
Tags:
Steps To Reproduce: You can use the latest game version from AtomicTorch.com (installed with our Game Launcher).
Enable "Developer mode" in the options and toggle the console (by default ~ key and we did something recently so it should work fine on most keyboard layouts now :-) ) and try to scroll it (so some console ItemsControl items will be disposed automatically by NoesisGUI). You can disable virtualization for this ItemsControl if needed - see key LogEntriesItemsControlStyle in the resource dictionary at "<game installation folder>\Core\Core.cpk\UI\Controls\Core\ConsoleControlResources.xaml".

If you need a debug game build I can provide it on the request.
Additional Information:
System Description
Attached Files:
Notes
(0005241)
ai_enabled   
2018-06-27 08:24   
This also causes some noticeable micro-stuttering as all these string objects created and passed from C++ to C#.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1064 [NoesisGUI] Unity3D minor always 2017-04-27 09:04 2018-11-21 17:12
Reporter: rolandtomczak Platform: Any  
Assigned To: jsantos OS: any  
Priority: low OS Version: any  
Status: resolved Product Version: 2.0.1f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b4  
    Target Version: 2.2.0  
Platform: Any
Summary: Vertical spacing above font not consistant with 1.2.0
Description: Hi,

I've an user control displaying a single letter using ROBOTO font.
The vertical placement in 1.2 and 2.0 isn't the same, as shown in the attached screenshot.
Please also note that in 1.2, the placement wasn't consistant with the WPF one (I had to add a negative vertical margin on my fonts)



Tags:
Steps To Reproduce: <!-- Font_Patient_Sans is #Roboto -->

<Grid x:Name="LayoutRoot" RenderTransformOrigin="0.5,0.5">
        <Viewbox Stretch="Uniform">
            <Button x:Name="butSelector" Width="250" Height="250" Style="{DynamicResource Button_Round_Style}" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="{x:Null}">
                <Grid Width="250" Height="250">
                    <Grid x:Name="grdSymetryHost" Width="250" Height="250">
                        <Grid x:Name="grdLetter" Margin="0" Width="250" Height="250">
                            <Rectangle Fill="#FF424242" RadiusX="30" RadiusY="30" Width="250" Height="250"/>
                            <TextBlock x:Name="txtLetter"
                      FontFamily="{DynamicResource Font_Patient_Sans}"
                      FontSize="240"
                      Text="T"
                      Foreground="{DynamicResource Background_Brush}" TextAlignment="Center" LineHeight="1" Margin="0,-15,0,0" VerticalAlignment="Center" FontWeight="Bold"/>
                        </Grid>
                    </Grid>
                </Grid>
            </Button>
        </Viewbox>
    </Grid>
Additional Information:
Attached Files: Font_Noesis1.PNG (121,301 bytes) 2017-04-27 09:04
https://www.noesisengine.com/bugs/file_download.php?file_id=774&type=bug
Font_Noesis2.PNG (37,602 bytes) 2017-04-27 09:04
https://www.noesisengine.com/bugs/file_download.php?file_id=775&type=bug
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1289 [NoesisGUI] C# SDK trivial always 2018-04-12 12:18 2018-11-21 16:49
Reporter: ai_enabled Platform: PC  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: \r counted as a letter during text formatting/aligning
Description: Hi guys,
just noticed that NoesisGUI counts \r as a regular letter during text aligning.
For example, we have a text block like this:
new TextBlock() { Text = "Hello" + Enviroment.NewLine + "World", TextAlignment = TextAlignment.Center }

(Enviroment.NewLine in .NET Framework is \r\n)
I would expect both words to be aligned by center, however NoesisGUI will align first word a little bit left because it counts \r as a letter similar to space char.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: Screenshot at 17-10-33.png (1,572,837 bytes) 2018-04-12 12:19
https://www.noesisengine.com/bugs/file_download.php?file_id=932&type=bug
Notes
(0005187)
ai_enabled   
2018-04-12 12:19   
In the attached screenshot you can see that the first line of nickname text is aligned a little bit left.
Using \n instead of Enviroment.NewLine resolved the issue.
(0005188)
jsantos   
2018-04-12 17:13   
Thanks for the report.

I see the new terrain system in that screen... cool :D
(0005251)
jsantos   
2018-08-31 15:31   
Thanks for this discovery, I fixed it, it was not happening with all fonts.

I hope you get the fix soon :)


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1231 [NoesisGUI] Unity3D feature always 2018-01-31 06:39 2018-11-21 16:49
Reporter: CMarinacci Platform: PC  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10.0.16299.192  
Status: resolved Product Version: 2.1.0rc2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.0  
Platform: Any
Summary: Implement InlineUIContainer in order to allow TextBlocks to insert other UIElements (like Image) into rich text.
Description: InlineUIContainer is not implemented.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1073 [NoesisGUI] Unity3D minor always 2017-05-06 17:07 2018-11-21 16:49
Reporter: MrJul Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.0.1f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: TextBlock.Stroke isn't applied to ellipsis
Description: When TextBlock.Stroke and TextBlock.TextTrimming are bot set and the text is trimmed, the added ellipsis doesn't have any stroke applied. Ideally, the ellipsis should have the same stroke as the text.

Please see the attached screenshot.
Tags:
Steps To Reproduce: <Border Background="Black" Width="100" Height="40">
    <TextBlock Text="Lorem ipsum dolor sit amet consectetur adipiscing eli"
        Stroke="CornflowerBlue" StrokeThickness="4" Foreground="White"
        FontSize="16px" Margin="4" TextTrimming="CharacterEllipsis" />
</Border>
Additional Information:
Attached Files: ellipsis.png (1,983 bytes) 2017-05-06 17:07
https://www.noesisengine.com/bugs/file_download.php?file_id=795&type=bug
Notes
(0005253)
jsantos   
2018-08-31 16:42   
Thanks for this report. Fix will be available in next beta.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1245 [NoesisGUI] Unity3D feature always 2018-03-05 20:24 2018-11-21 16:48
Reporter: antsonthetree Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 2.1.0rc3  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: Add Support for FontFamily Fallback
Description: Hello,

I've set my fonts in my usercontrol like so
FontFamily="Segoe UI, Fonts/#FontAwesome"
and also like
FontFamily="#Segoe UI, Fonts/#FontAwesome"

But I always get an error in Unity as follows:
NoesisException: Assets/NoesisGUI/MainWindow.xaml(1): Unable to convert 'Segoe UI, Resources/Fonts/#FontAwesome' to a valid value for property HelloWorld.MenuBase.FontFamily.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005258)
jsantos   
2018-09-05 21:44   
This is coming in the next version


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1274 [NoesisGUI] C# SDK minor always 2018-04-05 11:22 2018-11-21 16:48
Reporter: ai_enabled Platform: PC  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: TextTrimming ellipses are not stroken
Description: Hi guys,
I just noticed that Noesis Extensions text stroke doesn't apply to the text trimming ellipses. See the attached screenshot.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: Screenshot at 16-21-06.png (3,983,278 bytes) 2018-04-05 11:22
https://www.noesisengine.com/bugs/file_download.php?file_id=916&type=bug
Notes
(0005252)
jsantos   
2018-08-31 16:42   
Thanks for this report. Fix will be available in next beta.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1293 [NoesisGUI] Unity3D minor always 2018-04-21 22:01 2018-11-21 16:47
Reporter: mingingmingler Platform: Unity PC  
Assigned To: jsantos OS: Windows  
Priority: normal OS Version: 10 x64  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 2.2.0b1  
    Target Version: 2.2.0  
Platform: Any
Summary: LineHeight does not work - LineStackingStrategy seemingly not implemented for TextBlock
Description: According to a Noesis changelog, support for LineHeight was added. But, because LineStackingStrategy can't be changed, the LineHeight property has no effect.

http://www.noesisengine.com/docs/Gui.Core.Changelog_v11.html

Is there a suitable workaround for the usage of this property?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0005195)
jsantos   
2018-04-23 17:55   
Sorry, not easy workaround apart from splitting text into lines and moving them manually. :(

I will work on this ASAP.

Sorry for the inconvenience.
(0005197)
mingingmingler   
2018-04-25 21:51   
No problem, thanks for the response!
(0005256)
jsantos   
2018-09-05 21:27   
This is coming in the next release


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1299 [NoesisGUI] C# SDK major always 2018-05-14 09:05 2018-11-21 16:47
Reporter: cleik Platform: linux_x86_64  
Assigned To: jsantos OS: CentOS  
Priority: normal OS Version: 7  
Status: resolved Product Version: 2.1.0f1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 2.2.0  
Platform: Any
Summary: NoesisGUI references wrong OpenGL version
Description: OpenGL version 2.1
Mono JIT compiler version 5.10.1.47

While executing a program with mono: "mono program.exe" I get a fatal unhandled exception: system.dllnotfoundexception: Noesis.
The Noesis.dll (linux_x86_64) and NoesisManaged.dll files are in the directory of the program.

Executing with mono debug flag: "MONO_LOG_LEVEL=debug mono program.exe" I get this:
"Mono: DllImport error loading library 'directory/libNoesis.so: undefined symbol: glGetQueryObjectui64v'"

See forum post #13 of this thread: https://www.noesisengine.com/forums/viewtopic.php?f=3&t=1332&start=10
"I don't know exactly when, we incorrectly added a hard reference to GL3.3 and to the extension GL_EXT_timer_query in NoesisGUI 2.1. It means that right now you need to use a GL library exporting both glGetQueryObjectui64v and glGetQueryObjectui64vEXT."
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1358 [NoesisGUI] C++ SDK feature have not tried 2018-11-21 14:04 2018-11-21 14:04
Reporter: jsantos Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Parser being too permissive
Description: Setting properties outside the element definition is allowed by our parser.
Tags:
Steps To Reproduce:
<Border></Border>
<Border.RenderTransform>
    <RotateTransform CenterX="0.5" CenterY="0.5" Angle="20"/>
</Border.RenderTransform>
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
1357 [NoesisGUI] C# SDK feature have not tried 2018-11-21 14:00 2018-11-21 14:02
Reporter: sfernandez Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support define attached properties in non DependencyObjects
Description: Allow a non DepedencyObject class to define attached dependency properties.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
435 [NoesisGUI] Unity3D major always 2014-08-02 03:34 2018-11-21 13:47
Reporter: ai_enabled Platform: Any  
Assigned To: sfernandez OS: Any (tested on Windows 7)  
Priority: high OS Version: Any  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Circular references in GC with event handlers
Description: Hello!
As you know, our game now get high reception. Users noticed very little issues with the current release, but everybody noted us that game performance degrades over time: FPS drops very much after around 1 hour of playtime, and restore to normal only after re-launching game.
We also experiencing this issue all the time with NoesisGUI, but not pay much attention to it before. I'm also added some code to investigate this issue (the command to printing NoesisGUI current controls tree to a file - use console command "debug_noesis_tree"). But issue seems to be independent from controls count (it stays in range 11000-13000 during play and not increase over time, most high usage controls like "ItemInventoryIconControl" have reuse-pool (controls removed to manager after use and added later when required)).
With the Unity Profiler, I determined reason for FPS drop - invoking time of
NoesisGUIPanel.LateUpdate() (UIRenderer.Noesis_UpdateRenderer) increase over time, and after some time it's became very very high.
This issue seems to present on Mac & Linux also!
My idea - you can download our game and replace Noesis.dll with a debug version to investigate this issue.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: SkillIconControl.xaml (17,138 bytes) 2014-08-13 09:09
https://www.noesisengine.com/bugs/file_download.php?file_id=350&type=bug
Notes
(0001487)
ai_enabled   
2014-08-08 10:21   
Hello!
Do you have any progress with this issue? Is it reproducible on your machines?
(0001489)
sfernandez   
2014-08-08 15:16   
Hi,

I've been doing some tests and after playing around 15-20 minutes the timings of our Update vary almost nothing. I've been killing some pirates, docking in the station, talking to the civilians, navigating through skill tree...

I will leave the game running during a few hours and see if it degrades then.

Is there anything special I should do to force the degradation more?
(0001491)
ai_enabled   
2014-08-08 16:10   
It's not degrading after something special, we're notice constant degradation over play time. Usually after 2 hours the game became unplayable because of a serious FPS drop as reported by many customers. Not sure if it will drop if you just leave your PC for a few hours.
Please try buying-selling items on space stations, especially in the "capital" star systems with big goods list (you can use "/tp <System_Name>" chat command to jump between star systems, and "/tp X Y" to jump inside current star system). Maybe we have some kind of leak with item icons controls or item tooltips - maybe something not disposed properly. But controls count in the Logical Tree stay at nearly constant over (active) playtime.
I found that the game have leak with assets (textures/sounds not unloading from cache, so game can eat up to ~1.5 Gb of RAM after visiting many different star systems), but this seems to not degrade performance.
(0001492)
sfernandez   
2014-08-08 16:56   
I have a clue. Time is growing on the animation manager.
I will add some checks to see if the number of animations is growing constantly.
(0001494)
ai_enabled   
2014-08-12 03:08   
Hello! Do you have any progress? I can provide you game sources if you need it. This issue is critical for us...
(0001496)
sfernandez   
2014-08-12 19:37   
Hi,

I detected that animated objects and properties are growing any time I enter the SKILLS tab. 66 new objects are added to the Animation manager and never deleted when leaving the tab.

Are you using "Forever" animations?
Are you keeping strong references to the controls used in the SKILLS tab so they are not destroyed?

That will explain why animations are never removed from the manager.
(0001502)
ai_enabled   
2014-08-13 09:09   
(Last edited: 2014-08-13 09:14)
Thanks for investigation!
First, about "Forever" animations - no, we don't use this type of animations. I attached SkillIconControl.xaml , please have a look on it and tell me if something wrong.

I've added some test code, and found that we have serious amount of controls, which are not referenced by anyone (which was simply removed from collection and expected to be garbage collected) and not automatically garbage collected (I tried forcing it).

Issue with skill icons is very strange. They're placed in specific panel control, which is placed via TabItem.RefreshContent() method to TabItem. So when I invoke TabItem.RefreshContent(null), this icons and they parent became abandon controls and should be collected by garbage collector, but this never happens.

Is this behaviour of abandoned controls normal and I should always remember to manually dispose all unused instances? I'm sure they can be disposed automatically, but some references still hold by someone. Is not easy to determine by who exactly - there is no such feature in Mono/.NET.

(0001505)
sfernandez   
2014-08-13 16:50   
The SkillIconControl.xaml seems correct, nothing strange that could lead to this situation.

We recently discovered a big problem that could explain why objects are not released, but I don't know if it can apply to your scenario.

When you have a control, and in its code-behind you attach a delegate to an event of the control or any of the children elements, a strong reference to the control is stored by the C# delegate, so control is never disposed unless you remove the delegate.

For example, imagine a UserControl with a button inside:

----
public class MyControl : Noesis.UserControl
{
    //...

    public void OnPostInit()
    {
        var btn = FindName<Noesis.Button>("btn");
        btn.Click += OnBtnClick;
    }

    private void OnBtnClick(Noesis.BaseComponent sender, Noesis.RoutedEventArgs e)
    {
        // ...
    }

    // ...
}
----

This control will never be disposed, because Click event maintains a strong reference to the control.

We are very worried about this situation and solve it is one of our priorities.

Let me know if this is the problem you are experiencing.
(0001506)
ai_enabled   
2014-08-13 18:32   
I thought about it also and found that actually we're using event handlers in the skill icons control...
Usually we're following pattern "subscribe in OnLoaded, unsubscribe in OnUnloaded", but for some controls we didn't pay enough attention - because in WPF is not required: usually these event handlers creates only references to children controls, so whole hierarchy of control and its children can be cleaned by GC.
Do you have any ideas how to avoid this problem? Currently I can easily list all undisposed controls and fix code for each of them, but it doesn't solve any future problems if we again forget to remove references.
(0001507)
ai_enabled   
2014-08-15 12:11   
(Last edited: 2014-08-15 12:12)
Our base classes for controls using two events:

    public void OnPostInit()
        {
            this.InitControl();

            this.Loaded += this.LoadedHandler;
            this.Unloaded += this.UnloadedHandler;
        }

But it's preventing garbage collection of any inherited control... but we absolutely can't live without it!
Any idea how we can resolve it?

(0001508)
sfernandez   
2014-08-15 13:36   
I just come up with an idea that maybe will be the internal solution we are going to adopt.

The problem here is that event delegates (which maintain a strong reference to the object) are (and need to be) stored in a static table. So GC is unable to detect circular references and dispose the object when nobody else is referencing it.

So we need to break this strong reference somewhat. To do it we are going to introduce an indirection. We create an intermediate class that will hold a weak reference to the control object, and that class will be the one attached to the event:

---
[Noesis.Extended]
public class UserControlBase : Noesis.UserControl
{
    public void OnPostInit()
    {
        this.InitControl();

        EventManager eventMgr = new EventManager(this);
        this.Loaded += eventMgr.OnLoaded;
        this.Unloaded += eventMgr.OnUnloaded;
    }

    protected virtual void InitControl() { }

    internal virtual void LoadedHandler() { }
    internal virtual void UnloadedHandler() { }

    private class EventManager
    {
        public EventManager(UserControlBase control)
        {
            target = new WeakReference(control);
        }

        public void OnLoaded(Noesis.BaseComponent sender, Noesis.RoutedEventArgs e)
        {
            UserControlBase control = target.Target as UserControlBase;
            if (control != null)
            {
                control.LoadedHandler();
            }
        }

        public void OnUnloaded(Noesis.BaseComponent sender, Noesis.RoutedEventArgs e)
        {
            UserControlBase control = target.Target as UserControlBase;
            if (control != null)
            {
                control.UnloadedHandler();
            }
        }

        private WeakReference target;
    }
}
---

Does it make sense?
(0001509)
ai_enabled   
2014-08-15 17:22   
(Last edited: 2014-08-15 17:23)
Thanks! This solution works, but it's a little bit "boilerplate" solution and the EventManager instance will remains into memory if you don't hang down events explicitly. It's requires writing some extra code just to wrap the events correctly, but it's reasonable if there are no better solution.

Have you read this article about weak references? http://www.codeproject.com/Articles/29922/Weak-Events-in-C Maybe you can invent something better.

But the way, we just released new version of the game with fixed controls instantiating (and very high reusing of them). It still contains small "controls leak" due to OnLoaded/OnUnloaded hard references, but performance is much better now. Thanks for you help!

(0001510)
sfernandez   
2014-08-15 18:46   
>> Thanks! This solution works, but it's a little bit "boilerplate" solution

Yes, this must be considered a temporal solution until we fix it internally.

>> and the EventManager instance will remains into memory if you don't hang down events explicitly.

But now is possible because your control is disposed, so in the UserControlBase (or whatever name you are using) destructor, you can unregister from Loaded/Unloaded events (you only need to keep a reference to the EventManager created in the OnPostInit).

>> Have you read this article about weak references? http://www.codeproject.com/Articles/29922/Weak-Events-in-C [^] Maybe you can invent something better.

This is totally the idea, we will expose Weak Events instead, so you don't have to worry about anything.
(0003427)
ai_enabled   
2016-01-04 11:59   
(Last edited: 2016-01-04 11:59)
Hi guys,

I just want to check if you will improve this with v1.3 or we will need to keep the workaround?

Thanks!



View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
870 [NoesisGUI] Unity3D minor always 2016-04-20 01:59 2018-11-21 13:38
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: ItemsControl.AlternationCount is missing
Description: I've just read in the forum that ItemsControl.AlternationCount is missing. I've encountered that problem a few months back but forgot to create a ticket for it. So here it is. :D

For now I've solved this by manually counting and using a DataTrigger.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
409 [NoesisGUI] Unity3D feature N/A 2014-06-01 19:28 2018-11-21 13:24
Reporter: Scherub Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Support of creating custom controls
Description: It's nice to be able to create user controls but it would be even more nice to create custom controls. :)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
857 [NoesisGUI] Unity3D major always 2016-04-04 04:16 2018-11-21 13:16
Reporter: Scherub Platform:  
Assigned To: jsantos OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Path seems to ignore the containers it is in
Description: Hi,

I've created a path looking like circular rays that I'm rotating around its center. Unfortunately the path doesn't behave the same as it does in WPF.

I'll just upload two screenshots, one from WPF where I can change the angle and it works as expected and one using NoesisGUI where it behaves a bit odd. The screenshots are probably more self-explaining than when I would try to describe it. :) If not, just ask and I'll try to explain it or provide you a video.

I've starting doing this animation using an image and it works there as expected. Unfortunately it's a bit more involved when changing the color of an image and changing the opacity is also not the best thing to do.

I hope we can fix this issue or at least find a workaround this week as I'm planning to release the game next week.
Tags:
Steps To Reproduce: <Grid Grid.Column="2" Grid.Row="2">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Path x:Name="CircularRays1" Stretch="UniformToFill" Stroke="#3FF7941D" StrokeThickness="500" StrokeDashArray="0.12 0.12" RenderTransformOrigin="0.5,0.5"
            Data="M750,500 C750,638 638,750 500,750 362,750 250,638 250,500 250,362 362,250 500,250 638,250 750,362 750,500z">
            <Path.RenderTransform>
                <RotateTransform />
            </Path.RenderTransform>
        </Path>
    </StackPanel>
</Grid>
Additional Information:
Attached Files: Circular Rays - WPF.jpg (36,384 bytes) 2016-04-04 04:18
https://www.noesisengine.com/bugs/file_download.php?file_id=655&type=bug
Circular Rays - NoesisGUI.jpg (32,403 bytes) 2016-04-04 04:18
https://www.noesisengine.com/bugs/file_download.php?file_id=656&type=bug
Notes
(0003705)
Scherub   
2016-04-04 04:19   
Oh, I should also mention that the path is cut off for some reason.
(0003708)
sfernandez   
2016-04-04 14:06   
It seems there are problems with the tessellation of the dash when dealing with this situation where dash vertices are touching or even crossing in the center.

You should be able to create the same geometry using solid sections of a ellipse instead of the dash property as a workaround while we solve this problem. I can help you with this if you need it.
(0003709)
Scherub   
2016-04-04 14:57   
Well, since you seem to know how to create the same geometry in a different way it will probably be faster if you show me the way. :)
(0003710)
sfernandez   
2016-04-04 15:03   
Please indicate which size do you need for the Ellipse, and the degrees I should assign to each section and hole, to get the desired effect. I will attach here the corresponding xaml code.
(0003711)
Scherub   
2016-04-04 15:21   
Well, in the end the size should be 'flexible' but if you take a width/height of 1000 it should be fine. And if you use 20 degree for each section and hole you should end up with less sections than in above picture but that should be okay.
(0003712)
sfernandez   
2016-04-04 16:16   
Here you have a Path with several figures that is equivalent to the first one:

<Path Data="M500.00003,500.04046 L1000,500.04046 C1000,530.24354 997.32205,559.82113 992.19058,588.54876 L990.66678,596.50214 989.07382,603.99631 z M500.00003,500.04046 L956.77276,703.40878 C944.48806,731.00067 930.01131,756.93191 913.6389,781.08874 L909.01191,787.73474 904.50852,793.93308 z M500.00003,500.04046 L834.56533,871.61287 C812.12007,891.82268 788.34772,909.62382 763.56531,925.03293 L756.63517,929.22238 750.00002,933.05315 z M500.00003,500.04046 L654.50853,975.56872 C625.78369,984.90198 596.82619,991.49505 567.91888,995.49206 L559.88388,996.50057 552.26425,997.3014 z M500.00003,500.04046 L447.7358,997.3014 C417.69817,994.14432 388.56253,988.38931 360.52867,980.2831 L352.77813,977.93629 345.49153,975.5687 z M500.00003,500.04046 L250.00003,933.05316 C223.8434,917.95162 199.56744,900.84362 177.25432,882.03583 L171.12839,876.73949 165.43473,871.61286 z M500.00003,500.04046 L95.491533,793.93308 C77.738608,769.49828 62.519866,743.99542 49.785639,717.73809 L46.343537,710.408 43.227307,703.40877 z M500.00003,500.04046 L10.92623,603.9963 C4.6466567,574.45323 1.1165886,544.9652 0.16311504,515.79845 L1.4841479E-05,507.70205 3.9703392E-05,500.04045 z M500.00003,500.04046 L10.92623,396.08461 C17.205804,366.54154 25.974791,338.16707 36.966935,311.13411 L40.111038,303.67134 43.227313,296.67213 z M500.00003,500.04046 L95.491533,206.14783 C113.24446,181.71303 132.79626,159.35833 153.83338,139.13339 L159.74105,133.59464 165.43474,128.46805 z M500.00003,500.04046 L250.00003,67.027755 C276.15667,51.926215 303.1106,39.456616 330.55519,29.536788 L338.20492,26.879746 345.49154,24.512206 z M500.00003,500.04046 L447.7358,2.7795095 C477.77342,-0.37757206 507.46891,-0.80596287 536.57555,1.2945421 L544.64464,1.9786396 552.26427,2.7795193 z M500.00003,500.04046 L654.50853,24.512199 C683.23336,33.845464 710.53579,45.532354 736.27167,59.289996 L743.36491,63.196946 750.00003,67.027767 z M500.00003,500.04046 L834.56533,128.46804 C857.0106,148.67785 877.19911,170.45925 895.11428,193.49521 L900.00517,199.94946 904.50852,206.14784 z M500.00003,500.04046 L956.77276,296.67214 C969.05746,324.26402 978.64129,352.37373 985.63804,380.70488 L987.48091,388.59044 989.07382,396.08462 z" Fill="#FFFF9700" RenderTransformOrigin="0.5,0.5"/>
(0003713)
Scherub   
2016-04-04 16:56   
Ah, excellent! That one works as expected. Thanks a lot! :)

What did you use to create it? Illustrator?
(0003714)
sfernandez   
2016-04-04 17:18   
I used Blend, started with an Ellipse and then used Rectangles to "Substract" the required portions until I had the desired arc section. Then I copied the section N times applying the corresponding rotation to each section. Finally I selected all the paths and "Make Compound Path".

It's a bit tricky but I used that kind of path operations often to create more complex geometries.
(0003720)
Scherub   
2016-04-05 10:03   
Thanks for explaining it. I will give it a try with the next path I have to create. :)
(0004592)
jsantos   
2017-04-26 02:32   
What's the status of this? Can we close it?

Thanks!


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
912 [NoesisGUI] C# SDK major always 2016-06-14 07:57 2018-11-21 13:15
Reporter: ai_enabled Platform: PC  
Assigned To: sfernandez OS: Windows  
Priority: normal OS Version: 10 x64  
Status: assigned Product Version: 1.2.6f4  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Binding bugs
Description: Hello!

I've noticed that getter for binding to any property is invoked three times in a rowю

For example, I have this property in a view model:
public string Title { get { return "test"; } }

and this getter is invoked three times instead of one. Tested on every view model in the game.

Also I've noticed that sometimes NoesisGUI doesn't invoke property getter after the value has been changed (NotifyPropertyChanged was invoked so NoesisGUI must request the fresh value of the property). This is completely random but very often reproducible. BTW, I've checked that everything is executed in the main thread only, so this is not a multi-threading issue.

Regards!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0003999)
ai_enabled   
2016-06-14 08:00   
To clarify: NoesisGUI C# API callback method "GetPropertyValue_String" is invoked from C++ exactly three times for every bind property (with exactly the same arguments). So the issue is on the C++ side.
(0004224)
ai_enabled   
2016-11-02 09:38   
I will check this issue again when you will provide fixed build for 1.3.


View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
822 [NoesisGUI] C++ SDK feature always 2016-02-08 21:04 2018-11-21 13:02
Reporter: elios Platform:  
Assigned To: sfernandez OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 1.2.5f10  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Platform: Any
Summary: Missing feature DependencyPropertyDescriptor
Description: this class allows you to handle Dependency Property changes and to perform some operations when it happens.
some useful functions of it are :

::FromName(const NsString& name,Type ownerType,)
::AddValueChanged(Delegate)
::RemoveValueChanged(Delegate)
Tags:
Steps To Reproduce: No Header file containing this class
Additional Information: this class allows you to be notified of a the property change of any instance, without having to have manually register with DependencyPropertyChanged in each instance
Attached Files:
There are no notes attached to this issue.