

Google ANGLE, an open-source OpenGL ES implementation over other APIs.much lower than Apple's built-in OpenGL / OpenGL ES libraries), it looks quite useless. MoltenGL, a closed-source OpenGL ES 2.0 implementation over Metal.Īs current implementation is limited to OpenGL ES 2.0 (e.g.

This is not an OpenGL library, but Vulkan is another multi-platform graphics API and some references tells that MoltenVK in current state is solid enough for using in real projects, and Vulkan 1.1 is expected to give more features than outdated OpenGL 4.1 (though, I cannot confirm this personally, just my expectations). MoltenVK, an open-source Vulkan 1.1 implementation over Metal.

You may already notice that information provided by a system library on modern macOS versions mentions Metal, so that it is already a wrapper over other graphics API (although Apple may cheat by accessing some internals). Unfortunately, it has stuck on OpenGL 4.1, and there is no reason to expect the version will ever grow up the library could be even removed in some newer macOS. Apple's OpenGL implementation over Metal.This is quite unpleasant situation for a developer of multi-platform software, as Apple steadily pushes to their platform-specific APIs like Metal as the only choice, which implies a stronger vendor-lock and/or a more expensive development.Īn alternative to using platform-specific APIs directly could be using a proxy-library implementing a multi-platform API on top of platform-specific API. Apple holds the full control over OpenGL functionality in system and doesn't give graphics card vendors any way to deliver users more up-to-date OpenGL features (even when their hardware supports them on other systems). In contrast, macOS is much more closed system, where all graphic drivers are part of the system and cannot be (normally) updated without updating system itself. Graphics card vendors provide drivers independently from Microsoft and OpenGL capabilities can be implemented without Microsoft approval.

On Windows, system-provided opengl32.dll doesn't actually implement OpenGL but is rather a proxy-library dynamically loading functions from a driver provided by a graphics card vendor. Built-in OpenGL on macOS works a little bit different from other platforms like Windows or Linux.
