Skip to content

Commit 3ba7247

Browse files
committed
Add project files.
1 parent ca5daa5 commit 3ba7247

35 files changed

Lines changed: 2789 additions & 0 deletions

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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

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: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
include_directories(PluginAPI)
2+
3+
add_library(NativeTimeoNative 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+
DirectX11.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 (WIN32)
28+
target_sources(NativeTimeNative PRIVATE dllmain.cpp)
29+
endif()
30+
31+
if (APPLE)
32+
set(CMAKE_C_FLAGS "-x objective-c")
33+
add_compile_options("-dynamiclib")
34+
target_sources(NativeTimeNative PRIVATE Metal.mm)
35+
elseif(UNIX)
36+
add_compile_definitions(UNITY_LINUX=1)
37+
endif()
38+
39+
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
40+
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -Wl,-undefined,dynamic_lookup")
41+
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>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<ClCompile Include="Windows.cpp" />
5+
<ClCompile Include="Osx.cpp" />
6+
<ClCompile Include="pch.cpp" />
7+
<ClCompile Include="NativeTime.cpp" />
8+
</ItemGroup>
9+
<ItemGroup>
10+
<ClInclude Include="framework.h" />
11+
<ClInclude Include="pch.h" />
12+
<ClInclude Include="NativeTime.h" />
13+
<ClInclude Include="PluginAPI\IUnityEventQueue.h">
14+
<Filter>PluginAPI</Filter>
15+
</ClInclude>
16+
<ClInclude Include="PluginAPI\IUnityGraphics.h">
17+
<Filter>PluginAPI</Filter>
18+
</ClInclude>
19+
<ClInclude Include="PluginAPI\IUnityGraphicsD3D11.h">
20+
<Filter>PluginAPI</Filter>
21+
</ClInclude>
22+
<ClInclude Include="PluginAPI\IUnityGraphicsD3D12.h">
23+
<Filter>PluginAPI</Filter>
24+
</ClInclude>
25+
<ClInclude Include="PluginAPI\IUnityGraphicsMetal.h">
26+
<Filter>PluginAPI</Filter>
27+
</ClInclude>
28+
<ClInclude Include="PluginAPI\IUnityGraphicsVulkan.h">
29+
<Filter>PluginAPI</Filter>
30+
</ClInclude>
31+
<ClInclude Include="PluginAPI\IUnityInterface.h">
32+
<Filter>PluginAPI</Filter>
33+
</ClInclude>
34+
<ClInclude Include="PluginAPI\IUnityProfilerCallbacks.h">
35+
<Filter>PluginAPI</Filter>
36+
</ClInclude>
37+
<ClInclude Include="PluginAPI\IUnityRenderingExtensions.h">
38+
<Filter>PluginAPI</Filter>
39+
</ClInclude>
40+
<ClInclude Include="PluginAPI\IUnityShaderCompilerAccess.h">
41+
<Filter>PluginAPI</Filter>
42+
</ClInclude>
43+
<ClInclude Include="PlatformBase.h" />
44+
</ItemGroup>
45+
<ItemGroup>
46+
<None Include="cpp.hint" />
47+
<None Include="PluginAPI\LICENSE.md">
48+
<Filter>PluginAPI</Filter>
49+
</None>
50+
</ItemGroup>
51+
<ItemGroup>
52+
<Filter Include="PluginAPI">
53+
<UniqueIdentifier>{9bfc1b5a-160d-4706-86ed-9c8ed7765f15}</UniqueIdentifier>
54+
</Filter>
55+
</ItemGroup>
56+
</Project>

NativeTime.Plugin/NativeTime.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// RuntimeGraphicsInfo.cpp : Defines the exported functions for the DLL.
2+
//
3+
4+
#include "pch.h"
5+
#include "NativeTime.h"
6+
7+
#include "IUnityInterface.h"
8+
#include "IUnityGraphics.h"
9+
10+
static IUnityInterfaces* s_UnityInterfaces = nullptr;
11+
12+
// Unity plugin load event
13+
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
14+
UnityPluginLoad(IUnityInterfaces * unityInterfaces)
15+
{
16+
s_UnityInterfaces = unityInterfaces;
17+
}
18+
19+
// Unity plugin unload event
20+
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API
21+
UnityPluginUnload()
22+
{
23+
}
24+

NativeTime.Plugin/NativeTime.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// The following ifdef block is the standard way of creating macros which make exporting
2+
// from a DLL simpler. All files within this DLL are compiled with the NATIVETIME_EXPORTS
3+
// symbol defined on the command line. This symbol should not be defined on any project
4+
// that uses this DLL. This way any other project whose source files include this file see
5+
// NATIVETIME_API functions as being imported from a DLL, whereas this DLL sees symbols
6+
// defined with this macro as being exported.
7+
8+
#include <cstdint>
9+
#include "IUnityInterface.h"
10+
11+
#ifdef NATIVETIME_EXPORTS
12+
#define NATIVETIME_API __declspec(dllexport)
13+
#else
14+
#define NATIVETIME_API __declspec(dllimport)
15+
#endif
16+
17+
extern "C" int64_t UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API GetTimestamp();

0 commit comments

Comments
 (0)