Recently, I’m working on an open source project that translates OpenGL ES draw calls to Metal draw calls on Apple platforms (iOS & macOS). It is a fork of Google’s ANGLE project: https://github.com/kakashidinho/metalangle. This project is named MetalANGLE for now. Inspired by cross-API translation libraries such as MoltenVK (Vulkan to Metal), DXVK (DirectX to Vulkan), etc. that became increasingly popular recently. Though I think MetalANGLE won’t be as popular as those projects since many people have moved on from OpenGL by now.
There were many reasons leading me to start this project:
- Apple have deprecated OpenGL (ES) on their platforms and urge everyone to use Metal instead. Hence, developing a translation layer to convert OpenGL draw calls to Metal would help cross-platform apps (some of which might have been developed long ago) survive future removal of OpenGL from Apple platforms.
- Apple’s native OpenGL performance has become noticeably slower after recent OS updates. I don’t know the exact reason, but probably because it has been deprecated and they don’t allocate much resource to maintain or update it anymore.