OSX Mojave and Cerberus X

  • Hi folks,

    I noticed some comments in the net, which indicate that Apple has dropped OpenGL in OSX Mojave.
    After I had updated my machine and prior to updating to XCode 10, an initial mojo1 test ran succesfully. But I still need to upgrade to Xcode 10 and test mojo1/mojo2.
    My gut feeling tells me that at least mojo2 might not run, but I will report back when I know exactly.

    So I suggest to wait with an upgrade to Mojave if you depend on a working OSX/CX solution.


  • It's been on the cards for some time that Apple will end the inclusion of OpenGL/ES in their devices with them going it alone with there own take on Vulkan. The possible quick fix would be for the end developer to include MoltenGL. But from past experience with using paid for closed source API's, there's no guarantee that they will be around in a few years. I'm still surprised that GCC was still included with the xcode command line tools. Frankly dealing with Apple devices is starting to more trouble than it's worth; especially for small developers who haven't the resources to keep up with Apple and their whims.

    Eventually OpenGL will stopped being developed when Vulkan starts to become the main API of choice. It would be a question then if the GPU vendors will still supply the OpenGL drivers for the hardware.

  • Apple has set on Metal 2 and Swift. I am waiting that they will through out ObjC.
    MoltenVK is all fine, but it will be only a paid solution. Nothing we can provide for CX. :(

  • I read about Mojave dropping OpenGL this week. Most probably Apple will drop OpenGL for iOS too. I haven't seen announcement about it though. I also read that Apple wants users to use Metal.

    I started looking Internet for a solution. And I found bgfx (https://github.com/bkaradzic/bgfx). You can see who uses Bgfx in the Github page.

    Bgfx supports Direct3D 9, 11, 12, Metal, and Open GL. And if you look at the source they have started on Vulkan too. (Source to Vulkan backend: https://github.com/bkaradzic/bgfx…renderer_vk.cpp)

    This is very early work, but here is the hello world example converted to Cerberus:

    The original C file is here: https://github.com/bkaradzic/bgfx…99/helloworld.c

    So if I get this working it will be like the Cerberus opengl.gles20 module. Then may be I can gut out mojo2 and replace all OpenGL call with bgfx, not sure if this will work.

    This is all very experimental. I am not sure what other option is on the table. I am open to hearing other options. Will Cerberus users be interested in this?

  • From all the render frameworks, bgfx seems to me to be the one that is running on all platforms we need. So definitely something to look into.

  • I have to say that bgfx looks promising.

    EDIT: Just checked out the licence for bgfx. I think most people can live with BSD-Clause 2.

    [QUOTE="MikeHart, post: 3925, member: 3"]Apple has set on Metal 2 and Swift. I am waiting that they will through out ObjC.
    MoltenVK is all fine, but it will be only a paid solution. Nothing we can provide for CX.[/QUOTE]MoltenVK is under the Apache V2 licence, so there shouldn't be a problem there other than having to switch to Vulkan instead of OpenGL, but MoltenGL is a pay per feature set affair. I cannot see Apple dropping OjbC. They would have to completely rewrite their code base from scratch. From what I understand even MS Windows and OS X are still stuck in the C world for parts of the OS, so the chance that they would completely rewrite the lot would be slim. The only time that I can imagine Apple doing a rewrite is when they introduce one of their own custom CPU's and release Mac OS XI.

    Edited 3 times, last by dawlane (September 28, 2018 at 9:25 PM).

  • [QUOTE="dawlane, post: 3929, member: 12"]The only time that I can imagine Apple doing a rewrite is when they introduce one of their own custom CPU's and release Mac OS XI.[/QUOTE]
    Which they want to do.

  • I think even if C is dropped it will be like how HTML5 has emscripten, there is just too many legacy code that other companies don't want to rewrite.

    I start another thread and come up with a simple plan (more like a task list), so people knows what is going on and I can ask questions on how certain parts of the bgfx module should be implemented.

  • Yes do that. Need to implement dawlanes stuff. And the whole render part needs a push into the future. Maybe bgfx can replace it, maybe it is time for a cx2.

  • Just to let you know guys, IPhone XS Max simulator with IOS 12 works too with mojo1/mojo2.
    I think that is great news as we still have time to prepare CX for when Apple completely takes out OpenGL.

  • Hello
    My 2011 Mac Mini is dead but if someone is interested in publishing my upcoming app, I might buy another one to build a MacOS version. I've gone through a few threads here and still don't understand if CX apps on MacOS are still going to be a thing in the near future or not. Does someone know it? Thanks!

  • As long as I have hardware to develop on the latest OSX version, I plan on supporting it.
    Nobody knows when Apple will remove OpenGL/ES but it wil happen. With OSX Catalina, you will see now warnings, that certain OpenGL calls are depreciated. That is new to Xcode, so Apple is working to remove it alltogether.

    A new backend is not decided on. But I am motivated to keep CX running on OSX and IOS in the future, so don't worry.

  • Thanks for the answer and for your commitment!
    People who bought some of my apps like 5-10 years ago from the publisher still expect it to work today since they are part of their daily toolset so I guess I really must be able to fully support MacOS for years to come if I tell the publisher there is a MacOS version (moreover Macs are quite expensive so it must be worth the buy). Dropping Mac support would probably not affect the sales too much and it would free me from some hassle so I'm still wondering...

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!