Skip to content

Commit bf5ada6

Browse files
author
Unity Technologies
committed
Unity 2022.1.0a12 C# reference source code
1 parent 72edb22 commit bf5ada6

File tree

196 files changed

+3595
-1983
lines changed

Some content is hidden

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

196 files changed

+3595
-1983
lines changed

Editor/IncrementalBuildPipeline/BeeBuildProgramCommon.Data/Data.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ public class PackageInfo
1010
public string ResolvedPath;
1111
}
1212

13+
public struct Version
14+
{
15+
public int Release, Major, Minor;
16+
17+
public Version(int release, int major, int minor)
18+
{
19+
Release = release;
20+
Major = major;
21+
Minor = minor;
22+
}
23+
}
24+
1325
public class ConfigurationData
1426
{
1527
public string Il2CppDir;
@@ -19,7 +31,9 @@ public class ConfigurationData
1931
public string EditorContentsPath;
2032
public PackageInfo[] Packages;
2133
public string UnityVersion;
34+
public Version UnityVersionNumeric;
2235
public string UnitySourceCodePath;
2336
public bool AdvancedLicense;
37+
public bool Batchmode;
2438
}
2539
}

Editor/IncrementalBuildPipeline/PlayerBuildProgramLibrary.Data/Data.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ public class Plugin
99
public string AssetPath;
1010
public string DestinationPath;
1111
public string Architecture;
12+
public string CompileFlags;
13+
public bool AddToEmbeddedBinaries;
1214
public override string ToString()
1315
{
1416
return $"'{AssetPath} -> '{DestinationPath}' ({Architecture})";
@@ -34,6 +36,7 @@ public class PlayerBuildConfig
3436
public bool InstallIntoBuildsFolder;
3537
public bool GenerateIdeProject;
3638
public bool Development;
39+
public bool UseNewInputSystem;
3740
public Services Services;
3841
public string[] ManagedAssemblies;
3942
public StreamingAssetsFile[] StreamingAssetsFiles;
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
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 System;
6+
using System.Collections.Generic;
7+
using System.Runtime.InteropServices;
8+
using Unity.Collections;
9+
using UnityEngine;
10+
using UnityEngine.U2D;
11+
using UnityEngine.Bindings;
12+
using UnityEngine.Scripting;
13+
using Unity.Collections.LowLevel.Unsafe;
14+
15+
namespace UnityEditor.U2D.SpritePacking
16+
{
17+
[RequiredByNativeCode]
18+
[StructLayout(LayoutKind.Sequential)]
19+
internal struct SpritePackInfoInternal
20+
{
21+
public int guid;
22+
public int texIndex;
23+
public int indexCount;
24+
public int vertexCount;
25+
public RectInt rect;
26+
public IntPtr indices;
27+
public IntPtr vertices;
28+
};
29+
30+
[RequiredByNativeCode]
31+
[StructLayout(LayoutKind.Sequential)]
32+
internal struct SpritePackTextureInfoInternal
33+
{
34+
public int width;
35+
public int height;
36+
public IntPtr buffer;
37+
};
38+
39+
[RequiredByNativeCode]
40+
[StructLayout(LayoutKind.Sequential)]
41+
internal struct SpritePackDatasetInternal
42+
{
43+
public SpritePackInfoInternal spriteData;
44+
public SpritePackTextureInfoInternal textureData;
45+
};
46+
47+
[StructLayout(LayoutKind.Sequential)]
48+
internal struct SpritePackInfo
49+
{
50+
public int guid;
51+
public int texIndex;
52+
public int indexCount;
53+
public int vertexCount;
54+
public RectInt rect;
55+
public NativeArray<int> indices;
56+
public NativeArray<Vector3> vertices;
57+
};
58+
59+
[StructLayout(LayoutKind.Sequential)]
60+
internal struct SpritePackTextureInfo
61+
{
62+
public int width;
63+
public int height;
64+
public NativeArray<Color32> buffer;
65+
};
66+
67+
internal struct SpritePackDataset
68+
{
69+
public List<SpritePackInfo> spriteData;
70+
public List<SpritePackTextureInfo> textureData;
71+
};
72+
73+
internal struct SpritePackConfig
74+
{
75+
public int padding;
76+
};
77+
78+
[NativeHeader("Runtime/2D/SpriteAtlas/SpriteAtlas.h")]
79+
[NativeHeader("Editor/Src/2D/SpriteAtlas/SpriteAtlasPackingUtilities.h")]
80+
internal class SpritePackUtility
81+
{
82+
internal unsafe static SpritePackDataset PackCustomSpritesWrapper(SpritePackDataset input, SpritePackConfig packConfig, Allocator alloc)
83+
{
84+
var output = new SpritePackDataset();
85+
var spriteCount = input.spriteData.Count;
86+
if (0 == spriteCount)
87+
return output;
88+
89+
var data = new NativeArray<SpritePackDatasetInternal>(spriteCount, Allocator.Temp, NativeArrayOptions.ClearMemory);
90+
for (int i = 0; i < spriteCount; ++i)
91+
{
92+
SpritePackDatasetInternal rawData = data[i];
93+
rawData.spriteData.guid = input.spriteData[i].guid;
94+
int texIndex = input.spriteData[i].texIndex;
95+
if (texIndex >= input.textureData.Count)
96+
{
97+
data.Dispose();
98+
throw new ArgumentOutOfRangeException("texIndex", "texIndex must point to a valid index in textureData list.");
99+
}
100+
rawData.spriteData.texIndex = texIndex;
101+
rawData.spriteData.indexCount = input.spriteData[i].indexCount;
102+
rawData.spriteData.vertexCount = input.spriteData[i].vertexCount;
103+
rawData.spriteData.rect = input.spriteData[i].rect;
104+
rawData.spriteData.indices = input.spriteData[i].indices.IsCreated ? (IntPtr)input.spriteData[i].indices.GetUnsafePtr() : (IntPtr)0;
105+
rawData.spriteData.vertices = input.spriteData[i].vertices.IsCreated ? (IntPtr)input.spriteData[i].vertices.GetUnsafePtr() : (IntPtr)0;
106+
rawData.textureData.width = input.textureData[texIndex].width;
107+
rawData.textureData.height = input.textureData[texIndex].height;
108+
rawData.textureData.buffer = input.textureData[texIndex].buffer.IsCreated ? (IntPtr)input.textureData[texIndex].buffer.GetUnsafePtr() : (IntPtr)0;
109+
data[i] = rawData;
110+
}
111+
112+
var spriteOutput = (SpritePackDatasetInternal*)PackCustomSpritesInternal(spriteCount, (SpritePackDatasetInternal*)data.GetUnsafePtr(), packConfig);
113+
if (null != spriteOutput)
114+
{
115+
var colorBufferArray = new SpritePackTextureInfo[spriteCount];
116+
for (int i = 0; i < spriteCount; ++i)
117+
{
118+
SpritePackTextureInfoInternal rawBuffer = spriteOutput[i].textureData;
119+
int index = spriteOutput[i].spriteData.texIndex;
120+
SpritePackTextureInfo outputBuffer = colorBufferArray[index];
121+
// New Texture. Copy.
122+
if (!outputBuffer.buffer.IsCreated)
123+
{
124+
outputBuffer.width = rawBuffer.width;
125+
outputBuffer.height = rawBuffer.height;
126+
Color32* rawColor = (Color32*)rawBuffer.buffer;
127+
if (null != rawColor)
128+
{
129+
outputBuffer.buffer = new NativeArray<Color32>(rawBuffer.width * rawBuffer.height, alloc);
130+
UnsafeUtility.MemCpy(outputBuffer.buffer.GetUnsafePtr(), rawColor, rawBuffer.width * rawBuffer.height * sizeof(Color32));
131+
}
132+
UnsafeUtility.Free((void*)rawBuffer.buffer, Allocator.Persistent);
133+
}
134+
colorBufferArray[index] = outputBuffer;
135+
}
136+
output.textureData = new List<SpritePackTextureInfo>(colorBufferArray);
137+
138+
var spriteDataArray = new SpritePackInfo[spriteCount];
139+
for (int i = 0; i < spriteCount; ++i)
140+
{
141+
SpritePackInfo spriteData = spriteDataArray[i];
142+
spriteData.guid = spriteOutput[i].spriteData.guid;
143+
spriteData.indexCount = spriteOutput[i].spriteData.indexCount;
144+
spriteData.vertexCount = spriteOutput[i].spriteData.vertexCount;
145+
spriteData.rect = spriteOutput[i].spriteData.rect;
146+
if (0 != spriteData.indexCount && 0 != spriteData.vertexCount)
147+
{
148+
int* rawIndices = (int*)spriteOutput[i].spriteData.indices;
149+
if (null != rawIndices)
150+
{
151+
spriteData.indices = new NativeArray<int>(spriteOutput[i].spriteData.indexCount, alloc);
152+
UnsafeUtility.MemCpy(spriteData.indices.GetUnsafePtr(), rawIndices, spriteOutput[i].spriteData.indexCount * sizeof(int));
153+
}
154+
Vector3* rawVertices = (Vector3*)spriteOutput[i].spriteData.vertices;
155+
if (null != rawVertices)
156+
{
157+
spriteData.vertices = new NativeArray<Vector3>(spriteOutput[i].spriteData.vertexCount, alloc);
158+
UnsafeUtility.MemCpy(spriteData.vertices.GetUnsafePtr(), rawVertices, spriteOutput[i].spriteData.vertexCount * sizeof(Vector3));
159+
}
160+
UnsafeUtility.Free((void*)spriteOutput[i].spriteData.indices, Allocator.Persistent);
161+
UnsafeUtility.Free((void*)spriteOutput[i].spriteData.vertices, Allocator.Persistent);
162+
}
163+
spriteData.texIndex = spriteOutput[i].spriteData.texIndex;
164+
spriteDataArray[i] = spriteData;
165+
}
166+
output.spriteData = new List<SpritePackInfo>(spriteDataArray);
167+
UnsafeUtility.Free((void*)spriteOutput, Allocator.Persistent);
168+
}
169+
170+
data.Dispose();
171+
return output;
172+
}
173+
174+
internal static SpritePackDataset PackCustomSprites(SpritePackDataset spriteDataInput, SpritePackConfig packConfig, Allocator outputAlloc)
175+
{
176+
return PackCustomSpritesWrapper(spriteDataInput, packConfig, outputAlloc);
177+
}
178+
179+
[NativeThrows]
180+
[FreeFunction("PackCustomSprites")]
181+
extern internal unsafe static IntPtr PackCustomSpritesInternal(int spriteCount, SpritePackDatasetInternal* data, SpritePackConfig packConfig);
182+
}
183+
}

Editor/Mono/Animation/AnimationWindow/AnimationWindowHierarchyGUI.cs

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ private void DoValueField(Rect rect, AnimationWindowHierarchyNode node, int row)
331331
// We do valuefields for dopelines that only have single curve
332332
AnimationWindowCurve curve = curves[0];
333333
object objectValue = CurveBindingUtility.GetCurrentValue(state, curve);
334+
int intValue = 0;
334335

335336
if (objectValue is float)
336337
{
@@ -363,18 +364,39 @@ private void DoValueField(Rect rect, AnimationWindowHierarchyNode node, int row)
363364
GUIUtility.keyboardControl = id;
364365
}
365366

366-
value = EditorGUI.DoFloatField(EditorGUI.s_RecycledEditor,
367-
valueFieldRect,
368-
valueFieldDragRect,
369-
id,
370-
value,
371-
"g5",
372-
m_AnimationSelectionTextField,
373-
true);
374-
if (enterInTextField)
367+
if (curve.isDiscreteCurve)
375368
{
376-
GUI.changed = true;
377-
Event.current.Use();
369+
intValue = UnityEngine.Animations.DiscreteEvaluationAttributeUtilities.ConvertFloatToDiscreteInt(value);
370+
intValue = EditorGUI.DoIntField(EditorGUI.s_RecycledEditor,
371+
valueFieldRect,
372+
valueFieldDragRect,
373+
id,
374+
intValue,
375+
EditorGUI.kIntFieldFormatString,
376+
m_AnimationSelectionTextField,
377+
true,
378+
0);
379+
if (enterInTextField)
380+
{
381+
GUI.changed = true;
382+
Event.current.Use();
383+
}
384+
}
385+
else
386+
{
387+
value = EditorGUI.DoFloatField(EditorGUI.s_RecycledEditor,
388+
valueFieldRect,
389+
valueFieldDragRect,
390+
id,
391+
value,
392+
"g5",
393+
m_AnimationSelectionTextField,
394+
true);
395+
if (enterInTextField)
396+
{
397+
GUI.changed = true;
398+
Event.current.Use();
399+
}
378400
}
379401
}
380402

@@ -394,6 +416,9 @@ private void DoValueField(Rect rect, AnimationWindowHierarchyNode node, int row)
394416
existingKeyframe = keyframe;
395417
}
396418

419+
if (curve.isDiscreteCurve)
420+
value = UnityEngine.Animations.DiscreteEvaluationAttributeUtilities.ConvertDiscreteIntToFloat(intValue);
421+
397422
if (existingKeyframe == null)
398423
AnimationWindowUtility.AddKeyframeToCurve(curve, value, curve.valueType, newAnimationKeyTime);
399424
else

Editor/Mono/Animation/AnimationWindow/AnimationWindowUtility.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,9 @@ public static AnimationWindowKeyframe AddKeyframeToCurve(AnimationWindowCurve cu
280280
{
281281
// Create temporary curve to get proper tangents
282282
AnimationCurve animationCurve = curve.ToAnimationCurve();
283+
284+
285+
283286
if (animationCurve.length <= 1)
284287
{
285288
TangentMode tangentMode = curve.isDiscreteCurve ? TangentMode.Constant : TangentMode.Linear;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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.Bindings;
6+
7+
namespace UnityEditorInternal
8+
{
9+
[NativeHeader("Editor/Src/AssetStore/AssetStoreCachePathManager.h")]
10+
internal partial class AssetStoreCachePathManager
11+
{
12+
[FreeFunction("AssetStoreCachePathManager::GetConfig")]
13+
public static extern CachePathConfig GetConfig();
14+
15+
// Int return the status of setting the config
16+
[FreeFunction("AssetStoreCachePathManager::SetConfig")]
17+
public static extern ConfigStatus SetConfig(string newPath);
18+
19+
[FreeFunction("AssetStoreCachePathManager::ResetConfig")]
20+
public static extern ConfigStatus ResetConfig();
21+
}
22+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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 System;
6+
using UnityEngine;
7+
using UnityEngine.Bindings;
8+
using UnityEditor.PackageManager;
9+
using System.Runtime.InteropServices;
10+
using RequiredByNativeCodeAttribute = UnityEngine.Scripting.RequiredByNativeCodeAttribute;
11+
12+
namespace UnityEditorInternal
13+
{
14+
internal partial class AssetStoreCachePathManager
15+
{
16+
public enum ConfigStatus
17+
{
18+
Success = 0,
19+
InvalidPath,
20+
WritePermissionError,
21+
EnvironmentOverride,
22+
NotFound,
23+
Failed
24+
};
25+
26+
[Serializable]
27+
[StructLayout(LayoutKind.Sequential)]
28+
[RequiredByNativeCode]
29+
[NativeAsStruct]
30+
internal class CachePathConfig
31+
{
32+
[SerializeField]
33+
[NativeName("path")]
34+
private string m_Path = "";
35+
36+
[SerializeField]
37+
[NativeName("source")]
38+
private ConfigSource m_Source = ConfigSource.Unknown;
39+
40+
[SerializeField]
41+
[NativeName("status")]
42+
private ConfigStatus m_Status = ConfigStatus.Success;
43+
44+
public string path => m_Path;
45+
46+
public ConfigSource source => m_Source;
47+
48+
public ConfigStatus status => m_Status;
49+
}
50+
}
51+
}

0 commit comments

Comments
 (0)