Skip to content

Commit 23b613c

Browse files
author
Unity Technologies
committed
Unity 2019.4.0f1 C# reference source code
1 parent 89e9fc1 commit 23b613c

File tree

7 files changed

+106
-34
lines changed

7 files changed

+106
-34
lines changed

Editor/Mono/Animation/AnimationWindow/AnimationWindowState.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,11 +347,18 @@ public void ForceRefresh()
347347
refresh = RefreshType.Everything;
348348
}
349349

350+
private void PurgeSelection()
351+
{
352+
Object.DestroyImmediate(m_Selection);
353+
m_Selection = null;
354+
}
355+
350356
public void OnEnable()
351357
{
352358
hideFlags = HideFlags.HideAndDontSave;
353359
AnimationUtility.onCurveWasModified += CurveWasModified;
354360
Undo.undoRedoPerformed += UndoRedoPerformed;
361+
AssemblyReloadEvents.beforeAssemblyReload += PurgeSelection;
355362

356363
// NoOps...
357364
onStartLiveEdit += () => {};
@@ -367,6 +374,7 @@ public void OnDisable()
367374
{
368375
AnimationUtility.onCurveWasModified -= CurveWasModified;
369376
Undo.undoRedoPerformed -= UndoRedoPerformed;
377+
AssemblyReloadEvents.beforeAssemblyReload -= PurgeSelection;
370378

371379
m_ControlInterface.OnDisable();
372380
}

Editor/Mono/GameView/GameView.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,7 @@ private void LoadRenderDoc()
391391
{
392392
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
393393
{
394-
RenderDoc.Load();
395-
ShaderUtil.RecreateGfxDevice();
394+
ShaderUtil.RequestLoadRenderDoc();
396395
}
397396
}
398397

Editor/Mono/SceneView/SceneView.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,8 +1408,7 @@ private void LoadRenderDoc()
14081408
{
14091409
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
14101410
{
1411-
RenderDoc.Load();
1412-
ShaderUtil.RecreateGfxDevice();
1411+
ShaderUtil.RequestLoadRenderDoc();
14131412
}
14141413
}
14151414

@@ -3537,6 +3536,9 @@ void CallOnSceneGUI()
35373536
Editor.m_AllowMultiObjectAccess = !editor.canEditMultipleObjects;
35383537
method.Invoke(editor, null);
35393538
Editor.m_AllowMultiObjectAccess = true;
3539+
// This would mean that OnSceneGUI has changed the scene and it is not drawn
3540+
if (s_CurrentDrawingSceneView == null)
3541+
GUIUtility.ExitGUI();
35403542
if (EditorGUI.EndChangeCheck())
35413543
editor.serializedObject.SetIsDifferentCacheDirty();
35423544
}

Editor/Mono/ShaderUtil.bindings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public sealed partial class ShaderUtil
158158
extern public static bool hardwareSupportsRectRenderTexture { get; }
159159
extern internal static bool hardwareSupportsFullNPOT { get; }
160160

161-
161+
extern internal static void RequestLoadRenderDoc();
162162
extern internal static void RecreateGfxDevice();
163163
extern internal static void RecreateSkinnedMeshResources();
164164
extern internal static void ReloadAllShaders();

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Unity 2019.3.15f1 C# reference source code
1+
## Unity 2019.4.0f1 C# reference source code
22

33
The C# part of the Unity engine and editor source code.
44
May be used for reference purposes only.

Runtime/Export/Graphics/AsyncGPUReadback.bindings.cs

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ public unsafe NativeArray<T> GetData<T>(int layer = 0) where T : struct
6363
unsafe private extern IntPtr GetDataRaw(int layer);
6464
}
6565

66+
[UsedByNativeCode]
67+
[NativeHeader("Runtime/Graphics/AsyncGPUReadbackManaged.h")]
68+
[StructLayout(LayoutKind.Sequential)]
69+
unsafe internal struct AsyncRequestNativeArrayData
70+
{
71+
public void* nativeArrayBuffer;
72+
public long lengthInBytes;
73+
public AtomicSafetyHandle safetyHandle;
74+
}
75+
6676
[StaticAccessor("AsyncGPUReadbackManager::GetInstance()", StaticAccessorType.Dot)]
6777
public static class AsyncGPUReadback
6878
{
@@ -85,7 +95,7 @@ static public AsyncGPUReadbackRequest Request(ComputeBuffer src, Action<AsyncGPU
8595
{
8696
unsafe
8797
{
88-
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_1(src, null, 0);
98+
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_1(src);
8999
SetUpScriptingRequest(request, callback);
90100
return request;
91101
}
@@ -95,7 +105,7 @@ static public AsyncGPUReadbackRequest Request(ComputeBuffer src, int size, int o
95105
{
96106
unsafe
97107
{
98-
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_2(src, size, offset, null, 0);
108+
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_2(src, size, offset);
99109
SetUpScriptingRequest(request, callback);
100110
return request;
101111
}
@@ -141,11 +151,28 @@ static public AsyncGPUReadbackRequest Request(Texture src, int mipIndex, int x,
141151
return request;
142152
}
143153

154+
static AsyncRequestNativeArrayData CreateAsyncRequestNativeArrayData<T>(ref NativeArray<T> output) where T : struct
155+
{
156+
unsafe
157+
{
158+
AsyncRequestNativeArrayData data;
159+
data.nativeArrayBuffer = output.GetUnsafePtr();
160+
data.lengthInBytes = output.Length * UnsafeUtility.SizeOf<T>();
161+
var safetyHandle = NativeArrayUnsafeUtility.GetAtomicSafetyHandle(output);
162+
var versionPtr = (int*)safetyHandle.versionNode;
163+
if (safetyHandle.version != ((*versionPtr) & AtomicSafetyHandle.WriteCheck))
164+
AtomicSafetyHandle.CheckWriteAndThrowNoEarlyOut(safetyHandle);
165+
data.safetyHandle = safetyHandle;
166+
return data;
167+
}
168+
}
169+
144170
static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<T> output, ComputeBuffer src, Action<AsyncGPUReadbackRequest> callback = null) where T : struct
145171
{
146172
unsafe
147173
{
148-
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_1(src, output.GetUnsafePtr(), output.Length * UnsafeUtility.SizeOf<T>());
174+
AsyncRequestNativeArrayData data = CreateAsyncRequestNativeArrayData(ref output);
175+
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_3(src, &data);
149176
SetUpScriptingRequest(request, callback);
150177
return request;
151178
}
@@ -155,7 +182,8 @@ static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<
155182
{
156183
unsafe
157184
{
158-
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_2(src, size, offset, output.GetUnsafePtr(), output.Length * UnsafeUtility.SizeOf<T>());
185+
AsyncRequestNativeArrayData data = CreateAsyncRequestNativeArrayData(ref output);
186+
AsyncGPUReadbackRequest request = Request_Internal_ComputeBuffer_4(src, size, offset, &data);
159187
SetUpScriptingRequest(request, callback);
160188
return request;
161189
}
@@ -165,7 +193,8 @@ static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<
165193
{
166194
unsafe
167195
{
168-
AsyncGPUReadbackRequest request = Request_Internal_Texture_5(src, mipIndex, output.GetUnsafePtr(), output.Length * UnsafeUtility.SizeOf<T>());
196+
AsyncRequestNativeArrayData data = CreateAsyncRequestNativeArrayData(ref output);
197+
AsyncGPUReadbackRequest request = Request_Internal_Texture_5(src, mipIndex, &data);
169198
SetUpScriptingRequest(request, callback);
170199
return request;
171200
}
@@ -181,7 +210,8 @@ static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<
181210
ValidateFormat(src, dstFormat);
182211
unsafe
183212
{
184-
AsyncGPUReadbackRequest request = Request_Internal_Texture_6(src, mipIndex, dstFormat, output.GetUnsafePtr(), output.Length * UnsafeUtility.SizeOf<T>());
213+
AsyncRequestNativeArrayData data = CreateAsyncRequestNativeArrayData(ref output);
214+
AsyncGPUReadbackRequest request = Request_Internal_Texture_6(src, mipIndex, dstFormat, &data);
185215
SetUpScriptingRequest(request, callback);
186216
return request;
187217
}
@@ -197,18 +227,26 @@ static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<
197227
ValidateFormat(src, dstFormat);
198228
unsafe
199229
{
200-
AsyncGPUReadbackRequest request = Request_Internal_Texture_7(src, mipIndex, x, width, y, height, z, depth, dstFormat, output.GetUnsafePtr(), output.Length * UnsafeUtility.SizeOf<T>());
230+
AsyncRequestNativeArrayData data = CreateAsyncRequestNativeArrayData(ref output);
231+
AsyncGPUReadbackRequest request = Request_Internal_Texture_7(src, mipIndex, x, width, y, height, z, depth, dstFormat, &data);
201232
SetUpScriptingRequest(request, callback);
202233
return request;
203234
}
204235
}
205236

206237
[NativeMethod("Request")]
207238
unsafe
208-
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_1([NotNull] ComputeBuffer buffer, void* output, int allocationSize);
239+
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_1([NotNull] ComputeBuffer buffer);
240+
[NativeMethod("Request")]
241+
unsafe
242+
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_2([NotNull] ComputeBuffer src, int size, int offset);
243+
244+
[NativeMethod("Request")]
245+
unsafe
246+
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_3([NotNull] ComputeBuffer buffer, AsyncRequestNativeArrayData* data);
209247
[NativeMethod("Request")]
210248
unsafe
211-
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_2([NotNull] ComputeBuffer src, int size, int offset, void* output, int allocationSize);
249+
static private extern AsyncGPUReadbackRequest Request_Internal_ComputeBuffer_4([NotNull] ComputeBuffer src, int size, int offset, AsyncRequestNativeArrayData* data);
212250

213251
[NativeMethod("Request")]
214252
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_1([NotNull] Texture src, int mipIndex);
@@ -221,12 +259,12 @@ static public AsyncGPUReadbackRequest RequestIntoNativeArray<T>(ref NativeArray<
221259

222260
[NativeMethod("Request")]
223261
unsafe
224-
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_5([NotNull] Texture src, int mipIndex, void* output, int allocationSize);
262+
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_5([NotNull] Texture src, int mipIndex, AsyncRequestNativeArrayData* data);
225263
[NativeMethod("Request")]
226264
unsafe
227-
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_6([NotNull] Texture src, int mipIndex, GraphicsFormat dstFormat, void* output, int allocationSize);
265+
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_6([NotNull] Texture src, int mipIndex, GraphicsFormat dstFormat, AsyncRequestNativeArrayData* data);
228266
[NativeMethod("Request")]
229267
unsafe
230-
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_7([NotNull] Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, void* output, int allocationSize);
268+
static private extern AsyncGPUReadbackRequest Request_Internal_Texture_7([NotNull] Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, AsyncRequestNativeArrayData* data);
231269
}
232270
}

0 commit comments

Comments
 (0)