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 |