Mojave And OpenGL Deprecation

I’m in the early stages of developing an OpenGL simulation game on mac. Things were going pretty well until I updated to Mojave. Now, I’m running into some linking errors related to OpenGL, and it’s brought me to reading A LOT of articles about similar difficulties.

I understand OpenGL is now officially deprecated on mac. Is this going to become too much of a headache going forward?

My main motivation for using OpenGL was that it is cross-platform and it allows more direct control of graphics programming. The project is a tile-based game in the style of Dwarf Fortress. Do you think it is reasonable to consider moving to an entirely different framework that is likely to remain updated with Mac’s Metal framework, rather than constantly fooling around with these errors related to a deprecated framework?

[QUOTE=ecssiah;1292896]I understand OpenGL is now officially deprecated on mac. Is this going to become too much of a headache going forward?

My main motivation for using OpenGL was that it is cross-platform and it allows more direct control of graphics programming.

Do you think it is reasonable to consider moving to an entirely different framework that is likely to remain updated with Mac’s Metal framework, rather than constantly fooling around with these errors related to a deprecated framework?[/QUOTE]

It does seem that Apple is trying to force their customers down the Metal road, doesn’t it? In doing so, they want you to use an API that’s only available on their OSs.

It’s up to you to decide whether this is OK with you or not. If you only want to develop for yourself or you don’t need portability outside of MacOS/iOS, then you may very well just want to commit to Metal, if you don’t find it too low-level for your needs.

Alternatively, if you don’t like being herded down the road Apple wants you to follow, if Metal is too low-level for you, or you want to (or need to) use a cross-platform API, you might take a look at developing on a platform that provides you better options (like Windows and Linux). You could also consider developing on MacOS using a cross-platform abstraction framework or library. Hopefully someone with more experience on Mac can chime in here with options. I’ve heard of MoltenGL, but I haven’t worked with it personally (sounds like it implements an OpenGL ES 2.0 API through Metal). There’s also Mesa3D which will provide OpenGL and OpenGL ES capability, but that’s likely a pure CPU implementation on Mac.

Just FYI (in case you didn’t already know), this vendor lock-in push by Apple hasn’t just affected OpenGL but Vulkan as well. In fact, Khronos has a portability initiative called MoltenVK designed to provide the Vulkan API on Apple platforms on top of Metal. This gives you the ability to write for a cross-platform API, but still reach Apple OSs along with all the other major platforms and OSs. That’s another option you might consider.

(For other readers, a link describing what the OP referred to:OpenGL, OpenCL deprecated in favor of Metal 2 in macOS 10.14 Mojave)

Thank you for the detailed answer.

I’ve decided to implement the program in SDL to avoid the issues. I think it will be suitable for my needs. I am developing for public use, and cross-platform usability is important.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.