// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 48;
	objects = {

/* Begin PBXBuildFile section */
		A99789AF1CD3D4E2005E7DAC /* Hologram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789831CD3D4E2005E7DAC /* Hologram.cpp */; };
		A99789B01CD3D4E2005E7DAC /* Hologram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789831CD3D4E2005E7DAC /* Hologram.cpp */; };
		A99789B11CD3D4E2005E7DAC /* Hologram.frag in Resources */ = {isa = PBXBuildFile; fileRef = A99789841CD3D4E2005E7DAC /* Hologram.frag */; };
		A99789B21CD3D4E2005E7DAC /* Hologram.frag in Resources */ = {isa = PBXBuildFile; fileRef = A99789841CD3D4E2005E7DAC /* Hologram.frag */; };
		A99789B31CD3D4E2005E7DAC /* Hologram.push_constant.vert in Resources */ = {isa = PBXBuildFile; fileRef = A99789861CD3D4E2005E7DAC /* Hologram.push_constant.vert */; };
		A99789B41CD3D4E2005E7DAC /* Hologram.push_constant.vert in Resources */ = {isa = PBXBuildFile; fileRef = A99789861CD3D4E2005E7DAC /* Hologram.push_constant.vert */; };
		A99789B51CD3D4E2005E7DAC /* Hologram.vert in Resources */ = {isa = PBXBuildFile; fileRef = A99789871CD3D4E2005E7DAC /* Hologram.vert */; };
		A99789B61CD3D4E2005E7DAC /* Hologram.vert in Resources */ = {isa = PBXBuildFile; fileRef = A99789871CD3D4E2005E7DAC /* Hologram.vert */; };
		A99789B71CD3D4E2005E7DAC /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789881CD3D4E2005E7DAC /* Main.cpp */; };
		A99789B81CD3D4E2005E7DAC /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789881CD3D4E2005E7DAC /* Main.cpp */; };
		A99789B91CD3D4E2005E7DAC /* Meshes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789891CD3D4E2005E7DAC /* Meshes.cpp */; };
		A99789BA1CD3D4E2005E7DAC /* Meshes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789891CD3D4E2005E7DAC /* Meshes.cpp */; };
		A99789BD1CD3D4E2005E7DAC /* Shell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997898D1CD3D4E2005E7DAC /* Shell.cpp */; };
		A99789BE1CD3D4E2005E7DAC /* Shell.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A997898D1CD3D4E2005E7DAC /* Shell.cpp */; };
		A99789C51CD3D4E2005E7DAC /* Simulation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789951CD3D4E2005E7DAC /* Simulation.cpp */; };
		A99789C61CD3D4E2005E7DAC /* Simulation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789951CD3D4E2005E7DAC /* Simulation.cpp */; };
		A99789C91CD3D819005E7DAC /* ShellMVK.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789C71CD3D819005E7DAC /* ShellMVK.cpp */; };
		A99789CA1CD3D819005E7DAC /* ShellMVK.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789C71CD3D819005E7DAC /* ShellMVK.cpp */; };
		A9B67B781C3AAE9800373FFD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */; };
		A9B67B7A1C3AAE9800373FFD /* DemoViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6F1C3AAE9800373FFD /* DemoViewController.mm */; };
		A9B67B7C1C3AAE9800373FFD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B711C3AAE9800373FFD /* main.m */; };
		A9B67B7D1C3AAE9800373FFD /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B741C3AAE9800373FFD /* Default-568h@2x.png */; };
		A9B67B7E1C3AAE9800373FFD /* Default~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B751C3AAE9800373FFD /* Default~ipad.png */; };
		A9B67B7F1C3AAE9800373FFD /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B761C3AAE9800373FFD /* Icon.png */; };
		A9B67B801C3AAE9800373FFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B771C3AAE9800373FFD /* Main.storyboard */; };
		A9B67B8C1C3AAEA200373FFD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B831C3AAEA200373FFD /* AppDelegate.m */; };
		A9B67B8D1C3AAEA200373FFD /* DemoViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B851C3AAEA200373FFD /* DemoViewController.mm */; };
		A9B67B8F1C3AAEA200373FFD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B871C3AAEA200373FFD /* main.m */; };
		A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8A1C3AAEA200373FFD /* Main.storyboard */; };
		A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */; };
		A9C2AB99218503A400DDBC03 /* libMoltenVK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB97218503A400DDBC03 /* libMoltenVK.a */; };
		A9C2AB9A218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; };
		A9C2AB9D218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; };
		A9C2AB9E218503BA00DDBC03 /* libMoltenVK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */; };
		A9D516F81CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */; };
		A9D516F91CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		1D6058910D05DD3D006BFB54 /* Hologram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Hologram.app; sourceTree = BUILT_PRODUCTS_DIR; };
		A93CC3701CD56B8F00EB8A56 /* generate-dispatch-table */ = {isa = PBXFileReference; explicitFileType = text.script.python; path = "generate-dispatch-table"; sourceTree = "<group>"; };
		A93CC3711CD56FD600EB8A56 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
		A977BCFE1B66BB010067E5BF /* Hologram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Hologram.app; sourceTree = BUILT_PRODUCTS_DIR; };
		A997897F1CD3D4E2005E7DAC /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = "<group>"; };
		A99789821CD3D4E2005E7DAC /* Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Helpers.h; sourceTree = "<group>"; };
		A99789831CD3D4E2005E7DAC /* Hologram.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Hologram.cpp; sourceTree = "<group>"; };
		A99789841CD3D4E2005E7DAC /* Hologram.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = Hologram.frag; sourceTree = "<group>"; };
		A99789851CD3D4E2005E7DAC /* Hologram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hologram.h; sourceTree = "<group>"; };
		A99789861CD3D4E2005E7DAC /* Hologram.push_constant.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = Hologram.push_constant.vert; sourceTree = "<group>"; };
		A99789871CD3D4E2005E7DAC /* Hologram.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = Hologram.vert; sourceTree = "<group>"; };
		A99789881CD3D4E2005E7DAC /* Main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Main.cpp; sourceTree = "<group>"; };
		A99789891CD3D4E2005E7DAC /* Meshes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Meshes.cpp; sourceTree = "<group>"; };
		A997898A1CD3D4E2005E7DAC /* Meshes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Meshes.h; sourceTree = "<group>"; };
		A997898B1CD3D4E2005E7DAC /* Meshes.teapot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Meshes.teapot.h; sourceTree = "<group>"; };
		A997898D1CD3D4E2005E7DAC /* Shell.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Shell.cpp; sourceTree = "<group>"; };
		A997898E1CD3D4E2005E7DAC /* Shell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shell.h; sourceTree = "<group>"; };
		A99789951CD3D4E2005E7DAC /* Simulation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Simulation.cpp; sourceTree = "<group>"; };
		A99789961CD3D4E2005E7DAC /* Simulation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Simulation.h; sourceTree = "<group>"; };
		A99789C71CD3D819005E7DAC /* ShellMVK.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShellMVK.cpp; sourceTree = SOURCE_ROOT; };
		A99789C81CD3D819005E7DAC /* ShellMVK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShellMVK.h; sourceTree = SOURCE_ROOT; };
		A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		A9B67B6E1C3AAE9800373FFD /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = "<group>"; };
		A9B67B6F1C3AAE9800373FFD /* DemoViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DemoViewController.mm; sourceTree = "<group>"; };
		A9B67B701C3AAE9800373FFD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		A9B67B711C3AAE9800373FFD /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		A9B67B721C3AAE9800373FFD /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = "<group>"; };
		A9B67B741C3AAE9800373FFD /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
		A9B67B751C3AAE9800373FFD /* Default~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default~ipad.png"; sourceTree = "<group>"; };
		A9B67B761C3AAE9800373FFD /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
		A9B67B771C3AAE9800373FFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
		A9B67B821C3AAEA200373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		A9B67B831C3AAEA200373FFD /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		A9B67B841C3AAEA200373FFD /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = "<group>"; };
		A9B67B851C3AAEA200373FFD /* DemoViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DemoViewController.mm; sourceTree = "<group>"; };
		A9B67B861C3AAEA200373FFD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		A9B67B871C3AAEA200373FFD /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		A9B67B881C3AAEA200373FFD /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = "<group>"; };
		A9B67B8A1C3AAEA200373FFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
		A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = macOS.xcassets; sourceTree = "<group>"; };
		A9C2AB97218503A400DDBC03 /* libMoltenVK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMoltenVK.a; path = ../../../MoltenVK/iOS/static/libMoltenVK.a; sourceTree = "<group>"; };
		A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = "<group>"; };
		A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = "<group>"; };
		A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMoltenVK.a; path = ../../../MoltenVK/macOS/static/libMoltenVK.a; sourceTree = "<group>"; };
		A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HelpersDispatchTable.cpp; sourceTree = SOURCE_ROOT; };
		A9D516F71CD575E300097D96 /* HelpersDispatchTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpersDispatchTable.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9C2AB99218503A400DDBC03 /* libMoltenVK.a in Frameworks */,
				A9C2AB9A218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A977BCF11B66BB010067E5BF /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9C2AB9E218503BA00DDBC03 /* libMoltenVK.a in Frameworks */,
				A9C2AB9D218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		19C28FACFE9D520D11CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				1D6058910D05DD3D006BFB54 /* Hologram.app */,
				A977BCFE1B66BB010067E5BF /* Hologram.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
			isa = PBXGroup;
			children = (
				A99789681CD3D4E2005E7DAC /* Hologram */,
				A9B67B6A1C3AAE9800373FFD /* iOS */,
				A9B67B811C3AAEA200373FFD /* macOS */,
				19C28FACFE9D520D11CA2CBB /* Products */,
				A9C2AB96218503A400DDBC03 /* Frameworks */,
			);
			name = CustomTemplate;
			sourceTree = "<group>";
		};
		A99789681CD3D4E2005E7DAC /* Hologram */ = {
			isa = PBXGroup;
			children = (
				A9D516F51CD575B000097D96 /* Generated */,
				A93CC3711CD56FD600EB8A56 /* CMakeLists.txt */,
				A93CC3701CD56B8F00EB8A56 /* generate-dispatch-table */,
				A997897F1CD3D4E2005E7DAC /* Game.h */,
				A99789821CD3D4E2005E7DAC /* Helpers.h */,
				A99789831CD3D4E2005E7DAC /* Hologram.cpp */,
				A99789841CD3D4E2005E7DAC /* Hologram.frag */,
				A99789851CD3D4E2005E7DAC /* Hologram.h */,
				A99789861CD3D4E2005E7DAC /* Hologram.push_constant.vert */,
				A99789871CD3D4E2005E7DAC /* Hologram.vert */,
				A99789881CD3D4E2005E7DAC /* Main.cpp */,
				A99789891CD3D4E2005E7DAC /* Meshes.cpp */,
				A997898A1CD3D4E2005E7DAC /* Meshes.h */,
				A997898B1CD3D4E2005E7DAC /* Meshes.teapot.h */,
				A997898D1CD3D4E2005E7DAC /* Shell.cpp */,
				A997898E1CD3D4E2005E7DAC /* Shell.h */,
				A99789C71CD3D819005E7DAC /* ShellMVK.cpp */,
				A99789C81CD3D819005E7DAC /* ShellMVK.h */,
				A99789951CD3D4E2005E7DAC /* Simulation.cpp */,
				A99789961CD3D4E2005E7DAC /* Simulation.h */,
			);
			name = Hologram;
			path = "../VulkanSamples/Sample-Programs/Hologram";
			sourceTree = "<group>";
		};
		A9B67B6A1C3AAE9800373FFD /* iOS */ = {
			isa = PBXGroup;
			children = (
				A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */,
				A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */,
				A9B67B6E1C3AAE9800373FFD /* DemoViewController.h */,
				A9B67B6F1C3AAE9800373FFD /* DemoViewController.mm */,
				A9B67B701C3AAE9800373FFD /* Info.plist */,
				A9B67B711C3AAE9800373FFD /* main.m */,
				A9B67B721C3AAE9800373FFD /* Prefix.pch */,
				A9B67B731C3AAE9800373FFD /* Resources */,
			);
			path = iOS;
			sourceTree = "<group>";
		};
		A9B67B731C3AAE9800373FFD /* Resources */ = {
			isa = PBXGroup;
			children = (
				A9B67B741C3AAE9800373FFD /* Default-568h@2x.png */,
				A9B67B751C3AAE9800373FFD /* Default~ipad.png */,
				A9B67B761C3AAE9800373FFD /* Icon.png */,
				A9B67B771C3AAE9800373FFD /* Main.storyboard */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		A9B67B811C3AAEA200373FFD /* macOS */ = {
			isa = PBXGroup;
			children = (
				A9B67B821C3AAEA200373FFD /* AppDelegate.h */,
				A9B67B831C3AAEA200373FFD /* AppDelegate.m */,
				A9B67B841C3AAEA200373FFD /* DemoViewController.h */,
				A9B67B851C3AAEA200373FFD /* DemoViewController.mm */,
				A9B67B861C3AAEA200373FFD /* Info.plist */,
				A9B67B871C3AAEA200373FFD /* main.m */,
				A9B67B881C3AAEA200373FFD /* Prefix.pch */,
				A9B67B891C3AAEA200373FFD /* Resources */,
			);
			path = macOS;
			sourceTree = "<group>";
		};
		A9B67B891C3AAEA200373FFD /* Resources */ = {
			isa = PBXGroup;
			children = (
				A9B67B8A1C3AAEA200373FFD /* Main.storyboard */,
				A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		A9C2AB96218503A400DDBC03 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */,
				A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */,
				A9C2AB97218503A400DDBC03 /* libMoltenVK.a */,
				A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		A9D516F51CD575B000097D96 /* Generated */ = {
			isa = PBXGroup;
			children = (
				A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */,
				A9D516F71CD575E300097D96 /* HelpersDispatchTable.h */,
			);
			name = Generated;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1D6058900D05DD3D006BFB54 /* Hologram-iOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Hologram-iOS" */;
			buildPhases = (
				A99789D71CD41746005E7DAC /* ShellScript */,
				A9006C4A1CDAB49000C6BC7B /* ShellScript */,
				1D60588D0D05DD3D006BFB54 /* Resources */,
				1D60588E0D05DD3D006BFB54 /* Sources */,
				1D60588F0D05DD3D006BFB54 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Hologram-iOS";
			productName = foo;
			productReference = 1D6058910D05DD3D006BFB54 /* Hologram.app */;
			productType = "com.apple.product-type.application";
		};
		A977BCBD1B66BB010067E5BF /* Hologram-macOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A977BCFB1B66BB010067E5BF /* Build configuration list for PBXNativeTarget "Hologram-macOS" */;
			buildPhases = (
				A99789CD1CD3FFEB005E7DAC /* Run Script */,
				A9D516F41CD5752C00097D96 /* ShellScript */,
				A977BCBE1B66BB010067E5BF /* Resources */,
				A977BCC91B66BB010067E5BF /* Sources */,
				A977BCF11B66BB010067E5BF /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Hologram-macOS";
			productName = foo;
			productReference = A977BCFE1B66BB010067E5BF /* Hologram.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		29B97313FDCFA39411CA2CEA /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1010;
				TargetAttributes = {
					A977BCBD1B66BB010067E5BF = {
						DevelopmentTeam = VU3TCKU48B;
					};
				};
			};
			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Hologram" */;
			compatibilityVersion = "Xcode 8.0";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				1D6058900D05DD3D006BFB54 /* Hologram-iOS */,
				A977BCBD1B66BB010067E5BF /* Hologram-macOS */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		1D60588D0D05DD3D006BFB54 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A99789B51CD3D4E2005E7DAC /* Hologram.vert in Resources */,
				A9B67B7F1C3AAE9800373FFD /* Icon.png in Resources */,
				A99789B31CD3D4E2005E7DAC /* Hologram.push_constant.vert in Resources */,
				A9B67B801C3AAE9800373FFD /* Main.storyboard in Resources */,
				A9B67B7E1C3AAE9800373FFD /* Default~ipad.png in Resources */,
				A99789B11CD3D4E2005E7DAC /* Hologram.frag in Resources */,
				A9B67B7D1C3AAE9800373FFD /* Default-568h@2x.png in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A977BCBE1B66BB010067E5BF /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */,
				A99789B21CD3D4E2005E7DAC /* Hologram.frag in Resources */,
				A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */,
				A99789B41CD3D4E2005E7DAC /* Hologram.push_constant.vert in Resources */,
				A99789B61CD3D4E2005E7DAC /* Hologram.vert in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		A9006C4A1CDAB49000C6BC7B /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.cpp";
		};
		A99789CD1CD3FFEB005E7DAC /* Run Script */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"",
			);
			name = "Run Script";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.h";
		};
		A99789D71CD41746005E7DAC /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.h";
		};
		A9D516F41CD5752C00097D96 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.cpp\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1D60588E0D05DD3D006BFB54 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A99789B71CD3D4E2005E7DAC /* Main.cpp in Sources */,
				A9B67B7A1C3AAE9800373FFD /* DemoViewController.mm in Sources */,
				A99789AF1CD3D4E2005E7DAC /* Hologram.cpp in Sources */,
				A99789C51CD3D4E2005E7DAC /* Simulation.cpp in Sources */,
				A99789C91CD3D819005E7DAC /* ShellMVK.cpp in Sources */,
				A99789B91CD3D4E2005E7DAC /* Meshes.cpp in Sources */,
				A9B67B781C3AAE9800373FFD /* AppDelegate.m in Sources */,
				A9B67B7C1C3AAE9800373FFD /* main.m in Sources */,
				A9D516F81CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */,
				A99789BD1CD3D4E2005E7DAC /* Shell.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A977BCC91B66BB010067E5BF /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A99789B81CD3D4E2005E7DAC /* Main.cpp in Sources */,
				A9B67B8C1C3AAEA200373FFD /* AppDelegate.m in Sources */,
				A99789B01CD3D4E2005E7DAC /* Hologram.cpp in Sources */,
				A99789C61CD3D4E2005E7DAC /* Simulation.cpp in Sources */,
				A99789CA1CD3D819005E7DAC /* ShellMVK.cpp in Sources */,
				A99789BA1CD3D4E2005E7DAC /* Meshes.cpp in Sources */,
				A9B67B8F1C3AAEA200373FFD /* main.m in Sources */,
				A9B67B8D1C3AAEA200373FFD /* DemoViewController.mm in Sources */,
				A9D516F91CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */,
				A99789BE1CD3D4E2005E7DAC /* Shell.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1D6058940D05DD3E006BFB54 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "iPhone Developer";
				DEVELOPMENT_TEAM = "";
				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"";
				GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
				INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\"";
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Debug;
		};
		1D6058950D05DD3E006BFB54 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "iPhone Developer";
				DEVELOPMENT_TEAM = "";
				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"";
				GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
				INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\"";
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Release;
		};
		A977BCFC1B66BB010067E5BF /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				COMBINE_HIDPI_IMAGES = YES;
				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"";
				GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
				INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/static\"";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		A977BCFD1B66BB010067E5BF /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				COMBINE_HIDPI_IMAGES = YES;
				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"";
				GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
				INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/static\"";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				SDKROOT = macosx;
			};
			name = Release;
		};
		C01FCF4F08A954540054247B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = NO;
				COPY_PHASE_STRIP = NO;
				ENABLE_BITCODE = NO;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					_DEBUG,
					GLM_FORCE_RADIANS,
					MVK_USE_MOLTENVK_SHADER_CONVERTER,
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				HEADER_SEARCH_PATHS = (
					"\"$(SRCROOT)/../../../MoltenVK/include\"",
					"\"$(SRCROOT)/../VulkanSamples/API-Samples/utils\"",
					"\"$(SRCROOT)/../../../MoltenVKShaderConverter\"",
				);
				ONLY_ACTIVE_ARCH = YES;
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.${PRODUCT_NAME:identifier}";
				PRODUCT_NAME = Hologram;
			};
			name = Debug;
		};
		C01FCF5008A954540054247B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = NO;
				ENABLE_BITCODE = NO;
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					GLM_FORCE_RADIANS,
					MVK_USE_MOLTENVK_SHADER_CONVERTER,
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				HEADER_SEARCH_PATHS = (
					"\"$(SRCROOT)/../../../MoltenVK/include\"",
					"\"$(SRCROOT)/../VulkanSamples/API-Samples/utils\"",
					"\"$(SRCROOT)/../../../MoltenVKShaderConverter\"",
				);
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.${PRODUCT_NAME:identifier}";
				PRODUCT_NAME = Hologram;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Hologram-iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1D6058940D05DD3E006BFB54 /* Debug */,
				1D6058950D05DD3E006BFB54 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A977BCFB1B66BB010067E5BF /* Build configuration list for PBXNativeTarget "Hologram-macOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A977BCFC1B66BB010067E5BF /* Debug */,
				A977BCFD1B66BB010067E5BF /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Hologram" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C01FCF4F08A954540054247B /* Debug */,
				C01FCF5008A954540054247B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}
