diff --git a/.gitignore b/.gitignore index 482fc67c..021869d3 100644 --- a/.gitignore +++ b/.gitignore @@ -287,3 +287,6 @@ DerivedData/ ## Gcc Patch /*.gcno + +# vscode +/**/.vscode/ 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; 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, 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, 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, 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, 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; 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.