Skip to content

Commit 02fe475

Browse files
authored
Merge pull request #1 from StrangeLoopGames/simon/initial
initial project commit
2 parents c88bb48 + e2a12b4 commit 02fe475

36 files changed

Lines changed: 2890 additions & 0 deletions

.gitattributes

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
###############################################################################
2+
# Set default behavior to automatically normalize line endings.
3+
###############################################################################
4+
* text=auto
5+
6+
###############################################################################
7+
# Set default behavior for command prompt diff.
8+
#
9+
# This is need for earlier builds of msysgit that does not have it on by
10+
# default for csharp files.
11+
# Note: This is only used by command line
12+
###############################################################################
13+
#*.cs diff=csharp
14+
15+
###############################################################################
16+
# Set the merge driver for project and solution files
17+
#
18+
# Merging from the command prompt will add diff markers to the files if there
19+
# are conflicts (Merging from VS is not affected by the settings below, in VS
20+
# the diff markers are never inserted). Diff markers may cause the following
21+
# file extensions to fail to load in VS. An alternative would be to treat
22+
# these files as binary and thus will always conflict and require user
23+
# intervention with every merge. To do so, just uncomment the entries below
24+
###############################################################################
25+
#*.sln merge=binary
26+
#*.csproj merge=binary
27+
#*.vbproj merge=binary
28+
#*.vcxproj merge=binary
29+
#*.vcproj merge=binary
30+
#*.dbproj merge=binary
31+
#*.fsproj merge=binary
32+
#*.lsproj merge=binary
33+
#*.wixproj merge=binary
34+
#*.modelproj merge=binary
35+
#*.sqlproj merge=binary
36+
#*.wwaproj merge=binary
37+
38+
###############################################################################
39+
# behavior for image files
40+
#
41+
# image files are treated as binary by default.
42+
###############################################################################
43+
#*.jpg binary
44+
#*.png binary
45+
#*.gif binary
46+
47+
###############################################################################
48+
# diff behavior for common document formats
49+
#
50+
# Convert binary document formats to text before diffing them. This feature
51+
# is only available from the command line. Turn it on by uncommenting the
52+
# entries below.
53+
###############################################################################
54+
#*.doc diff=astextplain
55+
#*.DOC diff=astextplain
56+
#*.docx diff=astextplain
57+
#*.DOCX diff=astextplain
58+
#*.dot diff=astextplain
59+
#*.DOT diff=astextplain
60+
#*.pdf diff=astextplain
61+
#*.PDF diff=astextplain
62+
#*.rtf diff=astextplain
63+
#*.RTF diff=astextplain

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/.idea
2+
/.vs
3+
/NativeTime.Plugin/NativeTime.Plugin.vcxproj.user
4+
/NativeTime/bin
5+
/NativeTime/obj
6+
/NativeTime.Plugin/bin
7+
/NativeTime.Plugin/obj
8+
/Runtime/Plugins/*/*.lib
9+
/Runtime/Plugins/*/*.exp
10+
/Runtime/Plugins/*/*.pdb
11+
/cmake-build-debug
12+
/cmake-build-release
13+
*.meta
14+
/out/*

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
cmake_minimum_required(VERSION 3.17)
2+
project(NativeTime)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
add_subdirectory(NativeTime.Plugin)

NativeTime.Plugin/CMakeLists.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
include_directories(PluginAPI)
2+
3+
add_library(NativeTimeNative SHARED
4+
PluginAPI/IUnityEventQueue.h
5+
PluginAPI/IUnityGraphics.h
6+
PluginAPI/IUnityGraphicsD3D11.h
7+
PluginAPI/IUnityGraphicsD3D12.h
8+
PluginAPI/IUnityGraphicsMetal.h
9+
PluginAPI/IUnityGraphicsVulkan.h
10+
PluginAPI/IUnityInterface.h
11+
PluginAPI/IUnityProfilerCallbacks.h
12+
PluginAPI/IUnityRenderingExtensions.h
13+
PluginAPI/IUnityShaderCompilerAccess.h
14+
framework.h
15+
NativeTime.cpp
16+
NativeTime.h
17+
Windows.cpp
18+
Osx.cpp
19+
)
20+
21+
if (APPLE)
22+
target_precompile_headers(NativeTimeNative PRIVATE $<$<COMPILE_LANGUAGE:OBJC>:pch.h>)
23+
else()
24+
target_precompile_headers(NativeTimeNative PRIVATE pch.h)
25+
endif()
26+
27+
if (APPLE)
28+
set(CMAKE_C_FLAGS "-x objective-c")
29+
add_compile_options("-dynamiclib")
30+
target_sources(NativeTimeNative PRIVATE Metal.mm)
31+
elseif(UNIX)
32+
add_compile_definitions(UNITY_LINUX=1)
33+
endif()
34+
35+
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
36+
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -Wl,-undefined,dynamic_lookup")
37+
endif()

NativeTime.Plugin/Metal.mm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include "pch.h"
2+
#include "RuntimeGraphicsInfo.h"
3+
#include "IUnityInterface.h"
4+
5+
unsigned short SetMaxTessellationFactorMetal(IUnityInterfaces* pUnityInterface, unsigned short tessellationLevel)
6+
{
7+
return 16;
8+
}
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|Win32">
5+
<Configuration>Debug</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release|Win32">
9+
<Configuration>Release</Configuration>
10+
<Platform>Win32</Platform>
11+
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Debug|x64">
13+
<Configuration>Debug</Configuration>
14+
<Platform>x64</Platform>
15+
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|x64">
17+
<Configuration>Release</Configuration>
18+
<Platform>x64</Platform>
19+
</ProjectConfiguration>
20+
</ItemGroup>
21+
<PropertyGroup Label="Globals">
22+
<VCProjectVersion>16.0</VCProjectVersion>
23+
<ProjectGuid>{A20656BB-F143-45E8-A067-58E7A1EE36E1}</ProjectGuid>
24+
<Keyword>Win32Proj</Keyword>
25+
<RootNamespace>NativeTime</RootNamespace>
26+
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
27+
<ProjectName>NativeTime.Plugin</ProjectName>
28+
</PropertyGroup>
29+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
30+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
31+
<ConfigurationType>DynamicLibrary</ConfigurationType>
32+
<UseDebugLibraries>true</UseDebugLibraries>
33+
<PlatformToolset>v143</PlatformToolset>
34+
<CharacterSet>Unicode</CharacterSet>
35+
</PropertyGroup>
36+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
37+
<ConfigurationType>DynamicLibrary</ConfigurationType>
38+
<UseDebugLibraries>false</UseDebugLibraries>
39+
<PlatformToolset>v143</PlatformToolset>
40+
<WholeProgramOptimization>true</WholeProgramOptimization>
41+
<CharacterSet>Unicode</CharacterSet>
42+
</PropertyGroup>
43+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
44+
<ConfigurationType>DynamicLibrary</ConfigurationType>
45+
<UseDebugLibraries>true</UseDebugLibraries>
46+
<PlatformToolset>v143</PlatformToolset>
47+
<CharacterSet>Unicode</CharacterSet>
48+
</PropertyGroup>
49+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
50+
<ConfigurationType>DynamicLibrary</ConfigurationType>
51+
<UseDebugLibraries>false</UseDebugLibraries>
52+
<PlatformToolset>v143</PlatformToolset>
53+
<WholeProgramOptimization>true</WholeProgramOptimization>
54+
<CharacterSet>Unicode</CharacterSet>
55+
</PropertyGroup>
56+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
57+
<ImportGroup Label="ExtensionSettings">
58+
</ImportGroup>
59+
<ImportGroup Label="Shared">
60+
</ImportGroup>
61+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
62+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63+
</ImportGroup>
64+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
65+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
66+
</ImportGroup>
67+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
68+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
69+
</ImportGroup>
70+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
71+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
72+
</ImportGroup>
73+
<PropertyGroup Label="UserMacros" />
74+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
75+
<TargetName>NativeTimeNative</TargetName>
76+
<OutDir>bin\$(Platform)\$(Configuration)\</OutDir>
77+
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
78+
</PropertyGroup>
79+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
80+
<TargetName>NativeTime_x64</TargetName>
81+
<OutDir>bin\$(Platform)\$(Configuration)\</OutDir>
82+
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
83+
</PropertyGroup>
84+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
85+
<TargetName>NativeTimeNative</TargetName>
86+
<OutDir>$(SolutionDir)Runtime\Plugins\x86\</OutDir>
87+
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
88+
</PropertyGroup>
89+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
90+
<TargetName>NativeTimeNative</TargetName>
91+
<OutDir>$(SolutionDir)Runtime\Plugins\x86_64\</OutDir>
92+
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
93+
</PropertyGroup>
94+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
95+
<ClCompile>
96+
<PrecompiledHeader>Use</PrecompiledHeader>
97+
<WarningLevel>Level3</WarningLevel>
98+
<Optimization>Disabled</Optimization>
99+
<SDLCheck>true</SDLCheck>
100+
<PreprocessorDefinitions>WIN32;_DEBUG;NATIVETIME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
101+
<ConformanceMode>true</ConformanceMode>
102+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
103+
<AdditionalIncludeDirectories>PluginAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
104+
</ClCompile>
105+
<Link>
106+
<SubSystem>Windows</SubSystem>
107+
<GenerateDebugInformation>true</GenerateDebugInformation>
108+
<EnableUAC>false</EnableUAC>
109+
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
110+
<ImportLibrary />
111+
</Link>
112+
</ItemDefinitionGroup>
113+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
114+
<ClCompile>
115+
<PrecompiledHeader>Use</PrecompiledHeader>
116+
<WarningLevel>Level3</WarningLevel>
117+
<Optimization>Disabled</Optimization>
118+
<SDLCheck>true</SDLCheck>
119+
<PreprocessorDefinitions>_DEBUG;NATIVETIME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
120+
<ConformanceMode>true</ConformanceMode>
121+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
122+
<AdditionalIncludeDirectories>PluginAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
123+
</ClCompile>
124+
<Link>
125+
<SubSystem>Windows</SubSystem>
126+
<GenerateDebugInformation>true</GenerateDebugInformation>
127+
<EnableUAC>false</EnableUAC>
128+
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
129+
<ImportLibrary />
130+
</Link>
131+
</ItemDefinitionGroup>
132+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
133+
<ClCompile>
134+
<PrecompiledHeader>Use</PrecompiledHeader>
135+
<WarningLevel>Level3</WarningLevel>
136+
<Optimization>MaxSpeed</Optimization>
137+
<FunctionLevelLinking>true</FunctionLevelLinking>
138+
<IntrinsicFunctions>true</IntrinsicFunctions>
139+
<SDLCheck>true</SDLCheck>
140+
<PreprocessorDefinitions>WIN32;NDEBUG;NATIVETIME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
141+
<ConformanceMode>true</ConformanceMode>
142+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
143+
<AdditionalIncludeDirectories>PluginAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
144+
</ClCompile>
145+
<Link>
146+
<SubSystem>Windows</SubSystem>
147+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
148+
<OptimizeReferences>true</OptimizeReferences>
149+
<GenerateDebugInformation>true</GenerateDebugInformation>
150+
<EnableUAC>false</EnableUAC>
151+
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
152+
<ImportLibrary />
153+
</Link>
154+
</ItemDefinitionGroup>
155+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
156+
<ClCompile>
157+
<PrecompiledHeader>Use</PrecompiledHeader>
158+
<WarningLevel>Level3</WarningLevel>
159+
<Optimization>MaxSpeed</Optimization>
160+
<FunctionLevelLinking>true</FunctionLevelLinking>
161+
<IntrinsicFunctions>true</IntrinsicFunctions>
162+
<SDLCheck>true</SDLCheck>
163+
<PreprocessorDefinitions>NDEBUG;NATIVETIME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
164+
<ConformanceMode>true</ConformanceMode>
165+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
166+
<AdditionalIncludeDirectories>PluginAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
167+
</ClCompile>
168+
<Link>
169+
<SubSystem>Windows</SubSystem>
170+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
171+
<OptimizeReferences>true</OptimizeReferences>
172+
<GenerateDebugInformation>true</GenerateDebugInformation>
173+
<EnableUAC>false</EnableUAC>
174+
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
175+
<ImportLibrary />
176+
</Link>
177+
</ItemDefinitionGroup>
178+
<ItemGroup>
179+
<None Include="cpp.hint" />
180+
<None Include="PluginAPI\LICENSE.md" />
181+
</ItemGroup>
182+
<ItemGroup>
183+
<ClCompile Include="Windows.cpp" />
184+
<ClCompile Include="Osx.cpp" />
185+
<ClCompile Include="pch.cpp">
186+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
187+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
188+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
189+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
190+
</ClCompile>
191+
<ClCompile Include="NativeTime.cpp" />
192+
</ItemGroup>
193+
<ItemGroup>
194+
<ClInclude Include="framework.h" />
195+
<ClInclude Include="pch.h" />
196+
<ClInclude Include="PlatformBase.h" />
197+
<ClInclude Include="PluginAPI\IUnityEventQueue.h" />
198+
<ClInclude Include="PluginAPI\IUnityGraphics.h" />
199+
<ClInclude Include="PluginAPI\IUnityGraphicsD3D11.h" />
200+
<ClInclude Include="PluginAPI\IUnityGraphicsD3D12.h" />
201+
<ClInclude Include="PluginAPI\IUnityGraphicsMetal.h" />
202+
<ClInclude Include="PluginAPI\IUnityGraphicsVulkan.h" />
203+
<ClInclude Include="PluginAPI\IUnityInterface.h" />
204+
<ClInclude Include="PluginAPI\IUnityProfilerCallbacks.h" />
205+
<ClInclude Include="PluginAPI\IUnityRenderingExtensions.h" />
206+
<ClInclude Include="PluginAPI\IUnityShaderCompilerAccess.h" />
207+
<ClInclude Include="NativeTime.h" />
208+
</ItemGroup>
209+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
210+
<ImportGroup Label="ExtensionTargets">
211+
</ImportGroup>
212+
</Project>

0 commit comments

Comments
 (0)