OpenGL deprecated on macOS


#1

What does this mean for SDL? Isn’t it based on top of OpenGL? Does this deprecate SDL as well?


#2

While SDL allows you to use OpenGL with it, it does not require you
to do so. Basically, if your program does not call a function that
includes “GL” in its name, it does not depend on OpenGL. If SDL does
not yet have a Metal backend, I am sure that one will be developed.
That’s one of the advantages of using SDL compared to using a low level
API directly.

MSB


#3

I think a metal backend was added in 2.0.8


#4

Not to mention that OpenGL will stop working for a while now.
The bigger problem is that Apple already neglected OpenGL for far too long…


#5

I think (and hope) that “deprecated” doesn’t mean that it will stop working, but simply that they recommend that it not be used in new projects. There must be huge numbers of existing apps that depend on OpenGL, and Apple would be mad to remove or break it (mind you, they do some mad things sometimes!).


#6

Yes, they really do. The term “iDiot” exists for a reason.

It seems to me this is just yet another example of Apple’s short-sightedness. NIH syndrome has long been a problem for them, and with iOS they’re repeating (and doubling down on!) all the same mistakes they made with the Macintosh that turned what could have been the dominant personal computing platform into a footnote with a tiny slice of market share.

rtrussell

    June 16

alt thor.lucas:
What does this mean for SDL?

I think (and hope) that “deprecated” doesn’t mean that it will stop working, but simply that they recommend that it not be used in new projects. There must be huge numbers of existing apps that depend on OpenGL, and Apple would be mad to remove or break it (mind you, they do some mad things sometimes!).


#7

If SDL does not yet have a Metal backend,

We do.

If previous behavior from Apple means anything, it’ll be that existing apps will continue to run until they remove support for the CPU architecture entirely, which we have seen happen (PowerPC apps used to run in an emulator, which was removed once Apple felt the migration to Intel was sufficiently complete).

Several APIs did not make the transition to 64-bit, but continue to be available to 32-bit processes. Once macOS 10.15 (the one after Mojave) ships, where 32-bit support will be removed, those APIs will presumably be completely gone from system libraries, as they were never in the 64-bit parts and there won’t be any 32-bit parts. Apps that intend to continue to run migrated (or should migrate right now) from those deprecated APIs and from 32-bit code in general.

So assume that OpenGL will continue to live in macOS until Intel 64-bit support is removed.

…and keep an eye out for an announcement of ARM-powered Macbooks, because that’s when it’ll happen.

(someone should make a Metal backend for OSMesa, btw…it would get you an OpenGL on Mac that can’t be taken away from you, is more modern, standards compliant, and probably faster than Apple’s OpenGL implementation without any specific hardware dependency in the GL implementation. This would not be a trivial effort, but it could be quite worthwhile.)

–ryan.


#8

Until Metal is deprecated, and so it goes on!

In my app I make direct calls to OpenGL functions (glEnable, glDisable, glLogicOp) in order to select OR, AND and XOR plotting modes. Unless there are equivalent Metal calls (or SDL2 adds this functionality) I am tied to the OpenGL backend.


#9

The next thing that Apple is going to deprecate is probably common sense. Oh wait, they did that already.