View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001801 | NoesisGUI | C++ SDK | public | 2020-09-28 17:15 | 2020-10-14 14:55 |
Reporter | Roest | Assigned To | sfernandez | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | no change required | ||
Product Version | 3.0.6 | ||||
Target Version | 3.0.7 | Fixed in Version | 3.0.7 | ||
Summary | 0001801: 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. | ||||
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] | ||||
Tags | C++ | ||||
Platform | Any | ||||
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()? |
|
I'd say yes. The relevant code is here: https://github.com/rschurade/Ingnomia/blob/master/src/gui/mainwindow.cpp#L561 | |
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()? |
|
That seems to fix it. | |
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? |
|
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 | |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-09-28 17:15 | Roest | New Issue | |
2020-09-28 17:15 | Roest | Tag Attached: C++ | |
2020-10-14 11:21 | jsantos | Assigned To | => sfernandez |
2020-10-14 11:21 | jsantos | Status | new => assigned |
2020-10-14 11:21 | jsantos | Target Version | => 3.0.7 |
2020-10-14 12:18 | sfernandez | Status | assigned => feedback |
2020-10-14 12:18 | sfernandez | Note Added: 0006665 | |
2020-10-14 12:50 | Roest | Note Added: 0006666 | |
2020-10-14 12:50 | Roest | Status | feedback => assigned |
2020-10-14 13:34 | sfernandez | Status | assigned => feedback |
2020-10-14 13:34 | sfernandez | Note Added: 0006667 | |
2020-10-14 13:41 | Roest | Note Added: 0006668 | |
2020-10-14 13:41 | Roest | Status | feedback => assigned |
2020-10-14 13:49 | sfernandez | Status | assigned => feedback |
2020-10-14 13:49 | sfernandez | Note Added: 0006669 | |
2020-10-14 13:50 | sfernandez | Note Edited: 0006669 | |
2020-10-14 13:59 | Roest | Note Added: 0006670 | |
2020-10-14 13:59 | Roest | Status | feedback => assigned |
2020-10-14 14:55 | sfernandez | Status | assigned => resolved |
2020-10-14 14:55 | sfernandez | Resolution | open => no change required |
2020-10-14 14:55 | sfernandez | Fixed in Version | => 3.0.7 |