Cube demo run on tvOS and tvOS Simulator.

This commit is contained in:
Bill Hollings 2020-06-23 21:06:48 -04:00
parent b9f1d7519a
commit 5419d229d0
5 changed files with 296 additions and 5 deletions

View File

@ -7,6 +7,15 @@
objects = {
/* Begin PBXBuildFile section */
A93DBF3C24A2A4D500079F64 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B761C3AAE9800373FFD /* Icon.png */; };
A93DBF3E24A2A4D500079F64 /* Default~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B751C3AAE9800373FFD /* Default~ipad.png */; };
A93DBF3F24A2A4D500079F64 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B741C3AAE9800373FFD /* Default-568h@2x.png */; };
A93DBF4124A2A4D500079F64 /* DemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6F1C3AAE9800373FFD /* DemoViewController.m */; };
A93DBF4224A2A4D500079F64 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */; };
A93DBF4324A2A4D500079F64 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B711C3AAE9800373FFD /* main.m */; };
A93DBF4E24A2A6F000079F64 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A93DBF4D24A2A6F000079F64 /* libMoltenVK.dylib */; };
A93DBF4F24A2A6F000079F64 /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A93DBF4D24A2A6F000079F64 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A94D4CB724A2C9A3009C9139 /* MainTV.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A94D4CB624A2C9A3009C9139 /* MainTV.storyboard */; };
A9B53B151C3AC0BE00ABC6F6 /* macOS.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */; };
A9B53B161C3AC0BE00ABC6F6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8A1C3AAEA200373FFD /* Main.storyboard */; };
A9B53B181C3AC0BE00ABC6F6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B831C3AAEA200373FFD /* AppDelegate.m */; };
@ -36,6 +45,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
A93DBF4624A2A4D500079F64 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A93DBF4F24A2A6F000079F64 /* libMoltenVK.dylib in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9B2A5571D7E4FC400F66656 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@ -52,6 +71,10 @@
A904B5301C9A08C90008C013 /* cube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cube.c; sourceTree = "<group>"; };
A904B5311C9A08C90008C013 /* cube.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = cube.frag; sourceTree = "<group>"; };
A904B5331C9A08C90008C013 /* cube.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = cube.vert; sourceTree = "<group>"; };
A93DBF4B24A2A4D500079F64 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; };
A93DBF4D24A2A6F000079F64 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/tvOS/dynamic/libMoltenVK.dylib; sourceTree = "<group>"; };
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>"; };
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>"; };
@ -79,6 +102,14 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
A93DBF4424A2A4D500079F64 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A93DBF4E24A2A6F000079F64 /* libMoltenVK.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9B53B1B1C3AC0BE00ABC6F6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -103,6 +134,7 @@
children = (
A9B53B271C3AC0BE00ABC6F6 /* Cube.app */,
A9B53B431C3AC15200ABC6F6 /* Cube.app */,
A93DBF4B24A2A4D500079F64 /* Cube.app */,
);
name = Products;
sourceTree = "<group>";
@ -138,6 +170,7 @@
A9B67B6E1C3AAE9800373FFD /* DemoViewController.h */,
A9B67B6F1C3AAE9800373FFD /* DemoViewController.m */,
A9B67B701C3AAE9800373FFD /* Info.plist */,
A94D4CB424A2A95E009C9139 /* InfoTV.plist */,
A9B67B711C3AAE9800373FFD /* main.m */,
A9B67B721C3AAE9800373FFD /* Prefix.pch */,
A9B67B731C3AAE9800373FFD /* Resources */,
@ -152,6 +185,7 @@
A9B67B751C3AAE9800373FFD /* Default~ipad.png */,
A9B67B761C3AAE9800373FFD /* Icon.png */,
A9B67B771C3AAE9800373FFD /* Main.storyboard */,
A94D4CB624A2C9A3009C9139 /* MainTV.storyboard */,
);
path = Resources;
sourceTree = "<group>";
@ -183,6 +217,7 @@
A9C2ABA82185085B00DDBC03 /* Frameworks */ = {
isa = PBXGroup;
children = (
A93DBF4D24A2A6F000079F64 /* libMoltenVK.dylib */,
A9C2ABAB2185086D00DDBC03 /* libMoltenVK.dylib */,
A9C2ABA92185085B00DDBC03 /* libMoltenVK.dylib */,
);
@ -192,6 +227,24 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
A93DBF3A24A2A4D500079F64 /* Cube-tvOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = A93DBF4824A2A4D500079F64 /* Build configuration list for PBXNativeTarget "Cube-tvOS" */;
buildPhases = (
A93DBF3B24A2A4D500079F64 /* Resources */,
A93DBF4024A2A4D500079F64 /* Sources */,
A93DBF4424A2A4D500079F64 /* Frameworks */,
A93DBF4624A2A4D500079F64 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = "Cube-tvOS";
productName = foo;
productReference = A93DBF4B24A2A4D500079F64 /* Cube.app */;
productType = "com.apple.product-type.application";
};
A9B53B0F1C3AC0BE00ABC6F6 /* Cube-macOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = A9B53B241C3AC0BE00ABC6F6 /* Build configuration list for PBXNativeTarget "Cube-macOS" */;
@ -252,12 +305,24 @@
projectRoot = "";
targets = (
A9B53B291C3AC15200ABC6F6 /* Cube-iOS */,
A93DBF3A24A2A4D500079F64 /* Cube-tvOS */,
A9B53B0F1C3AC0BE00ABC6F6 /* Cube-macOS */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
A93DBF3B24A2A4D500079F64 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A93DBF3C24A2A4D500079F64 /* Icon.png in Resources */,
A94D4CB724A2C9A3009C9139 /* MainTV.storyboard in Resources */,
A93DBF3E24A2A4D500079F64 /* Default~ipad.png in Resources */,
A93DBF3F24A2A4D500079F64 /* Default-568h@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9B53B141C3AC0BE00ABC6F6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -281,6 +346,16 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
A93DBF4024A2A4D500079F64 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A93DBF4124A2A4D500079F64 /* DemoViewController.m in Sources */,
A93DBF4224A2A4D500079F64 /* AppDelegate.m in Sources */,
A93DBF4324A2A4D500079F64 /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A9B53B171C3AC0BE00ABC6F6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -304,6 +379,48 @@
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
A93DBF4924A2A4D500079F64 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
MVK_SAMP_CUBE,
);
INFOPLIST_FILE = "$(SRCROOT)/iOS/InfoTV.plist";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/tvOS/dynamic\"";
MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Debug;
};
A93DBF4A24A2A4D500079F64 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
MVK_SAMP_CUBE,
);
INFOPLIST_FILE = "$(SRCROOT)/iOS/InfoTV.plist";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/tvOS/dynamic\"";
MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = appletvos;
TVOS_DEPLOYMENT_TARGET = 9.0;
};
name = Release;
};
A9B53B251C3AC0BE00ABC6F6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -444,6 +561,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
A93DBF4824A2A4D500079F64 /* Build configuration list for PBXNativeTarget "Cube-tvOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A93DBF4924A2A4D500079F64 /* Debug */,
A93DBF4A24A2A4D500079F64 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
A9B53B241C3AC0BE00ABC6F6 /* Build configuration list for PBXNativeTarget "Cube-macOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1150"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A93DBF3A24A2A4D500079F64"
BuildableName = "Cube.app"
BlueprintName = "Cube-tvOS"
ReferencedContainer = "container:Cube.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "A9B53B291C3AC15200ABC6F6"
BuildableName = "Cube.app"
BlueprintName = "Cube-iOS"
ReferencedContainer = "container:Cube.xcodeproj">
</BuildableReference>
</MacroExpansion>
<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 = "A93DBF3A24A2A4D500079F64"
BuildableName = "Cube.app"
BlueprintName = "Cube-tvOS"
ReferencedContainer = "container:Cube.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,52 @@
<?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>MainTV</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View File

@ -1,7 +1,9 @@
<?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">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="vmV-Wi-8wg">
<device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Demo View Controller-->
@ -13,9 +15,8 @@
<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"/>
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ERB-qy-6pP" userLabel="First Responder" sceneMemberID="firstResponder"/>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder.AppleTV.Storyboard" version="3.0" toolsVersion="16097" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="fFL-Fw-4sa">
<device id="appleTV" appearance="light"/>
<dependencies>
<deployment identifier="tvOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Demo View Controller-->
<scene sceneID="4X5-3H-4Vr">
<objects>
<viewController id="fFL-Fw-4sa" customClass="DemoViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="BnD-cI-3CU"/>
<viewControllerLayoutGuide type="bottom" id="Hbq-NS-8mc"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="xhu-n8-sOz" customClass="DemoView">
<rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<viewLayoutGuide key="safeArea" id="t9G-P1-nOE"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="kBP-wi-UBI" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-384" y="-36"/>
</scene>
</scenes>
</document>