-
Notifications
You must be signed in to change notification settings - Fork 610
Add open gl example and fix #717 #727
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…er and openGL widgets are correctly rendered
…same area This fix concerns only Windows behaviors
9870cfd
to
d57448b
Compare
…r when undocking redocking
Thank you for your pull request. Do you really thing this is necessary to make the widgets to native widgets. In our application we use the OpenGL based Coin3D library without any problems in the ADS docking system (see the Robot visualization on the front page). Also other user seem to use ADS to display 3D content without any problems so I'm not really convinced from this change. |
Yes the fix seems mandatory to use OpenGL on Ubuntu. If you have better fixes to make OpenGL widgets working on Ubuntu, I would be pleased. |
Fix issue #717
Add an OpenGL example to check/test how ADS handles widgets that include OpenGL rendering.
In order to fix weird behavior and crashes, some
winId()
have been added to the code. It forces some widgets/windows to be managed as native widgets instead of aliens (non-native).Some doc about native and aliens: https://doc.qt.io/qt-6/qwidget.html#native-widgets-vs-alien-widgets
These changes can theoreticaly induced a drop of performances, but I didn'tt noticed them. I have observed a speedup of the UI launch and reaction on both Ubuntu 24.04 and Windows 11.
These changes should not affect how the lib is working under Windows, the demo example has been run under Windows and Ubuntu and all seems to work well.
On Ubuntu, the handling of OpenGL is now working thanks to these modifications.
The OpenGL example has been developped with components from the following Qt examples:
The example has been tested on Ubuntu 24.04, Windows 11 with QtCreator and cmake.
Some weird behaviors are still present on Ubuntu (docking a QOpenGLWiidget/QQuickWidget floating window in a QOpenGLWindow/QQuickView container floating window seems to destroy the contained window) but globaly it's working fine.
It has taking quite a while to achieve this result. I hope this will suit you.
Please give it a try.