MetalSampleCodeSwift
Swift ports of Apple's Objective-C / C++ sample code
Metal is a great API, but it can feel inaccessible for Swift developers due to all the samples being written in C++ or Objective-C.
Swift's more concise syntax and reduced boilerplate can also make the code a lot more readable.
Most game developers are coming from C++ so I understand why the samples are in C++ / Objective-C, but the goal of this project is to port all of the Metal samples so that App developers can also learn metal without such a large barrier to entry.
In the first pass only the macOS targets will be ported as the other targets add a lot of clutter, and the code is being tested on Apple Silicon and may not work on Intel.
| Samples ported so far | Original sample | 
|---|---|
| Performing Calculations on a GPU | link | 
| Using Metal to Draw a View’s Contents | link | 
| Using a Render Pipeline to Render Primitives | link | 
| Synchronizing CPU and GPU Work | link | 
| Creating and Sampling Textures | link | 
| Calculating Primitive Visibility Using Depth Testing | link | 
| Customizing Render Pass Setup | link | 
| Encoding Indirect Command Buffers on the CPU | link | 
| Encoding Indirect Command Buffers on the GPU | link | 
| Managing groups of resources with argument buffers | link | 
| Adjusting the level of detail using Metal mesh shaders | link | 
| Accelerating ray tracing using Metal | link |