View Issue Details

IDProjectCategoryView StatusLast Update
0004217NoesisGUIC++ SDKpublic2025-06-04 15:32
Reporterd.stepanov Assigned Tojsantos  
PrioritynormalSeveritymajor 
Status feedbackResolutionopen 
Product Version3.2.4 
Summary0004217: RaiseTextureChanged does not invalidate widget's visual causing invalid texture coordinates
Description

RaiseTextureChanged does not invalidate widget's visual causing invalid texture coordinates. This happens in pair with async texture loading when GetTextureInfo at first returns the size of a small stub texture and when the texture is fully loaded, calls RaiseTextureChanged which in its turn calls GetTextureInfo again that returns the correct size. The bug itself forces the renderer to draw only a tiny portion of the image. The bug can be somewhat fixed by manual visual invalidation of the entire visual tree like so:

eastl::vector<Noesis::Visual*> stack;
stack.push_back(it->root);
while (!stack.empty())
{
    auto widget = stack.back();
    stack.pop_back();
    if (auto elem = Noesis::DynamicCast<Noesis::FrameworkElement*>(widget))
    {
        elem->InvalidateVisual();
    }

    for (int i = 0; i < Noesis::VisualTreeHelper::GetChildrenCount(widget); ++i)
    {
        stack.push_back(Noesis::VisualTreeHelper::GetChild(widget, i));
    }
}

More information here: https://www.noesisengine.com/forums/viewtopic.php?p=18683

PlatformAny

Activities

jsantos

jsantos

2025-06-04 10:28

manager   ~0010777

Last edited: 2025-06-04 10:28

I ran a small experiment using the official XamlPlayer included in the SDK. I created the following XAML:

<Grid
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <StackPanel>
    <Image Source="Emoji1.png" Stretch="None"/>
    <Image Source="Emoji2.png" Stretch="None"/>
    <Image Source="Emoji3.png" Stretch="None"/>
  </StackPanel>

</Grid>

When I change the dimensions of Emoji2.png, the UI updates correctly as expected.

Could you please share a XAML snippet where the issue can be reproduced?

Thank you!

d.stepanov

d.stepanov

2025-06-04 15:19

reporter   ~0010778

We need more time on investigation, since it does not happen for every image.

jsantos

jsantos

2025-06-04 15:32

manager   ~0010779

Sure! Leaving this on feedback

Issue History

Date Modified Username Field Change
2025-06-03 14:10 d.stepanov New Issue
2025-06-03 14:48 jsantos Assigned To => jsantos
2025-06-03 14:48 jsantos Status new => assigned
2025-06-03 14:48 jsantos Description Updated
2025-06-04 10:28 jsantos Note Added: 0010777
2025-06-04 10:28 jsantos Status assigned => feedback
2025-06-04 10:28 jsantos Note Edited: 0010777
2025-06-04 15:19 d.stepanov Note Added: 0010778
2025-06-04 15:19 d.stepanov Status feedback => assigned
2025-06-04 15:32 jsantos Note Added: 0010779
2025-06-04 15:32 jsantos Status assigned => feedback