Remove LunarG/VulkanSamples as a dependency library.

LunarG is planning to retire the LunarG/VulkanSamples repository.
Remove dependency to it, and remove the affected Hologram and API-Samples demo apps.
Update documents, including directing developers to the
KhronosGroup/Vulkan-Samples repository for official demo apps.
This commit is contained in:
Bill Hollings 2021-03-03 16:43:11 -05:00
parent f28ab1c127
commit 5648258da7
111 changed files with 33 additions and 3784 deletions

View File

@ -38,7 +38,7 @@
A93DBF4B24A2A4D500079F64 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; };
A94D4CB424A2A95E009C9139 /* InfoTV.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = InfoTV.plist; sourceTree = "<group>"; };
A94D4CB624A2C9A3009C9139 /* MainTV.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainTV.storyboard; sourceTree = "<group>"; };
A991E27524FD543A00D968D4 /* MoltenVK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MoltenVK.xcframework; path = ../../../MoltenVK/MoltenVK.xcframework; sourceTree = "<group>"; };
A991E27524FD543A00D968D4 /* MoltenVK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MoltenVK.xcframework; path = ../../MoltenVK/MoltenVK.xcframework; sourceTree = "<group>"; };
A9B53B271C3AC0BE00ABC6F6 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; };
A9B53B431C3AC15200ABC6F6 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; };
A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
@ -479,7 +479,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../../../MoltenVK/include\"",
"\"$(SRCROOT)/../../MoltenVK/include\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -506,7 +506,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../../../MoltenVK/include\"",
"\"$(SRCROOT)/../../MoltenVK/include\"",
);
OTHER_LDFLAGS = (
"-ObjC",

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -4,17 +4,7 @@
<FileRef
location = "group:README.md">
</FileRef>
<Group
location = "container:"
name = "LunarG-VulkanSamples">
<FileRef
location = "group:LunarG-VulkanSamples/Cube/Cube.xcodeproj">
</FileRef>
<FileRef
location = "group:LunarG-VulkanSamples/Hologram/Hologram.xcodeproj">
</FileRef>
<FileRef
location = "group:LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj">
</FileRef>
</Group>
<FileRef
location = "group:Cube/Cube.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>

View File

@ -1,812 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
A95C050B1C98FC1100CC653D /* blue.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05021C98FC1100CC653D /* blue.ppm */; };
A95C050C1C98FC1100CC653D /* blue.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05021C98FC1100CC653D /* blue.ppm */; };
A95C050D1C98FC1100CC653D /* green.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05041C98FC1100CC653D /* green.ppm */; };
A95C050E1C98FC1100CC653D /* green.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05041C98FC1100CC653D /* green.ppm */; };
A95C050F1C98FC1100CC653D /* logo-256x256-solid.png in Resources */ = {isa = PBXBuildFile; fileRef = A95C05051C98FC1100CC653D /* logo-256x256-solid.png */; };
A95C05101C98FC1100CC653D /* logo-256x256-solid.png in Resources */ = {isa = PBXBuildFile; fileRef = A95C05051C98FC1100CC653D /* logo-256x256-solid.png */; };
A95C05111C98FC1100CC653D /* logo-256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = A95C05061C98FC1100CC653D /* logo-256x256.png */; };
A95C05121C98FC1100CC653D /* logo-256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = A95C05061C98FC1100CC653D /* logo-256x256.png */; };
A95C05131C98FC1100CC653D /* lunarg.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05071C98FC1100CC653D /* lunarg.ppm */; };
A95C05141C98FC1100CC653D /* lunarg.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05071C98FC1100CC653D /* lunarg.ppm */; };
A95C05151C98FC1100CC653D /* red.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05081C98FC1100CC653D /* red.ppm */; };
A95C05161C98FC1100CC653D /* red.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05081C98FC1100CC653D /* red.ppm */; };
A95C05171C98FC1100CC653D /* spotlight.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05091C98FC1100CC653D /* spotlight.ppm */; };
A95C05181C98FC1100CC653D /* spotlight.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C05091C98FC1100CC653D /* spotlight.ppm */; };
A95C05191C98FC1100CC653D /* yellow.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C050A1C98FC1100CC653D /* yellow.ppm */; };
A95C051A1C98FC1100CC653D /* yellow.ppm in Resources */ = {isa = PBXBuildFile; fileRef = A95C050A1C98FC1100CC653D /* yellow.ppm */; };
A964BD3D1E4EA6FC00CA9AF1 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC611E4EA6FC00CA9AF1 /* util.cpp */; };
A964BD3E1E4EA6FC00CA9AF1 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC611E4EA6FC00CA9AF1 /* util.cpp */; };
A964BD3F1E4EA6FC00CA9AF1 /* util_init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */; };
A964BD401E4EA6FC00CA9AF1 /* util_init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */; };
A991E26924FCA59600D968D4 /* MoltenVK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A991E26824FCA59600D968D4 /* MoltenVK.xcframework */; };
A991E26A24FCA59600D968D4 /* MoltenVK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A991E26824FCA59600D968D4 /* MoltenVK.xcframework */; };
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 */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
1D6058910D05DD3D006BFB54 /* API-Samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "API-Samples.app"; sourceTree = BUILT_PRODUCTS_DIR; };
A92F37071C7E1B2B008F8BC9 /* Samples.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Samples.h; sourceTree = "<group>"; };
A95C05021C98FC1100CC653D /* blue.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = blue.ppm; sourceTree = "<group>"; };
A95C05031C98FC1100CC653D /* cube_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cube_data.h; sourceTree = "<group>"; };
A95C05041C98FC1100CC653D /* green.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = green.ppm; sourceTree = "<group>"; };
A95C05051C98FC1100CC653D /* logo-256x256-solid.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo-256x256-solid.png"; sourceTree = "<group>"; };
A95C05061C98FC1100CC653D /* logo-256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo-256x256.png"; sourceTree = "<group>"; };
A95C05071C98FC1100CC653D /* lunarg.ppm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = lunarg.ppm; sourceTree = "<group>"; };
A95C05081C98FC1100CC653D /* red.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = red.ppm; sourceTree = "<group>"; };
A95C05091C98FC1100CC653D /* spotlight.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = spotlight.ppm; sourceTree = "<group>"; };
A95C050A1C98FC1100CC653D /* yellow.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = yellow.ppm; sourceTree = "<group>"; };
A964BAF11E4E95E500CA9AF1 /* copy_blit_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_blit_image.cpp; sourceTree = "<group>"; };
A964BAF51E4E968F00CA9AF1 /* 15-draw_cube.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "15-draw_cube.cpp"; sourceTree = "<group>"; };
A964BAF91E4E96B400CA9AF1 /* draw_subpasses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = draw_subpasses.cpp; sourceTree = "<group>"; };
A964BAFD1E4E976C00CA9AF1 /* draw_textured_cube.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = draw_textured_cube.cpp; sourceTree = "<group>"; };
A964BAFF1E4E976C00CA9AF1 /* dynamic_uniform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dynamic_uniform.cpp; sourceTree = "<group>"; };
A964BB011E4E976C00CA9AF1 /* enable_validation_with_callback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enable_validation_with_callback.cpp; sourceTree = "<group>"; };
A964BB031E4E976C00CA9AF1 /* enumerate_devices_adv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = enumerate_devices_adv.cpp; sourceTree = "<group>"; };
A964BB051E4E976C00CA9AF1 /* events.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = events.cpp; sourceTree = "<group>"; };
A964BB071E4E976C00CA9AF1 /* immutable_sampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = immutable_sampler.cpp; sourceTree = "<group>"; };
A964BB091E4E976C00CA9AF1 /* init_texture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = init_texture.cpp; sourceTree = "<group>"; };
A964BB0B1E4E976C00CA9AF1 /* input_attachment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = input_attachment.cpp; sourceTree = "<group>"; };
A964BB0D1E4E976C00CA9AF1 /* instance_extension_properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instance_extension_properties.cpp; sourceTree = "<group>"; };
A964BB0F1E4E976C00CA9AF1 /* instance_layer_extension_properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instance_layer_extension_properties.cpp; sourceTree = "<group>"; };
A964BB111E4E976C00CA9AF1 /* instance_layer_properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = instance_layer_properties.cpp; sourceTree = "<group>"; };
A964BB131E4E976C00CA9AF1 /* memory_barriers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memory_barriers.cpp; sourceTree = "<group>"; };
A964BB151E4E976C00CA9AF1 /* multiple_sets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multiple_sets.cpp; sourceTree = "<group>"; };
A964BB171E4E976C00CA9AF1 /* multithreaded_command_buffers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multithreaded_command_buffers.cpp; sourceTree = "<group>"; };
A964BB191E4E976C00CA9AF1 /* occlusion_query.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = occlusion_query.cpp; sourceTree = "<group>"; };
A964BB1B1E4E976C00CA9AF1 /* pipeline_cache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pipeline_cache.cpp; sourceTree = "<group>"; };
A964BB1D1E4E976C00CA9AF1 /* pipeline_derivative.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pipeline_derivative.cpp; sourceTree = "<group>"; };
A964BB1F1E4E976C00CA9AF1 /* push_constants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = push_constants.cpp; sourceTree = "<group>"; };
A964BB211E4E976C00CA9AF1 /* secondary_command_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = secondary_command_buffer.cpp; sourceTree = "<group>"; };
A964BB231E4E976C00CA9AF1 /* separate_image_sampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = separate_image_sampler.cpp; sourceTree = "<group>"; };
A964BB251E4E976C00CA9AF1 /* spirv_assembly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_assembly.cpp; sourceTree = "<group>"; };
A964BB271E4E976C00CA9AF1 /* spirv_specialization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spirv_specialization.cpp; sourceTree = "<group>"; };
A964BB291E4E976C00CA9AF1 /* template.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = template.cpp; sourceTree = "<group>"; };
A964BB2B1E4E976C00CA9AF1 /* texel_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = texel_buffer.cpp; sourceTree = "<group>"; };
A964BC601E4EA6FC00CA9AF1 /* samples_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = samples_platform.h; sourceTree = "<group>"; };
A964BC611E4EA6FC00CA9AF1 /* util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = util.cpp; sourceTree = "<group>"; };
A964BC621E4EA6FC00CA9AF1 /* util.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = util.hpp; sourceTree = "<group>"; };
A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = util_init.cpp; sourceTree = "<group>"; };
A964BC641E4EA6FC00CA9AF1 /* util_init.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = util_init.hpp; sourceTree = "<group>"; };
A977BCFE1B66BB010067E5BF /* API-Samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "API-Samples.app"; sourceTree = BUILT_PRODUCTS_DIR; };
A991E26824FCA59600D968D4 /* MoltenVK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MoltenVK.xcframework; path = ../../../MoltenVK/MoltenVK.xcframework; sourceTree = "<group>"; };
A99B2F0D24436190001117F7 /* generateSPIRVShaders */ = {isa = PBXFileReference; lastKnownFileType = text; path = generateSPIRVShaders; sourceTree = "<group>"; };
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>"; };
A9B735072576E0D900455E2A /* API-Samples.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "API-Samples.entitlements"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A991E26924FCA59600D968D4 /* MoltenVK.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A977BCF11B66BB010067E5BF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A991E26A24FCA59600D968D4 /* MoltenVK.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
1D6058910D05DD3D006BFB54 /* API-Samples.app */,
A977BCFE1B66BB010067E5BF /* API-Samples.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
isa = PBXGroup;
children = (
A9B735072576E0D900455E2A /* API-Samples.entitlements */,
A92F37071C7E1B2B008F8BC9 /* Samples.h */,
A99B2F0D24436190001117F7 /* generateSPIRVShaders */,
A95C03971C98FBED00CC653D /* API-Samples */,
A9B67B6A1C3AAE9800373FFD /* iOS */,
A9B67B811C3AAEA200373FFD /* macOS */,
19C28FACFE9D520D11CA2CBB /* Products */,
A9C2AB9F218505B000DDBC03 /* Frameworks */,
);
name = CustomTemplate;
sourceTree = "<group>";
};
A95C03971C98FBED00CC653D /* API-Samples */ = {
isa = PBXGroup;
children = (
A964BAF01E4E95E500CA9AF1 /* copy_blit_image */,
A95C05011C98FC1100CC653D /* data */,
A964BAF41E4E968F00CA9AF1 /* 15-draw_cube */,
A964BAF81E4E96B400CA9AF1 /* draw_subpasses */,
A964BAFC1E4E976C00CA9AF1 /* draw_textured_cube */,
A964BAFE1E4E976C00CA9AF1 /* dynamic_uniform */,
A964BB001E4E976C00CA9AF1 /* enable_validation_with_callback */,
A964BB021E4E976C00CA9AF1 /* enumerate_devices_adv */,
A964BB041E4E976C00CA9AF1 /* events */,
A964BB061E4E976C00CA9AF1 /* immutable_sampler */,
A964BB081E4E976C00CA9AF1 /* init_texture */,
A964BB0A1E4E976C00CA9AF1 /* input_attachment */,
A964BB0C1E4E976C00CA9AF1 /* instance_extension_properties */,
A964BB0E1E4E976C00CA9AF1 /* instance_layer_extension_properties */,
A964BB101E4E976C00CA9AF1 /* instance_layer_properties */,
A964BB121E4E976C00CA9AF1 /* memory_barriers */,
A964BB141E4E976C00CA9AF1 /* multiple_sets */,
A964BB161E4E976C00CA9AF1 /* multithreaded_command_buffers */,
A964BB181E4E976C00CA9AF1 /* occlusion_query */,
A964BB1A1E4E976C00CA9AF1 /* pipeline_cache */,
A964BB1C1E4E976C00CA9AF1 /* pipeline_derivative */,
A964BB1E1E4E976C00CA9AF1 /* push_constants */,
A964BB201E4E976C00CA9AF1 /* secondary_command_buffer */,
A964BB221E4E976C00CA9AF1 /* separate_image_sampler */,
A964BB241E4E976C00CA9AF1 /* spirv_assembly */,
A964BB261E4E976C00CA9AF1 /* spirv_specialization */,
A964BB281E4E976C00CA9AF1 /* template */,
A964BB2A1E4E976C00CA9AF1 /* texel_buffer */,
A964BB5C1E4EA6FB00CA9AF1 /* utils */,
);
name = "API-Samples";
path = "../VulkanSamples/API-Samples";
sourceTree = "<group>";
};
A95C05011C98FC1100CC653D /* data */ = {
isa = PBXGroup;
children = (
A95C05021C98FC1100CC653D /* blue.ppm */,
A95C05031C98FC1100CC653D /* cube_data.h */,
A95C05041C98FC1100CC653D /* green.ppm */,
A95C05051C98FC1100CC653D /* logo-256x256-solid.png */,
A95C05061C98FC1100CC653D /* logo-256x256.png */,
A95C05071C98FC1100CC653D /* lunarg.ppm */,
A95C05081C98FC1100CC653D /* red.ppm */,
A95C05091C98FC1100CC653D /* spotlight.ppm */,
A95C050A1C98FC1100CC653D /* yellow.ppm */,
);
path = data;
sourceTree = "<group>";
};
A964BAF01E4E95E500CA9AF1 /* copy_blit_image */ = {
isa = PBXGroup;
children = (
A964BAF11E4E95E500CA9AF1 /* copy_blit_image.cpp */,
);
path = copy_blit_image;
sourceTree = "<group>";
};
A964BAF41E4E968F00CA9AF1 /* 15-draw_cube */ = {
isa = PBXGroup;
children = (
A964BAF51E4E968F00CA9AF1 /* 15-draw_cube.cpp */,
);
path = "15-draw_cube";
sourceTree = "<group>";
};
A964BAF81E4E96B400CA9AF1 /* draw_subpasses */ = {
isa = PBXGroup;
children = (
A964BAF91E4E96B400CA9AF1 /* draw_subpasses.cpp */,
);
path = draw_subpasses;
sourceTree = "<group>";
};
A964BAFC1E4E976C00CA9AF1 /* draw_textured_cube */ = {
isa = PBXGroup;
children = (
A964BAFD1E4E976C00CA9AF1 /* draw_textured_cube.cpp */,
);
path = draw_textured_cube;
sourceTree = "<group>";
};
A964BAFE1E4E976C00CA9AF1 /* dynamic_uniform */ = {
isa = PBXGroup;
children = (
A964BAFF1E4E976C00CA9AF1 /* dynamic_uniform.cpp */,
);
path = dynamic_uniform;
sourceTree = "<group>";
};
A964BB001E4E976C00CA9AF1 /* enable_validation_with_callback */ = {
isa = PBXGroup;
children = (
A964BB011E4E976C00CA9AF1 /* enable_validation_with_callback.cpp */,
);
path = enable_validation_with_callback;
sourceTree = "<group>";
};
A964BB021E4E976C00CA9AF1 /* enumerate_devices_adv */ = {
isa = PBXGroup;
children = (
A964BB031E4E976C00CA9AF1 /* enumerate_devices_adv.cpp */,
);
path = enumerate_devices_adv;
sourceTree = "<group>";
};
A964BB041E4E976C00CA9AF1 /* events */ = {
isa = PBXGroup;
children = (
A964BB051E4E976C00CA9AF1 /* events.cpp */,
);
path = events;
sourceTree = "<group>";
};
A964BB061E4E976C00CA9AF1 /* immutable_sampler */ = {
isa = PBXGroup;
children = (
A964BB071E4E976C00CA9AF1 /* immutable_sampler.cpp */,
);
path = immutable_sampler;
sourceTree = "<group>";
};
A964BB081E4E976C00CA9AF1 /* init_texture */ = {
isa = PBXGroup;
children = (
A964BB091E4E976C00CA9AF1 /* init_texture.cpp */,
);
path = init_texture;
sourceTree = "<group>";
};
A964BB0A1E4E976C00CA9AF1 /* input_attachment */ = {
isa = PBXGroup;
children = (
A964BB0B1E4E976C00CA9AF1 /* input_attachment.cpp */,
);
path = input_attachment;
sourceTree = "<group>";
};
A964BB0C1E4E976C00CA9AF1 /* instance_extension_properties */ = {
isa = PBXGroup;
children = (
A964BB0D1E4E976C00CA9AF1 /* instance_extension_properties.cpp */,
);
path = instance_extension_properties;
sourceTree = "<group>";
};
A964BB0E1E4E976C00CA9AF1 /* instance_layer_extension_properties */ = {
isa = PBXGroup;
children = (
A964BB0F1E4E976C00CA9AF1 /* instance_layer_extension_properties.cpp */,
);
path = instance_layer_extension_properties;
sourceTree = "<group>";
};
A964BB101E4E976C00CA9AF1 /* instance_layer_properties */ = {
isa = PBXGroup;
children = (
A964BB111E4E976C00CA9AF1 /* instance_layer_properties.cpp */,
);
path = instance_layer_properties;
sourceTree = "<group>";
};
A964BB121E4E976C00CA9AF1 /* memory_barriers */ = {
isa = PBXGroup;
children = (
A964BB131E4E976C00CA9AF1 /* memory_barriers.cpp */,
);
path = memory_barriers;
sourceTree = "<group>";
};
A964BB141E4E976C00CA9AF1 /* multiple_sets */ = {
isa = PBXGroup;
children = (
A964BB151E4E976C00CA9AF1 /* multiple_sets.cpp */,
);
path = multiple_sets;
sourceTree = "<group>";
};
A964BB161E4E976C00CA9AF1 /* multithreaded_command_buffers */ = {
isa = PBXGroup;
children = (
A964BB171E4E976C00CA9AF1 /* multithreaded_command_buffers.cpp */,
);
path = multithreaded_command_buffers;
sourceTree = "<group>";
};
A964BB181E4E976C00CA9AF1 /* occlusion_query */ = {
isa = PBXGroup;
children = (
A964BB191E4E976C00CA9AF1 /* occlusion_query.cpp */,
);
path = occlusion_query;
sourceTree = "<group>";
};
A964BB1A1E4E976C00CA9AF1 /* pipeline_cache */ = {
isa = PBXGroup;
children = (
A964BB1B1E4E976C00CA9AF1 /* pipeline_cache.cpp */,
);
path = pipeline_cache;
sourceTree = "<group>";
};
A964BB1C1E4E976C00CA9AF1 /* pipeline_derivative */ = {
isa = PBXGroup;
children = (
A964BB1D1E4E976C00CA9AF1 /* pipeline_derivative.cpp */,
);
path = pipeline_derivative;
sourceTree = "<group>";
};
A964BB1E1E4E976C00CA9AF1 /* push_constants */ = {
isa = PBXGroup;
children = (
A964BB1F1E4E976C00CA9AF1 /* push_constants.cpp */,
);
path = push_constants;
sourceTree = "<group>";
};
A964BB201E4E976C00CA9AF1 /* secondary_command_buffer */ = {
isa = PBXGroup;
children = (
A964BB211E4E976C00CA9AF1 /* secondary_command_buffer.cpp */,
);
path = secondary_command_buffer;
sourceTree = "<group>";
};
A964BB221E4E976C00CA9AF1 /* separate_image_sampler */ = {
isa = PBXGroup;
children = (
A964BB231E4E976C00CA9AF1 /* separate_image_sampler.cpp */,
);
path = separate_image_sampler;
sourceTree = "<group>";
};
A964BB241E4E976C00CA9AF1 /* spirv_assembly */ = {
isa = PBXGroup;
children = (
A964BB251E4E976C00CA9AF1 /* spirv_assembly.cpp */,
);
path = spirv_assembly;
sourceTree = "<group>";
};
A964BB261E4E976C00CA9AF1 /* spirv_specialization */ = {
isa = PBXGroup;
children = (
A964BB271E4E976C00CA9AF1 /* spirv_specialization.cpp */,
);
path = spirv_specialization;
sourceTree = "<group>";
};
A964BB281E4E976C00CA9AF1 /* template */ = {
isa = PBXGroup;
children = (
A964BB291E4E976C00CA9AF1 /* template.cpp */,
);
path = template;
sourceTree = "<group>";
};
A964BB2A1E4E976C00CA9AF1 /* texel_buffer */ = {
isa = PBXGroup;
children = (
A964BB2B1E4E976C00CA9AF1 /* texel_buffer.cpp */,
);
path = texel_buffer;
sourceTree = "<group>";
};
A964BB5C1E4EA6FB00CA9AF1 /* utils */ = {
isa = PBXGroup;
children = (
A964BC601E4EA6FC00CA9AF1 /* samples_platform.h */,
A964BC611E4EA6FC00CA9AF1 /* util.cpp */,
A964BC621E4EA6FC00CA9AF1 /* util.hpp */,
A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */,
A964BC641E4EA6FC00CA9AF1 /* util_init.hpp */,
);
path = utils;
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>";
};
A9C2AB9F218505B000DDBC03 /* Frameworks */ = {
isa = PBXGroup;
children = (
A991E26824FCA59600D968D4 /* MoltenVK.xcframework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
1D6058900D05DD3D006BFB54 /* API-Samples-iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "API-Samples-iOS" */;
buildPhases = (
1D60588D0D05DD3D006BFB54 /* Resources */,
1D60588E0D05DD3D006BFB54 /* Sources */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = "API-Samples-iOS";
productName = foo;
productReference = 1D6058910D05DD3D006BFB54 /* API-Samples.app */;
productType = "com.apple.product-type.application";
};
A977BCBD1B66BB010067E5BF /* API-Samples-macOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = A977BCFB1B66BB010067E5BF /* Build configuration list for PBXNativeTarget "API-Samples-macOS" */;
buildPhases = (
A977BCBE1B66BB010067E5BF /* Resources */,
A977BCC91B66BB010067E5BF /* Sources */,
A977BCF11B66BB010067E5BF /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = "API-Samples-macOS";
productName = foo;
productReference = A977BCFE1B66BB010067E5BF /* API-Samples.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1240;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "API-Samples" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
en,
Base,
fr,
ja,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
projectDirPath = "";
projectRoot = "";
targets = (
1D6058900D05DD3D006BFB54 /* API-Samples-iOS */,
A977BCBD1B66BB010067E5BF /* API-Samples-macOS */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
1D60588D0D05DD3D006BFB54 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9B67B7F1C3AAE9800373FFD /* Icon.png in Resources */,
A95C050B1C98FC1100CC653D /* blue.ppm in Resources */,
A9B67B801C3AAE9800373FFD /* Main.storyboard in Resources */,
A95C05151C98FC1100CC653D /* red.ppm in Resources */,
A95C05131C98FC1100CC653D /* lunarg.ppm in Resources */,
A95C05111C98FC1100CC653D /* logo-256x256.png in Resources */,
A95C050D1C98FC1100CC653D /* green.ppm in Resources */,
A9B67B7E1C3AAE9800373FFD /* Default~ipad.png in Resources */,
A95C050F1C98FC1100CC653D /* logo-256x256-solid.png in Resources */,
A95C05191C98FC1100CC653D /* yellow.ppm in Resources */,
A95C05171C98FC1100CC653D /* spotlight.ppm in Resources */,
A9B67B7D1C3AAE9800373FFD /* Default-568h@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A977BCBE1B66BB010067E5BF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */,
A95C05141C98FC1100CC653D /* lunarg.ppm in Resources */,
A95C050E1C98FC1100CC653D /* green.ppm in Resources */,
A95C050C1C98FC1100CC653D /* blue.ppm in Resources */,
A95C05181C98FC1100CC653D /* spotlight.ppm in Resources */,
A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */,
A95C05161C98FC1100CC653D /* red.ppm in Resources */,
A95C051A1C98FC1100CC653D /* yellow.ppm in Resources */,
A95C05101C98FC1100CC653D /* logo-256x256-solid.png in Resources */,
A95C05121C98FC1100CC653D /* logo-256x256.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
1D60588E0D05DD3D006BFB54 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9B67B7A1C3AAE9800373FFD /* DemoViewController.mm in Sources */,
A964BD3F1E4EA6FC00CA9AF1 /* util_init.cpp in Sources */,
A9B67B781C3AAE9800373FFD /* AppDelegate.m in Sources */,
A964BD3D1E4EA6FC00CA9AF1 /* util.cpp in Sources */,
A9B67B7C1C3AAE9800373FFD /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A977BCC91B66BB010067E5BF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9B67B8C1C3AAEA200373FFD /* AppDelegate.m in Sources */,
A964BD401E4EA6FC00CA9AF1 /* util_init.cpp in Sources */,
A9B67B8F1C3AAEA200373FFD /* main.m in Sources */,
A964BD3E1E4EA6FC00CA9AF1 /* util.cpp in Sources */,
A9B67B8D1C3AAEA200373FFD /* DemoViewController.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "API-Samples.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
_DEBUG,
);
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = iphoneos;
SUPPORTS_MACCATALYST = YES;
TARGETED_DEVICE_FAMILY = "1,2,6";
};
name = Debug;
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "API-Samples.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = iphoneos;
SUPPORTS_MACCATALYST = YES;
TARGETED_DEVICE_FAMILY = "1,2,6";
};
name = Release;
};
A977BCFC1B66BB010067E5BF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
_DEBUG,
);
INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_LDFLAGS = (
"$(inherited)",
"-w",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = macosx;
};
name = Debug;
};
A977BCFD1B66BB010067E5BF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_LDFLAGS = (
"$(inherited)",
"-w",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = macosx;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
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 = (
"VULKAN_SAMPLES_BASE_DIR=\\\"Samples\\\"",
MVK_SAMP_15_draw_cube,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../VulkanSamples/API-Samples/utils\"",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = "${PROJECT}";
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
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 = (
"VULKAN_SAMPLES_BASE_DIR=\\\"Samples\\\"",
MVK_SAMP_15_draw_cube,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/include\"",
"\"$(SRCROOT)/../VulkanSamples/API-Samples/utils\"",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = "${PROJECT}";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "API-Samples-iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1D6058940D05DD3E006BFB54 /* Debug */,
1D6058950D05DD3E006BFB54 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A977BCFB1B66BB010067E5BF /* Build configuration list for PBXNativeTarget "API-Samples-macOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A977BCFC1B66BB010067E5BF /* Debug */,
A977BCFD1B66BB010067E5BF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "API-Samples" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}

View File

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-iOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugXPCServices = "NO"
debugServiceExtension = "internal"
enableGPUFrameCaptureMode = "3"
enableGPUValidationMode = "1"
allowLocationSimulation = "NO"
viewDebuggingEnabled = "No"
queueDebuggingEnabled = "No">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-iOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-iOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-macOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "NO"
debugXPCServices = "NO"
debugServiceExtension = "internal"
enableGPUFrameCaptureMode = "3"
enableGPUValidationMode = "1"
allowLocationSimulation = "NO"
viewDebuggingEnabled = "No"
queueDebuggingEnabled = "No">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-macOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "API-Samples.app"
BlueprintName = "API-Samples-macOS"
ReferencedContainer = "container:API-Samples.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,121 +0,0 @@
/*
* Samples.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Loads the appropriate sample code, as indicated by the appropriate compiler build setting below.
*
* To select a sample to run, define one (and only one) of the macros below, either by adding
* a #define XXX statement at the top of this file, or more flexibily, by adding the macro value
* to the Preprocessor Macros (aka GCC_PREPROCESSOR_DEFINITIONS) compiler setting.
*
* To add a compiler setting, select the project in the Xcode Project Navigator panel,
* select the Build Settings panel, and add the value to the Preprocessor Macros
* (aka GCC_PREPROCESSOR_DEFINITIONS) entry.
*
* If you choose to add a #define statement to this file, be sure to clear the existing macro
* from the Preprocessor Macros (aka GCC_PREPROCESSOR_DEFINITIONS) compiler setting in Xcode.
*
* Each of the `API-Samples` demos loads SPIR-V shader code from a file. Before running
* any of these demos, generate these SPIR-V files from a command line as follows:
*
* cd MoltenVK/Demos/LunarG-VulkanSamples/API-Samples
* ./generateSPIRVShaders
*
* You only need to do this step once. It generates the SPIR-V shader code files for all of these demos.
*/
#include <MoltenVK/mvk_vulkan.h>
// Rename main() in sample file so it won't conflict with the application main()
#define main(argc, argv) sample_main(argc, argv)
#ifdef MVK_SAMP_15_draw_cube
# define _5_draw_cube_vert __draw_cube_vert
# define _5_draw_cube_frag __draw_cube_frag
# include "../VulkanSamples/API-Samples/15-draw_cube/15-draw_cube.cpp"
#endif
#ifdef MVK_SAMP_copy_blit_image
# include "../VulkanSamples/API-Samples/copy_blit_image/copy_blit_image.cpp"
#endif
#ifdef MVK_SAMP_draw_subpasses
# include "../VulkanSamples/API-Samples/draw_subpasses/draw_subpasses.cpp"
#endif
#ifdef MVK_SAMP_draw_textured_cube
# include "../VulkanSamples/API-Samples/draw_textured_cube/draw_textured_cube.cpp"
#endif
#ifdef MVK_SAMP_dynamic_uniform
# include "../VulkanSamples/API-Samples/dynamic_uniform/dynamic_uniform.cpp"
#endif
#ifdef MVK_SAMP_immutable_sampler
# include "../VulkanSamples/API-Samples/immutable_sampler/immutable_sampler.cpp"
#endif
#ifdef MVK_SAMP_input_attachment
# include "../VulkanSamples/API-Samples/input_attachment/input_attachment.cpp"
#endif
#ifdef MVK_SAMP_memory_barriers
# include "../VulkanSamples/API-Samples/memory_barriers/memory_barriers.cpp"
#endif
#ifdef MVK_SAMP_multiple_sets
# include "../VulkanSamples/API-Samples/multiple_sets/multiple_sets.cpp"
#endif
#ifdef MVK_SAMP_multithreaded_command_buffers
# include "../VulkanSamples/API-Samples/multithreaded_command_buffers/multithreaded_command_buffers.cpp"
#endif
#ifdef MVK_SAMP_occlusion_query
# include "../VulkanSamples/API-Samples/occlusion_query/occlusion_query.cpp"
#endif
#ifdef MVK_SAMP_pipeline_cache
# include "../VulkanSamples/API-Samples/pipeline_cache/pipeline_cache.cpp"
#endif
#ifdef MVK_SAMP_push_constants
# include "../VulkanSamples/API-Samples/push_constants/push_constants.cpp"
#endif
#ifdef MVK_SAMP_push_descriptors
# include "../VulkanSamples/API-Samples/push_descriptors/push_descriptors.cpp"
#endif
#ifdef MVK_SAMP_secondary_command_buffer
# include "../VulkanSamples/API-Samples/secondary_command_buffer/secondary_command_buffer.cpp"
#endif
#ifdef MVK_SAMP_separate_image_sampler
# include "../VulkanSamples/API-Samples/separate_image_sampler/separate_image_sampler.cpp"
#endif
// Does not run on macOS, which does not support textures in host-coherent memory.
#ifdef MVK_SAMP_texel_buffer
# include "../VulkanSamples/API-Samples/texel_buffer/texel_buffer.cpp"
#endif

View File

@ -1,25 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2016-2021 The Brenwill Workshop Ltd.
#
# generateSPIRVShaders - Convert GLSL shader files to SPIRV header files
#
# macOS usage: ./generateSPIRVShaders
#
set -e
echo
echo ========== Converting API-Samples shader files ==========
echo
cd "../../.."
"Package/Latest/MoltenVKShaderConverter/Tools/MoltenVKShaderConverter" \
-r -gi -so -oh -xs . -q \
-d "Demos/LunarG-VulkanSamples/VulkanSamples/API-Samples" > /dev/null
cd - > /dev/null
echo ========== Done! ==========

View File

@ -1,70 +0,0 @@
/*
* DemoViewController.mm
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "DemoViewController.h"
#pragma mark -
#pragma mark VulkanSamples extension for iOS & macOS support
#include "Samples.h" // The LunarG VulkanSamples code
static UIView* sampleView; // Global variable to pass UIView to LunarG sample code
/**
* Called from sample.
* Initialize sample from view, and resize view in accordance with the sample.
*/
void init_window(struct sample_info &info) {
info.caMetalLayer = sampleView.layer;
sampleView.bounds = CGRectMake(0, 0, info.width, info.height);
}
/** Called from sample. Return path to resource folder. */
std::string get_base_data_dir() {
return [NSBundle.mainBundle.resourcePath stringByAppendingString: @"/"].UTF8String;
}
#pragma mark -
#pragma mark DemoViewController
@implementation DemoViewController {}
/** Since this is a single-view app, init Vulkan when the view is loaded. */
-(void) viewDidLoad {
[super viewDidLoad];
sampleView = self.view; // Pass the view to the sample code
sample_main(0, NULL); // Run the LunarG sample
}
@end
#pragma mark -
#pragma mark DemoView
@implementation DemoView
/** Returns a Metal-compatible layer. */
+(Class) layerClass { return [CAMetalLayer class]; }
@end

View File

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>iOS/Resources/Icon.png</string>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="15A279b" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vmV-Wi-8wg">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
</dependencies>
<scenes>
<!--Demo View Controller-->
<scene sceneID="UPC-Y9-dN2">
<objects>
<viewController id="vmV-Wi-8wg" customClass="DemoViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="klr-UD-pWY"/>
<viewControllerLayoutGuide type="bottom" id="lMV-Es-kLU"/>
</layoutGuides>
<view key="view" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="xKx-Gc-5Is" customClass="DemoView">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ERB-qy-6pP" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="404" y="555"/>
</scene>
</scenes>
</document>

View File

@ -1 +0,0 @@
../../../../MoltenVK/include/MoltenVK

View File

@ -1 +0,0 @@
../../../../MoltenVKShaderConverter/include/MoltenVKShaderConverter

View File

@ -1 +0,0 @@
../../../../MoltenVK/include/vulkan

View File

@ -1,90 +0,0 @@
/*
* DemoViewController.mm
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "DemoViewController.h"
#import <QuartzCore/CAMetalLayer.h>
#pragma mark -
#pragma mark VulkanSamples extension for iOS & OSX support
#include "Samples.h" // The LunarG VulkanSamples code
static NSView* sampleView; // Global variable to pass NSView to LunarG sample code
/**
* Called from sample.
* Initialize sample from view, and resize view in accordance with the sample.
*/
void init_window(struct sample_info &info) {
info.caMetalLayer = sampleView.layer;
sampleView.bounds = CGRectMake(0, 0, info.width, info.height);
}
/** Called from sample. Return path to resource folder. */
std::string get_base_data_dir() {
return [NSBundle.mainBundle.resourcePath stringByAppendingString: @"/"].UTF8String;
}
#pragma mark -
#pragma mark DemoViewController
@implementation DemoViewController {}
/** Since this is a single-view app, initialize Vulkan during view loading. */
-(void) viewDidLoad {
[super viewDidLoad];
self.view.wantsLayer = YES; // Back the view with a layer created by the makeBackingLayer method.
sampleView = self.view; // Pass the view to the sample code
sample_main(0, NULL); // Run the LunarG sample
}
/** Resize the window to fit the size of the content as set by the sample code. */
-(void) viewWillAppear {
[super viewWillAppear];
CGSize vSz = self.view.bounds.size;
NSWindow *window = self.view.window;
NSRect wFrm = [window contentRectForFrameRect: window.frame];
NSRect newWFrm = [window frameRectForContentRect: NSMakeRect(wFrm.origin.x, wFrm.origin.y, vSz.width, vSz.height)];
[window setFrame: newWFrm display: YES animate: window.isVisible];
[window center];
}
@end
#pragma mark -
#pragma mark DemoView
@implementation DemoView
/** Indicates that the view wants to draw using the backing layer instead of using drawRect:. */
-(BOOL) wantsUpdateLayer { return YES; }
/** Returns a Metal-compatible layer. */
+(Class) layerClass { return [CAMetalLayer class]; }
/** If the wantsLayer property is set to YES, this method will be invoked to return a layer instance. */
-(CALayer*) makeBackingLayer { return [self.class.layerClass layer]; }
@end

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2015 The Brenwill Workshop Ltd. All rights reserved.</string>
<key>NSMainStoryboardFile</key>
<string>Main</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -1,4 +0,0 @@
//
// Prefix header for all source files of the project
//

View File

@ -1,131 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="9532" systemVersion="15A279b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<scenes>
<!--Application-->
<scene sceneID="JPo-4y-FX3">
<objects>
<application id="hnw-xV-0zn" sceneMemberID="viewController">
<menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="MoltenVK Demo" id="1Xt-HY-uBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="MoltenVK Demo" systemMenu="apple" id="uQy-DD-JDr">
<items>
<menuItem title="About Demo" id="5kV-Vb-QxS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Hide Demo" keyEquivalent="h" id="Olw-nP-bQN">
<connections>
<action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
</connections>
</menuItem>
<menuItem title="Show All" id="Kd2-mp-pUS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit Demo" keyEquivalent="q" id="4sb-4s-VLi">
<connections>
<action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
<connections>
<action selector="performMiniaturize:" target="Ady-hI-5gd" id="VwT-WD-YPe"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="R4o-n2-Eq4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="Ady-hI-5gd" id="DIl-cC-cCs"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="Ady-hI-5gd" id="DRN-fu-gQh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Help" id="wpr-3q-Mcd">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
<items>
<menuItem title="MoltenVK Demo Help" keyEquivalent="?" id="FKE-Sm-Kum">
<connections>
<action selector="showHelp:" target="Ady-hI-5gd" id="y7X-2Q-9no"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
</connections>
</application>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83.5" y="-47"/>
</scene>
<!--Window Controller-->
<scene sceneID="R2V-B0-nI4">
<objects>
<windowController id="B8D-0N-5wS" sceneMemberID="viewController">
<window key="window" title="MoltenVK Demo" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="IQv-IB-iLA">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<rect key="contentRect" x="1051" y="656" width="300" height="200"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<value key="minSize" type="size" width="300" height="200"/>
</window>
<connections>
<segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="cq2-FE-JQM"/>
</connections>
</windowController>
<customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83" y="146"/>
</scene>
<!--Demo View Controller-->
<scene sceneID="hIz-AP-VOD">
<objects>
<viewController id="XfG-lQ-9wD" customClass="DemoViewController" sceneMemberID="viewController">
<view key="view" id="m2S-Jp-Qdl" customClass="DemoView">
<rect key="frame" x="0.0" y="0.0" width="400" height="300"/>
<autoresizingMask key="autoresizingMask"/>
</view>
</viewController>
<customObject id="rPt-NT-nkU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83" y="564"/>
</scene>
</scenes>
</document>

View File

@ -1,26 +0,0 @@
/*
* AppDelegate.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

View File

@ -1,55 +0,0 @@
/*
* AppDelegate.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

View File

@ -1,36 +0,0 @@
/*
* DemoViewController.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
#pragma mark -
#pragma mark DemoViewController
/** The main view controller for the demo storyboard. */
@interface DemoViewController : UIViewController
@end
#pragma mark -
#pragma mark DemoView
/** The Metal-compatibile view for the demo Storyboard. */
@interface DemoView : UIView
@end

View File

@ -1,5 +0,0 @@
#import <TargetConditionals.h>
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -1,26 +0,0 @@
/*
* main.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, @"AppDelegate");
}
}

View File

@ -1,23 +0,0 @@
/*
* AppDelegate.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end

View File

@ -1,39 +0,0 @@
/*
* AppDelegate.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
return YES;
}
@end

View File

@ -1,36 +0,0 @@
/*
* DemoViewController.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <AppKit/AppKit.h>
#pragma mark -
#pragma mark DemoViewController
/** The main view controller for the demo storyboard. */
@interface DemoViewController : NSViewController
@end
#pragma mark -
#pragma mark DemoView
/** The Metal-compatibile view for the demo Storyboard. */
@interface DemoView : NSView
@end

View File

@ -1,63 +0,0 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "Icon-16.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "Icon-32.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "Icon-128.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "Icon-256.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "Icon-512.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "512x512",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

View File

@ -1,6 +0,0 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -1,23 +0,0 @@
/*
* main.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}

View File

@ -1,539 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 48;
objects = {
/* Begin PBXBuildFile section */
A92806E724FD77C00082B2CF /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A991E27124FD520900D968D4 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A92806E924FD77EC0082B2CF /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A991E27324FD521600D968D4 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A991E27224FD520900D968D4 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A991E27124FD520900D968D4 /* libMoltenVK.dylib */; };
A991E27424FD521600D968D4 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A991E27324FD521600D968D4 /* libMoltenVK.dylib */; };
A99789AF1CD3D4E2005E7DAC /* Hologram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789831CD3D4E2005E7DAC /* Hologram.cpp */; };
A99789B01CD3D4E2005E7DAC /* Hologram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A99789831CD3D4E2005E7DAC /* Hologram.cpp */; };
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 */; };
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 PBXCopyFilesBuildPhase section */
A92806E624FD77AA0082B2CF /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A92806E724FD77C00082B2CF /* libMoltenVK.dylib in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A92806E824FD77D50082B2CF /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A92806E924FD77EC0082B2CF /* libMoltenVK.dylib in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1D6058910D05DD3D006BFB54 /* Hologram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Hologram.app; sourceTree = BUILT_PRODUCTS_DIR; };
A93374642284CD260059D36E /* Hologram.vert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hologram.vert.h; path = android/src/main/jni/Hologram.vert.h; sourceTree = "<group>"; };
A93374652284CD260059D36E /* Hologram.push_constant.vert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hologram.push_constant.vert.h; path = android/src/main/jni/Hologram.push_constant.vert.h; sourceTree = "<group>"; };
A93374662284CD260059D36E /* Hologram.frag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hologram.frag.h; path = android/src/main/jni/Hologram.frag.h; sourceTree = "<group>"; };
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; };
A991E27124FD520900D968D4 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/dylib/iOS/libMoltenVK.dylib; sourceTree = "<group>"; };
A991E27324FD521600D968D4 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/dylib/macOS/libMoltenVK.dylib; sourceTree = "<group>"; };
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>"; };
A99789851CD3D4E2005E7DAC /* Hologram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hologram.h; 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>"; };
A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HelpersDispatchTable.cpp; sourceTree = "<group>"; };
A9D516F71CD575E300097D96 /* HelpersDispatchTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpersDispatchTable.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A991E27224FD520900D968D4 /* libMoltenVK.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A977BCF11B66BB010067E5BF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A991E27424FD521600D968D4 /* libMoltenVK.dylib 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 */,
A99789851CD3D4E2005E7DAC /* Hologram.h */,
A93374662284CD260059D36E /* Hologram.frag.h */,
A93374652284CD260059D36E /* Hologram.push_constant.vert.h */,
A93374642284CD260059D36E /* Hologram.vert.h */,
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 = (
A991E27124FD520900D968D4 /* libMoltenVK.dylib */,
A991E27324FD521600D968D4 /* libMoltenVK.dylib */,
);
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 = (
1D60588D0D05DD3D006BFB54 /* Resources */,
1D60588E0D05DD3D006BFB54 /* Sources */,
1D60588F0D05DD3D006BFB54 /* Frameworks */,
A92806E624FD77AA0082B2CF /* CopyFiles */,
);
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 = (
A977BCBE1B66BB010067E5BF /* Resources */,
A977BCC91B66BB010067E5BF /* Sources */,
A977BCF11B66BB010067E5BF /* Frameworks */,
A92806E824FD77D50082B2CF /* CopyFiles */,
);
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 = 1240;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Hologram" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
ja,
en,
fr,
de,
);
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 = (
A9B67B7F1C3AAE9800373FFD /* Icon.png in Resources */,
A9B67B801C3AAE9800373FFD /* Main.storyboard in Resources */,
A9B67B7E1C3AAE9800373FFD /* Default~ipad.png in Resources */,
A9B67B7D1C3AAE9800373FFD /* Default-568h@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A977BCBE1B66BB010067E5BF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */,
A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase 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";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/dylib/iOS\"";
MARKETING_VERSION = 1;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/dylib/iOS\"";
MARKETING_VERSION = 1;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
A977BCFC1B66BB010067E5BF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/dylib/macOS\"";
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_LDFLAGS = (
"$(inherited)",
"-w",
);
SDKROOT = macosx;
};
name = Debug;
};
A977BCFD1B66BB010067E5BF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/dylib/macOS\"";
MACOSX_DEPLOYMENT_TARGET = 10.11;
OTHER_LDFLAGS = (
"$(inherited)",
"-w",
);
SDKROOT = macosx;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
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,
);
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\"",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = Hologram;
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
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;
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\"",
);
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 */;
}

View File

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-iOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugXPCServices = "NO"
debugServiceExtension = "internal"
enableGPUFrameCaptureMode = "3"
enableGPUValidationMode = "1"
allowLocationSimulation = "NO"
viewDebuggingEnabled = "No"
queueDebuggingEnabled = "No">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-iOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-iOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-macOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "NO"
debugXPCServices = "NO"
debugServiceExtension = "internal"
enableGPUFrameCaptureMode = "3"
enableGPUValidationMode = "1"
allowLocationSimulation = "NO"
viewDebuggingEnabled = "No"
queueDebuggingEnabled = "No">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-macOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A977BCBD1B66BB010067E5BF"
BuildableName = "Hologram.app"
BlueprintName = "Hologram-macOS"
ReferencedContainer = "container:Hologram.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,116 +0,0 @@
/*
* Copyright (C) 2016 The Brenwill Workshop Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#include "ShellMVK.h"
#include <mach/mach_time.h>
#include <cassert>
#include <sstream>
#include <dlfcn.h>
#include "Helpers.h"
#include "Game.h"
PosixTimer::PosixTimer()
{
_tsBase = mach_absolute_time();
mach_timebase_info_data_t timebase;
mach_timebase_info(&timebase);
_tsPeriod = (double)timebase.numer / (double)timebase.denom;
}
double PosixTimer::get()
{
return (double)(mach_absolute_time() - _tsBase) * _tsPeriod / 1e9;
}
ShellMVK::ShellMVK(Game& game) : Shell(game)
{
_timer = PosixTimer();
_current_time = _timer.get();
_profile_start_time = _current_time;
_profile_present_count = 0;
instance_extensions_.push_back(VK_EXT_METAL_SURFACE_EXTENSION_NAME);
init_vk();
}
ShellMVK::~ShellMVK()
{
destroy_context();
cleanup_vk();
}
PFN_vkGetInstanceProcAddr ShellMVK::load_vk()
{
return vkGetInstanceProcAddr;
}
bool ShellMVK::can_present(VkPhysicalDevice phy, uint32_t queue_family)
{
return true;
}
VkSurfaceKHR ShellMVK::create_surface(VkInstance instance) {
VkSurfaceKHR surface;
VkResult err;
VkMetalSurfaceCreateInfoEXT surface_info;
surface_info.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
surface_info.pNext = NULL;
surface_info.flags = 0;
surface_info.pLayer = _caMetalLayer;
err = vkCreateMetalSurfaceEXT(instance, &surface_info, NULL, &surface);
assert(!err);
return surface;
}
void ShellMVK::update_and_draw() {
acquire_back_buffer();
double t = _timer.get();
add_game_time(static_cast<float>(t - _current_time));
present_back_buffer();
_current_time = t;
_profile_present_count++;
if (_current_time - _profile_start_time >= 5.0) {
const double fps = _profile_present_count / (_current_time - _profile_start_time);
std::stringstream ss;
ss << _profile_present_count << " presents in " <<
_current_time - _profile_start_time << " seconds " <<
"(FPS: " << fps << ")";
log(LOG_INFO, ss.str().c_str());
_profile_start_time = _current_time;
_profile_present_count = 0;
}
}
void ShellMVK::run(void* caMetalLayer) {
_caMetalLayer = caMetalLayer; // not retained
create_context();
resize_swapchain(settings_.initial_width, settings_.initial_height);
}

View File

@ -1,64 +0,0 @@
/*
* Copyright (C) 2016 The Brenwill Workshop Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#ifndef SHELL_MVK_H
#define SHELL_MVK_H
#include <MoltenVK/mvk_vulkan.h>
#include "Shell.h"
#include <sys/time.h>
class PosixTimer {
public:
double get();
PosixTimer();
protected:
uint64_t _tsBase;
double _tsPeriod;
};
class ShellMVK : public Shell {
public:
ShellMVK(Game &game);
~ShellMVK();
void run(void* view);
void update_and_draw();
void run() { run(nullptr); };
void quit() { }
protected:
void* _caMetalLayer;
PosixTimer _timer;
double _current_time;
double _profile_start_time;
int _profile_present_count;
PFN_vkGetInstanceProcAddr load_vk();
bool can_present(VkPhysicalDevice phy, uint32_t queue_family);
VkSurfaceKHR create_surface(VkInstance instance);
};
#endif // SHELL_MVK_H

View File

@ -1,26 +0,0 @@
/*
* AppDelegate.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

View File

@ -1,55 +0,0 @@
/*
* AppDelegate.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

View File

@ -1,36 +0,0 @@
/*
* DemoViewController.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
#pragma mark -
#pragma mark DemoViewController
/** The main view controller for the demo storyboard. */
@interface DemoViewController : UIViewController
@end
#pragma mark -
#pragma mark DemoView
/** The Metal-compatibile view for the demo Storyboard. */
@interface DemoView : UIView
@end

View File

@ -1,77 +0,0 @@
/*
* DemoViewController.mm
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "DemoViewController.h"
#include "ShellMVK.h"
#include "Hologram.h"
#pragma mark -
#pragma mark DemoViewController
@implementation DemoViewController {
CADisplayLink* _displayLink;
ShellMVK* _shell;
Game* _game;
}
-(void) dealloc {
delete _shell;
delete _game;
[_displayLink release];
[super dealloc];
}
/** Since this is a single-view app, init Vulkan when the view is loaded. */
-(void) viewDidLoad {
[super viewDidLoad];
self.view.contentScaleFactor = UIScreen.mainScreen.nativeScale;
std::vector<std::string> args;
args.push_back("-p"); // Use push constants
// args.push_back("-s"); // Use a single thread
_game = new Hologram(args);
_shell = new ShellMVK(*_game);
_shell->run(self.view.layer);
uint32_t fps = 60;
_displayLink = [CADisplayLink displayLinkWithTarget: self selector: @selector(renderLoop)];
[_displayLink setFrameInterval: 60 / fps];
[_displayLink addToRunLoop: NSRunLoop.currentRunLoop forMode: NSDefaultRunLoopMode];
}
-(void) renderLoop {
_shell->update_and_draw();
}
@end
#pragma mark -
#pragma mark DemoView
@implementation DemoView
/** Returns a Metal-compatible layer. */
+(Class) layerClass { return [CAMetalLayer class]; }
@end

View File

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>iOS/Resources/Icon.png</string>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View File

@ -1,5 +0,0 @@
#import <TargetConditionals.h>
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#endif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9060" systemVersion="15A279b" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vmV-Wi-8wg">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
</dependencies>
<scenes>
<!--Demo View Controller-->
<scene sceneID="UPC-Y9-dN2">
<objects>
<viewController id="vmV-Wi-8wg" customClass="DemoViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="klr-UD-pWY"/>
<viewControllerLayoutGuide type="bottom" id="lMV-Es-kLU"/>
</layoutGuides>
<view key="view" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="xKx-Gc-5Is" customClass="DemoView">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ERB-qy-6pP" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="404" y="555"/>
</scene>
</scenes>
</document>

View File

@ -1,26 +0,0 @@
/*
* main.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <UIKit/UIKit.h>
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, @"AppDelegate");
}
}

View File

@ -1,23 +0,0 @@
/*
* AppDelegate.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end

View File

@ -1,39 +0,0 @@
/*
* AppDelegate.m
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
return YES;
}
@end

View File

@ -1,36 +0,0 @@
/*
* DemoViewController.h
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <AppKit/AppKit.h>
#pragma mark -
#pragma mark DemoViewController
/** The main view controller for the demo storyboard. */
@interface DemoViewController : NSViewController
@end
#pragma mark -
#pragma mark DemoView
/** The Metal-compatibile view for the demo Storyboard. */
@interface DemoView : NSView
@end

View File

@ -1,130 +0,0 @@
/*
* DemoViewController.mm
*
* Copyright (c) 2015-2021 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "DemoViewController.h"
#import <QuartzCore/CAMetalLayer.h>
#include "ShellMVK.h"
#include "Hologram.h"
#pragma mark -
#pragma mark DemoViewController
@implementation DemoViewController {
CVDisplayLinkRef _displayLink;
ShellMVK* _shell;
Game* _game;
}
-(void) dealloc {
delete _shell;
delete _game;
CVDisplayLinkRelease(_displayLink);
[super dealloc];
}
/** Since this is a single-view app, initialize Vulkan during view loading. */
-(void) viewDidLoad {
[super viewDidLoad];
self.view.wantsLayer = YES; // Back the view with a layer created by the makeBackingLayer method.
std::vector<std::string> args;
args.push_back("-p"); // Uncomment to use push constants
// args.push_back("-s"); // Uncomment to use a single thread
_game = new Hologram(args);
_shell = new ShellMVK(*_game);
_shell->run(self.view.layer);
CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink);
CVDisplayLinkSetOutputCallback(_displayLink, &DisplayLinkCallback, _shell);
CVDisplayLinkStart(_displayLink);
}
#pragma mark Display loop callback function
/** Rendering loop callback function for use with a CVDisplayLink. */
static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink,
const CVTimeStamp* now,
const CVTimeStamp* outputTime,
CVOptionFlags flagsIn,
CVOptionFlags* flagsOut,
void* target) {
((ShellMVK*)target)->update_and_draw();
return kCVReturnSuccess;
}
-(void) viewDidAppear {
self.view.window.initialFirstResponder = self.view;
}
// Delegated from the view as first responder.
-(void) keyDown:(NSEvent*) theEvent {
Game::Key key;
switch (theEvent.keyCode) {
case 53:
key = Game::KEY_ESC;
break;
case 126:
key = Game::KEY_UP;
break;
case 125:
key = Game::KEY_DOWN;
break;
case 49:
key = Game::KEY_SPACE;
break;
case 3:
key = Game::KEY_F;
break;
default:
key = Game::KEY_UNKNOWN;
break;
}
_game->on_key(key);
}
@end
#pragma mark -
#pragma mark DemoView
@implementation DemoView
/** Indicates that the view wants to draw using the backing layer instead of using drawRect:. */
-(BOOL) wantsUpdateLayer { return YES; }
/** Returns a Metal-compatible layer. */
+(Class) layerClass { return [CAMetalLayer class]; }
/** If the wantsLayer property is set to YES, this method will be invoked to return a layer instance. */
-(CALayer*) makeBackingLayer {
CALayer* layer = [self.class.layerClass layer];
CGSize viewScale = [self convertSizeToBacking: CGSizeMake(1.0, 1.0)];
layer.contentsScale = MIN(viewScale.width, viewScale.height);
return layer;
}
-(BOOL) acceptsFirstResponder { return YES; }
@end

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2015-2021 The Brenwill Workshop Ltd. All rights reserved.</string>
<key>NSMainStoryboardFile</key>
<string>Main</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
</dict>
</plist>

View File

@ -1,3 +0,0 @@
//
// Prefix header for all source files of the project
//

View File

@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
</dependencies>
<scenes>
<!--Application-->
<scene sceneID="JPo-4y-FX3">
<objects>
<application id="hnw-xV-0zn" sceneMemberID="viewController">
<menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="MoltenVK Demo" id="1Xt-HY-uBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="MoltenVK Demo" systemMenu="apple" id="uQy-DD-JDr">
<items>
<menuItem title="About Demo" id="5kV-Vb-QxS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Hide Demo" keyEquivalent="h" id="Olw-nP-bQN">
<connections>
<action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
</connections>
</menuItem>
<menuItem title="Show All" id="Kd2-mp-pUS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit Demo" keyEquivalent="q" id="4sb-4s-VLi">
<connections>
<action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
<connections>
<action selector="performMiniaturize:" target="Ady-hI-5gd" id="VwT-WD-YPe"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="R4o-n2-Eq4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="Ady-hI-5gd" id="DIl-cC-cCs"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="Ady-hI-5gd" id="DRN-fu-gQh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Help" id="wpr-3q-Mcd">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
<items>
<menuItem title="MoltenVK Demo Help" keyEquivalent="?" id="FKE-Sm-Kum">
<connections>
<action selector="showHelp:" target="Ady-hI-5gd" id="y7X-2Q-9no"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
</connections>
</application>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83.5" y="-47"/>
</scene>
<!--Window Controller-->
<scene sceneID="R2V-B0-nI4">
<objects>
<windowController id="B8D-0N-5wS" sceneMemberID="viewController">
<window key="window" title="MoltenVK Hologram Demo" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="IQv-IB-iLA">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<rect key="contentRect" x="1051" y="656" width="1024" height="768"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<value key="minSize" type="size" width="1024" height="768"/>
<value key="maxSize" type="size" width="1024" height="768"/>
</window>
<connections>
<segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="cq2-FE-JQM"/>
</connections>
</windowController>
<customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83" y="146"/>
</scene>
<!--Demo View Controller-->
<scene sceneID="hIz-AP-VOD">
<objects>
<viewController id="XfG-lQ-9wD" customClass="DemoViewController" sceneMemberID="viewController">
<view key="view" id="m2S-Jp-Qdl" customClass="DemoView">
<rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
<autoresizingMask key="autoresizingMask"/>
</view>
</viewController>
<customObject id="rPt-NT-nkU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="83" y="564"/>
</scene>
</scenes>
</document>

View File

@ -1,63 +0,0 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "Icon-16.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "Icon-32.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "Icon-128.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "Icon-256.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "Icon-512.png",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "512x512",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Some files were not shown because too many files have changed in this diff Show More