From 605e370277df7ad11ee96ddc681ef54d3641e66c Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Thu, 13 Jun 2024 11:54:53 -0700 Subject: [PATCH 1/8] Fix build on Xcode 16 beta --- .../projects/final/GPUDriven/GPUDriven/Shaders/Common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/26-gpu-driven-rendering/projects/final/GPUDriven/GPUDriven/Shaders/Common.h b/26-gpu-driven-rendering/projects/final/GPUDriven/GPUDriven/Shaders/Common.h index 52f9b407..6c9c6fb8 100644 --- a/26-gpu-driven-rendering/projects/final/GPUDriven/GPUDriven/Shaders/Common.h +++ b/26-gpu-driven-rendering/projects/final/GPUDriven/GPUDriven/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; From 17c200776a31763cfa8bcbe6cb1611a513f76593 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Fri, 27 Sep 2024 14:41:48 -0700 Subject: [PATCH 2/8] update README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a38aaae7..83ef967a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Metal by Tutorials: Materials +NOTE: Some samples have been modified to compile with XCode 16. + + This repo contains all the downloadable materials and projects associated with the **[Metal by Tutorials](https://www.kodeco.com/books/metal-by-tutorials)** from [Kodeco](https://www.kodeco.com). Each edition has its own branch, named `editions/[EDITION]`. The default branch for this repo is for the most recent edition. From 625612ec80745d3cfe1026e41669a1fcbe378ea4 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Fri, 27 Sep 2024 17:11:22 -0700 Subject: [PATCH 3/8] ch-11: fix build errors --- .../projects/challenge/Materials/Materials/Shaders/Common.h | 6 +++++- .../challenge/Materials/Materials/Shaders/Lighting.metal | 2 +- .../challenge/Materials/Materials/Utility/DebugLights.swift | 2 +- .../projects/final/Materials/Materials/Shaders/Common.h | 6 +++++- .../final/Materials/Materials/Shaders/Lighting.metal | 2 +- .../final/Materials/Materials/Utility/DebugLights.swift | 2 +- 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Common.h b/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Common.h index adbf98b2..99b41f72 100644 --- a/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Common.h +++ b/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; @@ -81,7 +85,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Lighting.metal b/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Lighting.metal index 1e3aa27b..fbe01d30 100644 --- a/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Lighting.metal +++ b/11-maps-and-materials/projects/challenge/Materials/Materials/Shaders/Lighting.metal @@ -68,7 +68,7 @@ float3 phongLighting( } break; } - case Point: { + case Point_: { float d = distance(light.position, position); float3 lightDirection = normalize(light.position - position); float attenuation = 1.0 / (light.attenuation.x + diff --git a/11-maps-and-materials/projects/challenge/Materials/Materials/Utility/DebugLights.swift b/11-maps-and-materials/projects/challenge/Materials/Materials/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/11-maps-and-materials/projects/challenge/Materials/Materials/Utility/DebugLights.swift +++ b/11-maps-and-materials/projects/challenge/Materials/Materials/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms, diff --git a/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Common.h b/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Common.h index adbf98b2..99b41f72 100644 --- a/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Common.h +++ b/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; @@ -81,7 +85,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Lighting.metal b/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Lighting.metal index 1e3aa27b..fbe01d30 100644 --- a/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Lighting.metal +++ b/11-maps-and-materials/projects/final/Materials/Materials/Shaders/Lighting.metal @@ -68,7 +68,7 @@ float3 phongLighting( } break; } - case Point: { + case Point_: { float d = distance(light.position, position); float3 lightDirection = normalize(light.position - position); float attenuation = 1.0 / (light.attenuation.x + diff --git a/11-maps-and-materials/projects/final/Materials/Materials/Utility/DebugLights.swift b/11-maps-and-materials/projects/final/Materials/Materials/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/11-maps-and-materials/projects/final/Materials/Materials/Utility/DebugLights.swift +++ b/11-maps-and-materials/projects/final/Materials/Materials/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms, From 05ce6aa2e6a6e1cf20413e14a4fe0853efc2e761 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Fri, 6 Sep 2024 16:20:14 -0700 Subject: [PATCH 4/8] Fix ch-7 build on xcode 16 --- .../projects/final/Fragment/Fragment/Shaders/Common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/07-the-fragment-function/projects/final/Fragment/Fragment/Shaders/Common.h b/07-the-fragment-function/projects/final/Fragment/Fragment/Shaders/Common.h index 2b61bb34..9cad56b2 100644 --- a/07-the-fragment-function/projects/final/Fragment/Fragment/Shaders/Common.h +++ b/07-the-fragment-function/projects/final/Fragment/Fragment/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; From b881242bf2a2cf81baa84c9ee11f38ebe3d1f2a1 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Fri, 4 Oct 2024 16:46:59 -0700 Subject: [PATCH 5/8] gitignore vscode --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 482fc67c..021869d3 100644 --- a/.gitignore +++ b/.gitignore @@ -287,3 +287,6 @@ DerivedData/ ## Gcc Patch /*.gcno + +# vscode +/**/.vscode/ From 0cf30b8cbf4101ffa088766d4e0b21e36dac1615 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Tue, 8 Oct 2024 16:36:52 -0700 Subject: [PATCH 6/8] Fix build errors with xcode 16 in ch 12 --- .../final/RenderPasses/RenderPasses/Shaders/Common.h | 6 +++++- .../RenderPasses/RenderPasses/Utility/DebugLights.swift | 2 +- .../starter/RenderPasses/RenderPasses/Shaders/Common.h | 6 +++++- .../RenderPasses/RenderPasses/Utility/DebugLights.swift | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/12-render-passes/projects/final/RenderPasses/RenderPasses/Shaders/Common.h b/12-render-passes/projects/final/RenderPasses/RenderPasses/Shaders/Common.h index 7b9a3325..2ace7b1f 100644 --- a/12-render-passes/projects/final/RenderPasses/RenderPasses/Shaders/Common.h +++ b/12-render-passes/projects/final/RenderPasses/RenderPasses/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; @@ -85,7 +89,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/12-render-passes/projects/final/RenderPasses/RenderPasses/Utility/DebugLights.swift b/12-render-passes/projects/final/RenderPasses/RenderPasses/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/12-render-passes/projects/final/RenderPasses/RenderPasses/Utility/DebugLights.swift +++ b/12-render-passes/projects/final/RenderPasses/RenderPasses/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms, diff --git a/12-render-passes/projects/starter/RenderPasses/RenderPasses/Shaders/Common.h b/12-render-passes/projects/starter/RenderPasses/RenderPasses/Shaders/Common.h index 7b9a3325..2ace7b1f 100644 --- a/12-render-passes/projects/starter/RenderPasses/RenderPasses/Shaders/Common.h +++ b/12-render-passes/projects/starter/RenderPasses/RenderPasses/Shaders/Common.h @@ -35,6 +35,10 @@ #import +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { matrix_float4x4 modelMatrix; matrix_float4x4 viewMatrix; @@ -85,7 +89,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/12-render-passes/projects/starter/RenderPasses/RenderPasses/Utility/DebugLights.swift b/12-render-passes/projects/starter/RenderPasses/RenderPasses/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/12-render-passes/projects/starter/RenderPasses/RenderPasses/Utility/DebugLights.swift +++ b/12-render-passes/projects/starter/RenderPasses/RenderPasses/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms, From 88a90d0c0f3dd317e2ae0a5d5d77ce331056c3d6 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Wed, 16 Oct 2024 17:29:20 -0700 Subject: [PATCH 7/8] fix build errors in ch 13 --- 13-shadows/projects/final/Shadows/Shadows/Shaders/Common.h | 6 +++++- .../final/Shadows/Shadows/Utility/DebugLights.swift | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/13-shadows/projects/final/Shadows/Shadows/Shaders/Common.h b/13-shadows/projects/final/Shadows/Shadows/Shaders/Common.h index 68bcd0ec..abb6ada8 100644 --- a/13-shadows/projects/final/Shadows/Shadows/Shaders/Common.h +++ b/13-shadows/projects/final/Shadows/Shadows/Shaders/Common.h @@ -44,6 +44,10 @@ typedef struct { matrix_float4x4 shadowViewMatrix; } Uniforms; +#ifndef __METAL_VERSION__ +#import +#endif + typedef struct { uint width; uint height; @@ -85,7 +89,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/13-shadows/projects/final/Shadows/Shadows/Utility/DebugLights.swift b/13-shadows/projects/final/Shadows/Shadows/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/13-shadows/projects/final/Shadows/Shadows/Utility/DebugLights.swift +++ b/13-shadows/projects/final/Shadows/Shadows/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms, From 4223b20ad32cfeff33fec851bbd855d85e9ff356 Mon Sep 17 00:00:00 2001 From: Nitin Gupta Date: Wed, 16 Oct 2024 17:33:30 -0700 Subject: [PATCH 8/8] fix build errors in ch 14 --- .../final/Deferred/Deferred/Game/SceneLighting.swift | 2 +- .../projects/final/Deferred/Deferred/Shaders/Common.h | 6 +++++- .../projects/final/Deferred/Deferred/Shaders/Diffuse.metal | 2 +- .../final/Deferred/Deferred/Utility/DebugLights.swift | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/14-deferred-rendering/projects/final/Deferred/Deferred/Game/SceneLighting.swift b/14-deferred-rendering/projects/final/Deferred/Deferred/Game/SceneLighting.swift index 6a6ecde4..313e0bae 100644 --- a/14-deferred-rendering/projects/final/Deferred/Deferred/Game/SceneLighting.swift +++ b/14-deferred-rendering/projects/final/Deferred/Deferred/Game/SceneLighting.swift @@ -93,7 +93,7 @@ struct SceneLighting { var lights: [Light] = [] for _ in 0.. +#endif + typedef struct { uint width; uint height; @@ -86,7 +90,7 @@ typedef enum { unused = 0, Sun = 1, Spot = 2, - Point = 3, + Point_ = 3, Ambient = 4 } LightType; diff --git a/14-deferred-rendering/projects/final/Deferred/Deferred/Shaders/Diffuse.metal b/14-deferred-rendering/projects/final/Deferred/Deferred/Shaders/Diffuse.metal index 50c1b884..3725da7d 100644 --- a/14-deferred-rendering/projects/final/Deferred/Deferred/Shaders/Diffuse.metal +++ b/14-deferred-rendering/projects/final/Deferred/Deferred/Shaders/Diffuse.metal @@ -49,7 +49,7 @@ float3 computeDiffuse( diffuseTotal += calculateSun(light, normal, params, material); break; } - case Point: { + case Point_: { diffuseTotal += calculatePoint(light, fragmentWorldPosition, normal, material); break; } diff --git a/14-deferred-rendering/projects/final/Deferred/Deferred/Utility/DebugLights.swift b/14-deferred-rendering/projects/final/Deferred/Deferred/Utility/DebugLights.swift index c384b340..08592d74 100644 --- a/14-deferred-rendering/projects/final/Deferred/Deferred/Utility/DebugLights.swift +++ b/14-deferred-rendering/projects/final/Deferred/Deferred/Utility/DebugLights.swift @@ -75,7 +75,7 @@ enum DebugLights { encoder.label = "Debug lights" for light in lights { switch light.type { - case Point: + case Point_: debugDrawPoint( encoder: encoder, uniforms: uniforms,