mirror of
https://github.com/DCFApixels/Unity-DebugX.git
synced 2026-04-22 04:45:54 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2de8dae2f9 | ||
|
|
866a085dce |
@ -1,4 +1,5 @@
|
||||
#if UNITY_EDITOR
|
||||
#pragma warning disable CS0162 // Обнаружен недостижимый код
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
using UnityEditor.Compilation;
|
||||
using UnityEngine;
|
||||
@ -12,28 +13,26 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
{
|
||||
DebugXSettings window = (DebugXSettings)EditorWindow.GetWindow(typeof(DebugXSettings));
|
||||
window.Show();
|
||||
//window._isHasDisableDebugXInBuildSymbols = null;
|
||||
CompilationPipeline.compilationFinished -= CompilationPipeline_compilationFinished;
|
||||
CompilationPipeline.compilationFinished += CompilationPipeline_compilationFinished;
|
||||
}
|
||||
|
||||
private static void CompilationPipeline_compilationFinished(object obj)
|
||||
{
|
||||
//_isCompilation = false;
|
||||
_defines = null;
|
||||
}
|
||||
|
||||
//private static bool _isCompilation;
|
||||
//private bool? _isHasDisableDebugXInBuildSymbols = false;
|
||||
//private const string DEFINE_NAME = nameof(DebugXDefines.DEBUGX_DISABLE_INBUILD);
|
||||
private static (string name, bool flag)[] _defines = null;
|
||||
private static Vector2 _pos;
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (DebugXDefines.DISABLE_DEBUGX)
|
||||
{
|
||||
GUI.enabled = false;
|
||||
}
|
||||
_pos = GUILayout.BeginScrollView(_pos, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
|
||||
float tmpFloat;
|
||||
int tmpInt;
|
||||
|
||||
DebugX.GlobalTimeScale = EditorGUILayout.FloatField("TimeScale", DebugX.GlobalTimeScale);
|
||||
EditorGUI.BeginChangeCheck();
|
||||
@ -77,7 +76,10 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
{
|
||||
DebugX.ClearAllGizmos();
|
||||
}
|
||||
|
||||
if (DebugXDefines.DISABLE_DEBUGX)
|
||||
{
|
||||
GUI.enabled = true;
|
||||
}
|
||||
GUILayout.Space(4);
|
||||
|
||||
GUILayout.BeginVertical(EditorStyles.helpBox);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
@ -54,8 +55,8 @@ namespace DCFApixels.DebugXCore
|
||||
{
|
||||
public static class DebugXDefines
|
||||
{
|
||||
public const bool DISABLE_DEBUG =
|
||||
#if DISABLE_DEBUG
|
||||
public const bool DISABLE_DEBUGX =
|
||||
#if DISABLE_DEBUGX
|
||||
true;
|
||||
#else
|
||||
false;
|
||||
@ -80,3 +81,24 @@ namespace DCFApixels.DebugXCore
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Example of DefineConstsType
|
||||
// public static class SomeDefineConstsType
|
||||
// {
|
||||
// public const bool SOME_DEFINE_1 =
|
||||
// #if SOME_DEFINE_1
|
||||
// true;
|
||||
// #else
|
||||
// false;
|
||||
// #endif
|
||||
// public const bool SOME_DEFINE_2 =
|
||||
// #if SOME_DEFINE_2
|
||||
// true;
|
||||
// #else
|
||||
// false;
|
||||
// #endif
|
||||
// // ...
|
||||
// }
|
||||
@ -1,8 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#endif
|
||||
#if DEBUG
|
||||
#define DEV_MODE
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
@ -16,9 +14,9 @@ using UnityEngine.LowLevel;
|
||||
using UnityEngine.PlayerLoop;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using DCFApixels.DebugXCore.Internal;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Buffers;
|
||||
|
||||
namespace DCFApixels
|
||||
{
|
||||
@ -46,19 +44,26 @@ namespace DCFApixels
|
||||
{
|
||||
var invocationList = eventToClean.GetInvocationList();
|
||||
|
||||
var validDelegates = invocationList
|
||||
.Where(d => d.Target as UnityEngine.Object == null || d.Target as UnityEngine.Object != null)
|
||||
.Where(d => !(d.Target is UnityEngine.Object targetObj) || targetObj != null)
|
||||
.ToArray();
|
||||
var buffer = ArrayPool<Delegate>.Shared.Rent(invocationList.Length);
|
||||
var bufferCount = 0;
|
||||
foreach (var invocation in invocationList)
|
||||
{
|
||||
if(!(invocation.Target is UnityEngine.Object targetObj) || targetObj != null)
|
||||
{
|
||||
buffer[bufferCount++] = invocation;
|
||||
}
|
||||
}
|
||||
|
||||
if (validDelegates.Length != invocationList.Length)
|
||||
if (bufferCount != invocationList.Length)
|
||||
{
|
||||
eventToClean = null;
|
||||
foreach (var delegateItem in validDelegates)
|
||||
for (int i = 0; i < bufferCount; i++)
|
||||
{
|
||||
eventToClean += (OnDrawGizmoHandler)delegateItem;
|
||||
eventToClean += (OnDrawGizmoHandler)buffer[i];
|
||||
}
|
||||
}
|
||||
|
||||
ArrayPool<Delegate>.Shared.Return(buffer);
|
||||
}
|
||||
|
||||
internal static void CleanupOnDrawGizmo()
|
||||
@ -85,7 +90,7 @@ namespace DCFApixels
|
||||
private static ulong _timeTicks = 0;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private static readonly Unity.Profiling.ProfilerMarker _onDrawGizmoCalllback = new Unity.Profiling.ProfilerMarker($"{nameof(DebugX)}.{nameof(DebugXEvents.OnDrawGizmo)}");
|
||||
private static readonly Unity.Profiling.ProfilerMarker _onDrawGizmoCallback = new Unity.Profiling.ProfilerMarker($"{nameof(DebugX)}.{nameof(DebugXEvents.OnDrawGizmo)}");
|
||||
#endif
|
||||
|
||||
public static ulong RenderTicks
|
||||
@ -121,6 +126,7 @@ namespace DCFApixels
|
||||
#region ctor
|
||||
static DebugX()
|
||||
{
|
||||
#if UNITY_EDITOR || !DEBUGX_DISABLE_INBUILD
|
||||
InitGlobals();
|
||||
|
||||
if (IsSRP)
|
||||
@ -166,7 +172,7 @@ namespace DCFApixels
|
||||
|
||||
//Application.onBeforeRender -= Application_onBeforeRender;
|
||||
//Application.onBeforeRender += Application_onBeforeRender;
|
||||
|
||||
#endif
|
||||
|
||||
#if UNITY_EDITOR
|
||||
EditorApplication.pauseStateChanged -= EditorApplication_pauseStateChanged;
|
||||
@ -371,7 +377,7 @@ namespace DCFApixels
|
||||
if (DebugXUtility.IsGizmosRender())
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
using (_onDrawGizmoCalllback.Auto())
|
||||
using (_onDrawGizmoCallback.Auto())
|
||||
#endif
|
||||
{
|
||||
DebugXEvents.InvokeOnDrawGizmo(camera);
|
||||
@ -702,7 +708,7 @@ namespace DCFApixels
|
||||
private readonly IGizmoRenderer_PostRender<T> _rendererUnityGizmos;
|
||||
private readonly bool _isStatic;
|
||||
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
private static readonly Unity.Profiling.ProfilerMarker _timerMarker = new Unity.Profiling.ProfilerMarker($"{DebugXUtility.GetGenericTypeName(typeof(T), 3, false)}.{nameof(UpdateTimer)}");
|
||||
private static readonly Unity.Profiling.ProfilerMarker _prepareMarker = new Unity.Profiling.ProfilerMarker($"{DebugXUtility.GetGenericTypeName(typeof(T), 3, false)}.{nameof(Prepare)}");
|
||||
private static readonly Unity.Profiling.ProfilerMarker _renderMarker = new Unity.Profiling.ProfilerMarker($"{DebugXUtility.GetGenericTypeName(typeof(T), 3, false)}.{nameof(Render)}");
|
||||
@ -758,7 +764,7 @@ namespace DCFApixels
|
||||
{
|
||||
_staticCommandBuffer.Clear();
|
||||
int removeCount = 0;
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
using (_timerMarker.Auto())
|
||||
#endif
|
||||
{
|
||||
@ -781,7 +787,7 @@ namespace DCFApixels
|
||||
public sealed override int RunEnd()
|
||||
{
|
||||
int removeCount = 0;
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
using (_timerMarker.Auto())
|
||||
#endif
|
||||
{
|
||||
@ -814,7 +820,7 @@ namespace DCFApixels
|
||||
public override void Prepare()
|
||||
{
|
||||
if (_gizmos.Count <= 0) { return; }
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
using (_prepareMarker.Auto())
|
||||
#endif
|
||||
{
|
||||
@ -834,7 +840,7 @@ namespace DCFApixels
|
||||
public override void Render(ICommandBufferExecutor cbExecutor)
|
||||
{
|
||||
if (_gizmos.Count <= 0) { return; }
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
using (_renderMarker.Auto())
|
||||
#endif
|
||||
{
|
||||
@ -857,7 +863,7 @@ namespace DCFApixels
|
||||
if (_rendererUnityGizmos == null) { return; }
|
||||
//Debug.Log(_gizmos._count);
|
||||
if (_gizmos.Count <= 0) { return; }
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
using (_renderMarker.Auto())
|
||||
#endif
|
||||
{
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using DCFApixels.DebugXCore;
|
||||
using UnityEngine;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using DCFApixels.DebugXCore;
|
||||
using DCFApixels.DebugXCore.Internal;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using DCFApixels.DebugXCore;
|
||||
using System;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using DCFApixels.DebugXCore.Internal;
|
||||
using UnityEngine;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
|
||||
@ -1,8 +1,4 @@
|
||||
#undef DEBUG
|
||||
|
||||
#if DEBUG
|
||||
#define DEV_MODE
|
||||
#endif
|
||||
using System;
|
||||
using System.Buffers;
|
||||
using System.Collections.Generic;
|
||||
@ -13,10 +9,6 @@ using static DCFApixels.DebugX;
|
||||
namespace DCFApixels.DebugXCore.Internal
|
||||
{
|
||||
using IN = System.Runtime.CompilerServices.MethodImplAttribute;
|
||||
internal interface IStructListElement<T>
|
||||
{
|
||||
void OnSwap(ref T element);
|
||||
}
|
||||
[System.Diagnostics.DebuggerDisplay("Count: {Count}")]
|
||||
internal struct StructList
|
||||
{
|
||||
@ -42,11 +34,6 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
[System.Diagnostics.DebuggerDisplay("Count: {Count}")]
|
||||
internal struct StructList<T> : IDisposable
|
||||
{
|
||||
//private struct Dummy : IStructListElement<T>
|
||||
//{
|
||||
// public void OnSwap(ref T element) { }
|
||||
//}
|
||||
//private static IStructListElement<T> _internal = default(T) as IStructListElement<T> ?? default(Dummy);
|
||||
internal T[] _items;
|
||||
internal int _count;
|
||||
internal readonly bool _isUseArrayPool;
|
||||
@ -76,7 +63,7 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
[IN(LINE)]
|
||||
get
|
||||
{
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
if (index < 0 || index >= _count) { new ArgumentOutOfRangeException(); }
|
||||
#endif
|
||||
return _items[index];
|
||||
@ -84,7 +71,7 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
[IN(LINE)]
|
||||
set
|
||||
{
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
if (index < 0 || index >= _count) { new ArgumentOutOfRangeException(); }
|
||||
#endif
|
||||
_items[index] = value;
|
||||
@ -117,7 +104,6 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
public void Add(T item)
|
||||
{
|
||||
UpSize(_count + 1);
|
||||
//_internal.OnSwap(ref item);
|
||||
_items[_count++] = item;
|
||||
}
|
||||
[IN(LINE)]
|
||||
@ -126,7 +112,6 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
UpSize(_count + items.Length);
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
//_internal.OnSwap(ref item);
|
||||
_items[_count++] = items[i];
|
||||
}
|
||||
}
|
||||
@ -161,38 +146,33 @@ namespace DCFApixels.DebugXCore.Internal
|
||||
T tmp = _items[idnex1];
|
||||
_items[idnex1] = _items[idnex2];
|
||||
_items[idnex2] = tmp;
|
||||
//_internal.OnSwap(ref _items[idnex1]);
|
||||
//_internal.OnSwap(ref _items[idnex2]);
|
||||
}
|
||||
[IN(LINE)]
|
||||
public void FastRemoveAt(int index)
|
||||
{
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
if (index < 0 || index >= _count) { new ArgumentOutOfRangeException(); }
|
||||
#endif
|
||||
_items[index] = _items[--_count];
|
||||
//_internal.OnSwap(ref _items[index]);
|
||||
}
|
||||
[IN(LINE)]
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
if (index < 0 || index >= _count) { new ArgumentOutOfRangeException(); }
|
||||
#endif
|
||||
_items[index] = _items[--_count];
|
||||
//_internal.OnSwap(ref _items[index]);
|
||||
_items[_count] = default;
|
||||
}
|
||||
[IN(LINE)]
|
||||
public void RemoveAtWithOrder(int index)
|
||||
{
|
||||
#if DEV_MODE
|
||||
#if DEBUG
|
||||
if (index < 0 || index >= _count) { new ArgumentOutOfRangeException(); }
|
||||
#endif
|
||||
for (int i = index; i < _count; i++)
|
||||
{
|
||||
_items[i] = _items[i + 1];
|
||||
//_internal.OnSwap(ref _items[i]);
|
||||
}
|
||||
}
|
||||
[IN(LINE)]
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
#if DISABLE_DEBUG
|
||||
#if DISABLE_DEBUGX
|
||||
#undef DEBUG
|
||||
#endif
|
||||
#if DEBUG
|
||||
#define DEV_MODE
|
||||
#undef UNITY_EDITOR
|
||||
#endif
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
"displayName": "DebugX",
|
||||
"description": "",
|
||||
"unity": "2021.3",
|
||||
"version": "0.8.15",
|
||||
"version": "0.8.16",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DCFApixels/DebugX.git"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user