If you build the SDL2 Xcode project for iOS while using the iOS 12.0 SDK or later (Apple currently requires using the iOS 15 or 16 SDK when submitting to the App Store) you will get dozens or hundreds of warnings about OpenGL ES functions being formally deprecated. I haven’t tested with the CMake build setup but I’d be surprised if it does anything special to suppress those warnings.
On macOS it normally would be similar when you build SDL, but SDL has some #pragma preprocessor statements sprinkled in its macOS backend to suppress those warnings. That doesn’t mean Apple isn’t giving those warnings though, just that they’re being ignored.
In your own app, if you get those OpenGL / OpenGL ES functions from Apple’s headers they will have the same deprecation warnings. If you get the function pointers manually via SDL_GL_GetProcAddress or similar APIs, that information isn’t part of the pointer so the warnings will be lost.
I didn’t think web supported fixed-function logic ops (WebGL 1 is based on OpenGL ES 2, WebGL 2 is based on OpenGL ES 3, and WebGPU is based on the minimum of what D3D12/Vulkan/Metal support so doesn’t have them either.) What do you do on that platform?
I’m not sure this falls under documented behaviour or that it has no reliance on what’s going on under the hood, but I suppose you can draw your own conclusions from that whole thread. I’m not really interested in arguing, I’ve just been trying to suggest writing code to reduce that sort of reliance and improve long term viability (maybe the opposite of abandoning things.)
the most common of the
glLogicOp()
modes that I use - invert - is perfectly achievable using a custom blend mode!
This is great news for reducing your reliance on glLogicOp.
As mentioned, there are plans for a platform-agnostic GPU API in SDL3… but actually there are non-SDL alternatives already which can be used together with SDL. So you don’t need to wait for SDL’s version of that if you don’t want to. I can’t speak to their quality though
To go back to the original thread post, as far as I can tell SDL2 will continue to be patched for bug fixes for a while yet, it’s just not getting new feature or major change development - for example a fully supported Wayland backend which is used by default instead of the X11 backend where possible is a SDL3 feature and I don’t think there are plans to make it the default in SDL2.