In 2014 Apple announced Metal, their new GPU programming framework. At the time, everyone said they would never deprecate OpenGL. It was in too many applications. These people were wrong when in 2018 Apple announced OpenGL’s deprecation on the Mac.
GPUImage has been around since 2012. It was originally written in Objective-C and OpenGL. With GPUImage 2, the code was ported to Swift and made cross platform with Linux. Its next iteration is GPUImage 3, with Metal.
In this talk, I will go over the process of updating GPUImage to both Swift and Metal. I will talk about design decisions to keep the framework consistent for our users and lessons we learned during the process.
The purpose of this talk is not just to cover 3D graphics and GPU programming frameworks, but also the work that goes into maintaining a long term open source framework and learning to roll with the punches when Apple introduces changes.