3 ms·
There are some historic reason why we end up with Apple, but additionally: OpenGL is old, crufty and for modern standards sucks no matter how grate it once was
by dathinab 4y ago
There are some historic reason why we end up with Apple, but additionally:
OpenGL is old, crufty and for modern standards sucks no matter how grate it once was.
Most new 3D software doesn't use OpenGL, a lot of new software which does use OpenGL limits itself to OpenGL ES (which is roughly a subset of OpenGL).
Apple always had issues with a "Not Invented Here" syndrome and an obsession to control every little bit. Apple always pushed that software should be explicitly written for Apple, or if not at least with an Apple focus. New GUIs "should" be written with SwiftUI, etc.
For apple having a different API means they don't have spent time with standards outside of things they want to pus beyond their ecosystem, this means they can just further develop Metal however they want, ignoring inputs from everyone else. This can remove friction, but also will remove valuable feedback and profiting from other peoples innovation.
Lastly Vulcan, DirectX12 and Metal aren't too different hence why thinks like MoltenVK (Vulkan API/emulation on top of Metal) or VKD3D (DirectX12 API/emulation on top of Vulcan) exists. (Through no surprise all three have their own edge cases which does make such cross libraries non trivial, still they are quite viable and most important performant as they don't have to do much emulation and mostly can just map functionality.)