Well that is another issue, the architecture support. This was just added to LWJGL 3 3.3.0 release (which is now in jME 3.5). So yes there is that difficulty.
But the issue I was referring to is the LWJGL Mac OS (software side) issue. With the threads. LWJGL 3 needs to be initialized in main thread, and with MacOS this requires some JVM parameters and even then it seems to be a bit challenging sometimes.
The architecture issue of course dictates the necessity to switch to LWJGL 3 if the support is desired.
Yes I’m aware but I wanted to point out that LWJGL2 for Apple silicon will likely never come so Mac OS support will drop by itself when intel Macs won’t be relevant anymore.
It could, but would need to be tested on a Mac. I don’t have a Mac, to obscure of a system. So little for it would stop me. Just like the OS/2 from the 90s, great little system but couldn’t hold out to the GIANT killing machine of MicroSoft.
I got to ask, why worry about Mac, since Apple announced getting (not supporting) rid of Mac several years ago. Also, on top of that the percentage of Mac opengl users is SO small. It is not worth the holding back of an engine to support such a small percentage of the opengl world, Mac is less than 10% of the whole world and gaming users on Mac make that even smaller. Windows and Android will get you almost everyone.
With Apple not continuing to update their Opengl, so it will be stuck at a certain version forever. It is like holding your back from getting a new car just to keep that old clunker running, because it has your 8-track in it and you don’t want to get rid of it.
Maybe I’m missing something and I’m new, so you guys might have a plan that I’m not aware of but, with the company has stopped support, why would you hold back to get those few people.
We are still talking about less than 10% of the world market has MacOS running.
Just don’t get holding back for a small percentage. Reminds me of the days of the Atari ST/Amiga/PC battle. I know being open source you probably are trying to grab the largest percentage, but if someone TRUELY wants MacOS, why couldn’t they just downgrade JME to LWJGL2, instead of making it hard for EVERYONE else to upgrade to LWJGL3.
I plan to freeze the v3.5 feature set and create the “v3.5” branch on 15 December. Enhancements and new features that don’t get integrated to the “master” branch by then will be deferred to v3.6. After the 15th, documentation, new tests, and bug fixes committed to “master” will generally be cherry-picked into “v3.5”.
There’s one enhancement planned for v3.5 that hasn’t been implemented yet, as far as I know:
Based on the fact that I was running into this exact problem when I changed to lwjgl3 for my game since 2 would freeze when alt-tabbing. Someone else submitted the patch at the time. The change they made you basically reverted. Running on the main thread is technically the way it is supposed to be done for glfw, but it only breaks on osx. This is also why AWT has issues on osx with lwjgl3.
// NOTE: this is required for Mac OS X!
mainThread = Thread.currentThread();
mainThread.setName("jME3 Main");
String osName = System.getProperty("os.name");
if ( osName.contains("Mac") ) {
mainThread.run();
} else {
new Thread(this, "jME3 Main").start();
if (waitFor)
waitFor(true);
}
This is what I do in my engine and I have one beta tester that was able to run the game. It would need to be tested, though.
I think this is something that should be tested. I just don’t have a mac.
This section probably needs to be updated as well if you are not on mac.
It also may make sense to throw an exception if waitFor is false for mac with some sort of error message about being unsupported. That’s probably the best we can do with the current design.
// NOTE: this is required for Mac OS X!
mainThread = Thread.currentThread();
mainThread.setName("jME3 Main");
String osName = System.getProperty("os.name");
if ( osName.contains("Mac") ) {
if (waitFor)
LOGGER.warning("create() called with unsupported waitFor command!");
mainThread.run();
} else {
new Thread(this, "jME3 Main").start();
if (waitFor)
waitFor(true);
}
I hate to say anything but I just see a bunch of back and forth and some saying JME should handle it, it should be APP. Some say JME and not App and some so worried that Mac will break would rather stick to LWJGL2 that was discontinued 6 years ago.
No one wants to move an inch forward to start moving toward the future, just stuck in the past.
With so little Mac games on Steam, most companies even stopped carrying about Mac OS since it has been discontinued 6 years ago.
My 2 sense is move forward, there is a solution but there appears not enough Mac users to test and program. More worried about sticking to no change because it will break, little volunteers for testing and moving forward. If I had a Mac I would do it.
What I mean is the continuing support for Opengl, Apple cut it off for continuing updates to keep it going. Was not talking about the OS. OpenGL on MacOS will not move forward from what it was in 2018.