Skip to content
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

Fix epuzanovv merge request for glue_egl branch #503

Open
WizzerWorks opened this issue Jun 9, 2023 · 4 comments
Open

Fix epuzanovv merge request for glue_egl branch #503

WizzerWorks opened this issue Jun 9, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@WizzerWorks
Copy link

epuzanovv EGL

There is an existing merge request against this branch. Bring the glue_egl request from epuzanovv current to the HEAD of the coin repository. Then make merge request against a new synchronization branch that can be used prior to merging it with HEAD.

@WizzerWorks WizzerWorks self-assigned this Jun 9, 2023
@WizzerWorks
Copy link
Author

I created a fork of the coin repository and made a branch that includes the work epuzanovv did to support EGL. The branch is called glue_egl. It resolves the merge conflicts for CMakeLists.txt that are in the current merge request

See https://github.com/magic-lantern-studio/coin/tree/glue_egl,

Instructions for building this branch can be found on the wiki page, https://github.com/magic-lantern-studio/coin/wiki/OpenGL-ES-Investigation.

@WizzerWorks WizzerWorks added the enhancement New feature or request label Jun 20, 2023
@v01dXYZ
Copy link

v01dXYZ commented Jul 18, 2023

I am not the maintainer but just thank you for creating the issue. The patches made by epuzanovv and you seems to enable coin3d to work with native Wayland, in particular FreeCAD can now run on this platform. I hope it get merged soon as it is a really nice addition.

@WizzerWorks
Copy link
Author

I have also updated Quarter to support EGL and Wayland. See https://github.com/magic-lantern-studio/quarter/tree/qopenglwidget-port. This branch enables QOpenGLWidget for Qt5. It also fixes a compilation issue for Qt6.

Build details can be found on https://github.com/magic-lantern-studio/quarter/wiki/Quarter-1.1.0-Build-Environment-for-Linux.

I have only tested this work on Ubuntu 22.04 LTS 64-bit platform.

@v01dXYZ
Copy link

v01dXYZ commented Jul 20, 2023

As I am not a Qt export, Just to understand the context: https://www.qt.io/blog/2014/09/10/qt-weekly-19-qopenglwidget. QtGLWidget has been considered as deprecated since 2014, I don't know if quarter plan to consider dropping support for Qt4 but for now the ifdef are necessary.

An interesting answer from QtForum:

The major changes that created a lot of problems are:

In Qt4.8.4 when an QGLWidget is created, even if it is not displayed, an OpenGL context is created. So, all OpenGL operations are possible. In Qt5 to be able to use the OpenGL operation, with a QOpenGLWidget, the widget must be displayed, or linked to an off-screen surface,

In Qt4.8.4 when a QGLWidget is passed to every other QGLWidget, there is really a single OPenGL Context that is used. In Qt5, force the application to use shared contexts does not mean "a single context". And the impact is that OpenGL activated at one moment (in one context) are not necessarily activated globally. So application that runs well in QT4.8.4 does not necessarily work well with QT5,

And finally QGLWidget in QT5 and QGLWidget in QT4.8.4 are totally uncorrelated. This is the same class name, the same API. But QT has not only marked QGLWidget as deprecated. They also changed the whole implementation. Thus, an application working under Qt4.8.4 may encounter problems in QT5 due to unmanaged hidden QSurface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants