diff --git a/Editor/Settings/DebugXSettings.cs b/Editor/Settings/DebugXSettings.cs index a2fb49b..4d42743 100644 --- a/Editor/Settings/DebugXSettings.cs +++ b/Editor/Settings/DebugXSettings.cs @@ -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); diff --git a/Runtime/Consts.cs b/Runtime/Consts.cs index 0b4f358..dc9dbf6 100644 --- a/Runtime/Consts.cs +++ b/Runtime/Consts.cs @@ -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; @@ -79,4 +80,25 @@ namespace DCFApixels.DebugXCore false; #endif } -} \ No newline at end of file +} + + + + +// 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 +// // ... +// } \ No newline at end of file diff --git a/Runtime/DebugX.cs b/Runtime/DebugX.cs index e505723..7bea4a4 100644 --- a/Runtime/DebugX.cs +++ b/Runtime/DebugX.cs @@ -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.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.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 _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 { diff --git a/Runtime/DebugX.globals.cs b/Runtime/DebugX.globals.cs index 8644964..7516c71 100644 --- a/Runtime/DebugX.globals.cs +++ b/Runtime/DebugX.globals.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif #if UNITY_EDITOR using UnityEditor; diff --git a/Runtime/Gizmos/DebugX.base.cs b/Runtime/Gizmos/DebugX.base.cs index ed8c7ad..e3f9db4 100644 --- a/Runtime/Gizmos/DebugX.base.cs +++ b/Runtime/Gizmos/DebugX.base.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif #if UNITY_EDITOR using UnityEditor; diff --git a/Runtime/Gizmos/DebugX.dots.cs b/Runtime/Gizmos/DebugX.dots.cs index 98b653f..2ae8d80 100644 --- a/Runtime/Gizmos/DebugX.dots.cs +++ b/Runtime/Gizmos/DebugX.dots.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using DCFApixels.DebugXCore; using UnityEngine; diff --git a/Runtime/Gizmos/DebugX.lines.cs b/Runtime/Gizmos/DebugX.lines.cs index 44c701a..996d04d 100644 --- a/Runtime/Gizmos/DebugX.lines.cs +++ b/Runtime/Gizmos/DebugX.lines.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using DCFApixels.DebugXCore; using DCFApixels.DebugXCore.Internal; diff --git a/Runtime/Gizmos/DebugX.other.cs b/Runtime/Gizmos/DebugX.other.cs index d4e874c..725df2b 100644 --- a/Runtime/Gizmos/DebugX.other.cs +++ b/Runtime/Gizmos/DebugX.other.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif #if UNITY_EDITOR using UnityEditor; diff --git a/Runtime/Gizmos/DebugX.primitives.cs b/Runtime/Gizmos/DebugX.primitives.cs index 2006674..46fb35e 100644 --- a/Runtime/Gizmos/DebugX.primitives.cs +++ b/Runtime/Gizmos/DebugX.primitives.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using DCFApixels.DebugXCore; using System; diff --git a/Runtime/Gizmos/DebugX.raycasts.cs b/Runtime/Gizmos/DebugX.raycasts.cs index 9780ff2..588761f 100644 --- a/Runtime/Gizmos/DebugX.raycasts.cs +++ b/Runtime/Gizmos/DebugX.raycasts.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using DCFApixels.DebugXCore.Internal; using UnityEngine; diff --git a/Runtime/Gizmos/Text/DebugXTextSettings.cs b/Runtime/Gizmos/Text/DebugXTextSettings.cs index 7ed0ef3..76b9da7 100644 --- a/Runtime/Gizmos/Text/DebugXTextSettings.cs +++ b/Runtime/Gizmos/Text/DebugXTextSettings.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using System; using UnityEngine; diff --git a/Runtime/Gizmos/Text/TextDrawHandlerExtensions.cs b/Runtime/Gizmos/Text/TextDrawHandlerExtensions.cs index befb7a7..b43e792 100644 --- a/Runtime/Gizmos/Text/TextDrawHandlerExtensions.cs +++ b/Runtime/Gizmos/Text/TextDrawHandlerExtensions.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif using System.Runtime.CompilerServices; using UnityEngine; diff --git a/Runtime/Gizmos/Text/TextGizmo.cs b/Runtime/Gizmos/Text/TextGizmo.cs index ab65b1c..99df5d7 100644 --- a/Runtime/Gizmos/Text/TextGizmo.cs +++ b/Runtime/Gizmos/Text/TextGizmo.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif #if UNITY_EDITOR using UnityEditor; diff --git a/Runtime/Internal/StructList.cs b/Runtime/Internal/StructList.cs index 1ac20a5..d408c25 100644 --- a/Runtime/Internal/StructList.cs +++ b/Runtime/Internal/StructList.cs @@ -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 - { - 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 : IDisposable { - //private struct Dummy : IStructListElement - //{ - // public void OnSwap(ref T element) { } - //} - //private static IStructListElement _internal = default(T) as IStructListElement ?? 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)] diff --git a/Runtime/Utils/DebugXUtility.cs b/Runtime/Utils/DebugXUtility.cs index 86bf84b..ae7a055 100644 --- a/Runtime/Utils/DebugXUtility.cs +++ b/Runtime/Utils/DebugXUtility.cs @@ -1,5 +1,6 @@ -#if DISABLE_DEBUG +#if DISABLE_DEBUGX #undef DEBUG +#undef UNITY_EDITOR #endif #if UNITY_EDITOR using UnityEditor; diff --git a/Runtime/Utils/GizmosList.cs b/Runtime/Utils/GizmosList.cs index ba161e0..ca33629 100644 --- a/Runtime/Utils/GizmosList.cs +++ b/Runtime/Utils/GizmosList.cs @@ -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;