Skip to content

Commit 5241b65

Browse files
author
Unity Technologies
committed
Unity 2021.2.0a8 C# reference source code
1 parent 1df34c9 commit 5241b65

File tree

273 files changed

+10455
-2744
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

273 files changed

+10455
-2744
lines changed

Editor/Mono/AssetPipeline/LocalCacheServer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,9 @@ public static void CreateIfNeeded()
177177

178178
public static void Setup()
179179
{
180-
var mode = (CacheServerPreferences.CacheServerMode)EditorPrefs.GetInt("CacheServerMode");
180+
var mode = (AssetPipelinePreferences.CacheServerMode)EditorPrefs.GetInt("CacheServerMode");
181181

182-
if (mode == CacheServerPreferences.CacheServerMode.Local)
182+
if (mode == AssetPipelinePreferences.CacheServerMode.Local)
183183
CreateIfNeeded();
184184
else
185185
Kill();
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Unity C# reference source
2+
// Copyright (c) Unity Technologies. For terms of use, see
3+
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
4+
5+
using UnityEngine;
6+
using UnityEngine.Bindings;
7+
8+
namespace UnityEditor
9+
{
10+
[NativeHeader("Editor/Src/AssetPipeline/ShaderIncludeImporter.h")]
11+
internal sealed partial class ShaderIncludeImporter : AssetImporter
12+
{
13+
}
14+
15+
[NativeHeader("Editor/Src/Shaders/ShaderInclude.h")]
16+
internal sealed partial class ShaderInclude : Object
17+
{
18+
}
19+
}

Editor/Mono/AssetPipeline/TextureImporter.bindings.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,16 @@ internal void GetWidthAndHeight(ref int width, ref int height)
371371
height = info.height;
372372
}
373373

374+
public void GetSourceTextureWidthAndHeight(out int width, out int height)
375+
{
376+
var info = GetSourceTextureInformation();
377+
if (info.width == -1)
378+
throw new InvalidOperationException("The texture has not yet finished importing. This most likely means this method was called in an AssetPostprocessor.OnPreprocessAsset callback.");
379+
380+
width = info.width;
381+
height = info.height;
382+
}
383+
374384
internal bool IsSourceTextureHDR()
375385
{
376386
return GetSourceTextureInformation().hdr;

Editor/Mono/BuildPipeline.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public enum BuildOptions
5252
AllowDebugging = 1 << 9,
5353

5454
// Symlink runtime libraries when generating iOS XCode project. (Faster iteration time).
55-
[Obsolete("BuildOptions.SymlinkLibraries is obsolete. Use BuildOptions.SymlinkSources instead (UnityUpgradable) -> [UnityEditor] BuildOptions.SymlinkSources", true)]
55+
[Obsolete("BuildOptions.SymlinkLibraries is obsolete. Use BuildOptions.SymlinkSources instead (UnityUpgradable) -> [UnityEditor] BuildOptions.SymlinkSources", false)]
5656

5757
SymlinkLibraries = 1 << 10,
5858

Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ protected static bool GetDevelopment(BuildPostProcessArgs args)
532532
return ((args.options & BuildOptions.Development) != 0);
533533
}
534534

535-
protected static bool IsHeadlessMode(BuildPostProcessArgs args)
535+
protected static bool IsServerBuild(BuildPostProcessArgs args)
536536
{
537537
return ((args.options & BuildOptions.EnableHeadlessMode) != 0);
538538
}

Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs

Lines changed: 25 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using System.Linq;
1010
using System.Text;
1111
using System.Runtime.InteropServices;
12-
using Unity.IL2CPP.BeeSettings;
1312
using UnityEditor;
1413
using UnityEditor.Build;
1514
using UnityEditor.Build.Player;
@@ -459,6 +458,9 @@ internal static string[] GetBuildingIL2CPPArguments(IIl2CppPlatformProvider il2c
459458

460459
arguments.Add("--avoid-dynamic-library-copy");
461460

461+
//make il2cpp not deploy baselib, as we already copy it in ourselves
462+
arguments.Add("--dont-deploy-baselib");
463+
462464
arguments.Add("--profiler-report");
463465

464466
return arguments.ToArray();
@@ -479,11 +481,6 @@ internal static string GetIl2CppFolder()
479481
"il2cpp"));
480482
}
481483

482-
internal static string GetIl2CppBeeSettingsFolder()
483-
{
484-
return $"{GetIl2CppFolder()}/build/BeeSettings/offline";
485-
}
486-
487484
internal static string GetTundraFolder()
488485
{
489486
return $"{GetIl2CppFolder()}/external/bee/tundra";
@@ -577,11 +574,7 @@ public void Run()
577574
var managedDir = Path.GetFullPath(Path.Combine(m_StagingAreaData, "Managed"));
578575

579576
// Make all assemblies in Staging/Managed writable for stripping.
580-
foreach (var file in Directory.GetFiles(managedDir))
581-
{
582-
var fileInfo = new FileInfo(file);
583-
fileInfo.IsReadOnly = false;
584-
}
577+
ClearReadOnlyFlagOnAllFilesNonRecursively(managedDir);
585578

586579
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(m_PlatformProvider.target);
587580

@@ -595,12 +588,17 @@ public void Run()
595588

596589
Directory.CreateDirectory(m_TempFolder);
597590
Directory.CreateDirectory(generatedCppDir);
591+
ClearReadOnlyFlagOnAllFilesNonRecursively(generatedCppDir);
598592

599593
// Need to clean out the AdditionalCppFiles directory because a platform could do pretty much anything
600594
// in a "modifyOutputBeforeCompile" callback method, and so we need to provide a fresh directory. Bee will
601595
// still check the hash of these files before doing a build, so writing them again won't cause a recompile.
602596
if (Directory.Exists(additionalCppFilesDirectory))
597+
{
598+
ClearReadOnlyFlagOnAllFilesNonRecursively(additionalCppFilesDirectory);
603599
Directory.Delete(additionalCppFilesDirectory, true);
600+
}
601+
604602
Directory.CreateDirectory(additionalCppFilesDirectory);
605603

606604
if (m_ModifyOutputBeforeCompile != null)
@@ -611,6 +609,15 @@ public void Run()
611609
ConvertPlayerDlltoCpp(pipelineData);
612610
}
613611

612+
private static void ClearReadOnlyFlagOnAllFilesNonRecursively(string managedDir)
613+
{
614+
foreach (var file in Directory.GetFiles(managedDir))
615+
{
616+
var fileInfo = new FileInfo(file);
617+
fileInfo.IsReadOnly = false;
618+
}
619+
}
620+
614621
public void RunCompileAndLink(string il2cppBuildCacheSource)
615622
{
616623
if (string.Equals(Path.GetFullPath(il2cppBuildCacheSource), Path.GetFullPath(m_PlatformProvider.il2cppBuildCacheDirectory), StringComparison.OrdinalIgnoreCase))
@@ -709,6 +716,10 @@ private void ConvertPlayerDlltoCpp(Il2CppBuildPipelineData data)
709716
Il2CppNativeCodeBuilderUtils.ClearAndPrepareCacheDirectory(il2CppNativeCodeBuilder);
710717
arguments.AddRange(Il2CppNativeCodeBuilderUtils.AddBuilderArguments(il2CppNativeCodeBuilder, buildCacheNativeOutputFile, m_PlatformProvider.includePaths, m_PlatformProvider.libraryPaths, compilerConfiguration));
711718
}
719+
else
720+
{
721+
arguments.Add($"--cachedirectory={CommandLineFormatter.PrepareFileName(GetShortPathName(Path.GetFullPath(m_PlatformProvider.il2cppBuildCacheDirectory)))}");
722+
}
712723

713724
// Additional files can take any form, depending on platform, so pass anything in the additional files directory
714725
foreach (var additionalCppFile in Directory.GetFiles(GetAdditionalCppFilesDirectory(m_PlatformProvider.il2cppBuildCacheDirectory)))
@@ -727,7 +738,6 @@ private void ConvertPlayerDlltoCpp(Il2CppBuildPipelineData data)
727738
arguments.Add(additionalArgs);
728739

729740
arguments.Add($"--directory={CommandLineFormatter.PrepareFileName(GetShortPathName(Path.GetFullPath(data.inputDirectory)))}");
730-
731741
arguments.Add($"--generatedcppdir={CommandLineFormatter.PrepareFileName(GetCppOutputDirectory(m_PlatformProvider.il2cppBuildCacheDirectory))}");
732742

733743
// NOTE: any arguments added here that affect how generated code is built need
@@ -771,29 +781,13 @@ private void RunIl2CppWithArguments(List<string> arguments, Action<ProcessStartI
771781
var nativeOutputDirectoryInBuildCache = GetNativeOutputRelativeDirectory(m_PlatformProvider.il2cppBuildCacheDirectory);
772782
var nativeOutputDirectoryInStagingArea = GetNativeOutputRelativeDirectory(m_StagingAreaData);
773783

774-
BeeSettingsIl2Cpp beeSettings = new BeeSettingsIl2Cpp();
775784
var il2cppOutputParser = new Il2CppOutputParser(Path.Combine(cppOutputDirectoryInBuildCache, "Il2CppToEditorData.json"));
776785

777-
beeSettings.ToolPath = $"{EscapeSpacesInPath(GetIl2CppExe())}";
778-
beeSettings.Arguments.AddRange(arguments);
779-
beeSettings.Serialize(m_PlatformProvider.il2cppBuildCacheDirectory);
780-
781-
void SetupTundraAndStartInfo(ProcessStartInfo startInfo)
782-
{
783-
if (setupStartInfo != null)
784-
setupStartInfo(startInfo);
785-
786-
// For some reason, TUNDRA_EXECUTABLE needs to be unescaped in order to be found on OSX,
787-
// but MONO_EXECUTABLE needs to be escaped in order to be found on OSX
788-
startInfo.EnvironmentVariables.Add("TUNDRA_EXECUTABLE", GetIl2CppTundraExe());
789-
startInfo.EnvironmentVariables.Add("REAPI_CACHE_CLIENT", GetIl2CppReapiCacheClientExe());
790-
startInfo.EnvironmentVariables.Add("MONO_EXECUTABLE", EscapeSpacesInPath(GetMonoBleedingEdgeExe()));
791-
}
786+
arguments.Add("--convert-in-graph");
792787

793788
var args = arguments.Aggregate(String.Empty, (current, arg) => current + arg + " ");
794-
var beeArgs = $"--no-colors --prebuiltbuildprogram={EscapeSpacesInPath(GetIl2CppBeeBuildProgramExe())}";
795-
Console.WriteLine("Invoking il2cpp (via bee.exe) with arguments: " + args);
796-
Runner.RunManagedProgram(GetIl2CppBeeExe(), beeArgs, m_PlatformProvider.il2cppBuildCacheDirectory, il2cppOutputParser, SetupTundraAndStartInfo);
789+
Console.WriteLine("Invoking il2cpp with arguments: " + args);
790+
Runner.RunNetCoreProgram(GetIl2CppExe(), args, m_PlatformProvider.il2cppBuildCacheDirectory, il2cppOutputParser, setupStartInfo);
797791

798792
// Copy IL2CPP outputs to StagingArea
799793
if (Directory.Exists(nativeOutputDirectoryInBuildCache))
@@ -820,21 +814,6 @@ private string GetIl2CppExe()
820814
return $"{IL2CPPUtils.GetIl2CppFolder()}/build/deploy/netcoreapp3.1/il2cpp{(Application.platform == RuntimePlatform.WindowsEditor ? ".exe" : "")}";
821815
}
822816

823-
private string GetIl2CppBeeExe()
824-
{
825-
return $"{IL2CPPUtils.GetIl2CppBeeSettingsFolder()}/bee.exe";
826-
}
827-
828-
private string GetIl2CppBeeArtifactsDirectory()
829-
{
830-
return $"{IL2CPPUtils.GetIl2CppBeeSettingsFolder()}/artifacts";
831-
}
832-
833-
private string GetIl2CppBeeBuildProgramExe()
834-
{
835-
return $"{GetIl2CppBeeArtifactsDirectory()}/buildprogram/buildprogram.exe";
836-
}
837-
838817
private string GetIl2CppTundraExe()
839818
{
840819
if (Application.platform == RuntimePlatform.OSXEditor)

Editor/Mono/BuildPipeline/Il2Cpp/Il2CppNativeCodeBuilderUtils.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Collections.Generic;
77
using System.IO;
88
using System.Linq;
9+
using NiceIO;
910
using UnityEditor;
1011

1112
namespace UnityEditorInternal
@@ -31,14 +32,25 @@ public static IEnumerable<string> AddBuilderArguments(Il2CppNativeCodeBuilder bu
3132

3233
arguments.Add(FormatArgument("outputpath", builder.ConvertOutputFileToFullPath(outputRelativePath)));
3334

35+
string cacheDirectory = null;
3436
if (!string.IsNullOrEmpty(builder.CacheDirectory) && !builder.OverriddenCacheDirectory)
35-
arguments.Add(FormatArgument("cachedirectory", IL2CPPBuilder.GetShortPathName(CacheDirectoryPathFor(builder.CacheDirectory))));
37+
{
38+
cacheDirectory = IL2CPPBuilder.GetShortPathName(CacheDirectoryPathFor(builder.CacheDirectory));
39+
arguments.Add(FormatArgument("cachedirectory", cacheDirectory));
40+
}
3641

3742
if (!string.IsNullOrEmpty(builder.CompilerFlags))
3843
arguments.Add(FormatArgument("compiler-flags", builder.CompilerFlags));
3944

4045
if (!string.IsNullOrEmpty(builder.LinkerFlags))
41-
arguments.Add(FormatArgument("linker-flags", builder.LinkerFlags));
46+
{
47+
if (cacheDirectory == null)
48+
throw new ArgumentException("If you pass linkerflags, a cachedirectory also needs to be passed.");
49+
50+
NPath templinkerflagsTxt = $"{cacheDirectory}/linkerflags/linkerflags.txt";
51+
templinkerflagsTxt.WriteAllText(builder.LinkerFlags);
52+
arguments.Add(FormatArgument("linker-flags-file", templinkerflagsTxt.ToString()));
53+
}
4254

4355
if (!string.IsNullOrEmpty(builder.PluginPath))
4456
arguments.Add(FormatArgument("plugin", builder.PluginPath));

Editor/Mono/CutBoard.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private static void PasteToScene(Scene targetScene)
136136

137137
private static void SetParent(Transform go, Transform parent)
138138
{
139-
Undo.SetTransformParent(go, parent, kCutAndPaste);
139+
Undo.SetTransformParent(go, parent, false, kCutAndPaste);
140140
go.SetAsLastSibling();
141141
}
142142

Editor/Mono/EditorGUI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3448,9 +3448,9 @@ public static int GetSelectedValueForControl(int controlID, int selected)
34483448
}
34493449
if (instance.m_ControlID == controlID)
34503450
{
3451+
GUI.changed = selected != instance.m_SelectedIndex;
34513452
selected = instance.m_SelectedIndex;
34523453
instance = null;
3453-
GUI.changed = true;
34543454
evt.Use();
34553455
}
34563456
}

Editor/Mono/EditorGUIUtility.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public static void RenderGameViewCameras(RenderTexture target, int targetDisplay
154154

155155
private static extern Texture2D FindTextureByName(string name);
156156
private static extern Texture2D FindTextureByType([NotNull] Type type);
157-
private static extern string GetObjectNameWithInfo(Object obj);
157+
internal static extern string GetObjectNameWithInfo(Object obj);
158158
private static extern string GetTypeNameWithInfo(string typeName, int instanceID);
159159
private static extern void Internal_SetupEventValues(object evt);
160160
private static extern Vector2 Internal_GetIconSize();

0 commit comments

Comments
 (0)