| | 1 | | using System; |
| | 2 | | using UnityEngine; |
| | 3 | |
|
| | 4 | | namespace DCL |
| | 5 | | { |
| | 6 | | [System.Serializable] |
| | 7 | | public class SceneMetricsModel: IEquatable<SceneMetricsModel> |
| | 8 | | { |
| | 9 | | public int meshes; |
| | 10 | | public int bodies; |
| | 11 | | public int materials; |
| | 12 | | public int textures; |
| | 13 | | public int triangles; |
| | 14 | | public int entities; |
| | 15 | | public float sceneHeight; |
| | 16 | |
|
| | 17 | | public long textureMemoryScore; |
| | 18 | | public long meshMemoryScore; |
| | 19 | | public long audioClipMemoryScore; |
| | 20 | | public long animationClipMemoryScore; |
| | 21 | |
|
| | 22 | | public long textureMemoryProfiler; |
| | 23 | | public long meshMemoryProfiler; |
| | 24 | | public long audioClipMemoryProfiler; |
| | 25 | | public long animationClipMemoryProfiler; |
| | 26 | |
|
| | 27 | | public long totalMemoryScore => |
| 0 | 28 | | textureMemoryScore + meshMemoryScore + audioClipMemoryScore + animationClipMemoryScore; |
| | 29 | |
|
| | 30 | | public long totalMemoryProfiler => |
| 0 | 31 | | textureMemoryProfiler + meshMemoryProfiler + audioClipMemoryProfiler + animationClipMemoryProfiler; |
| | 32 | |
|
| 677 | 33 | | public SceneMetricsModel Clone() { return (SceneMetricsModel) MemberwiseClone(); } |
| | 34 | |
|
| | 35 | | public bool Equals(SceneMetricsModel obj) |
| | 36 | | { |
| 289 | 37 | | if (obj == null) |
| 0 | 38 | | return false; |
| | 39 | |
|
| 289 | 40 | | return obj.meshes == meshes && obj.bodies == bodies && obj.materials == materials && |
| | 41 | | obj.textures == textures && obj.triangles == triangles && obj.entities == entities && Mathf.Abs(obj.s |
| | 42 | | } |
| | 43 | |
|
| | 44 | | public static bool operator >(SceneMetricsModel lhs, SceneMetricsModel rhs) |
| | 45 | | { |
| 289 | 46 | | int lhsValue = lhs.meshes + lhs.bodies + lhs.materials + lhs.textures + lhs.triangles + lhs.entities; |
| 289 | 47 | | int rhsValue = rhs.meshes + rhs.bodies + rhs.materials + rhs.textures + rhs.triangles + rhs.entities; |
| | 48 | |
|
| 289 | 49 | | return lhsValue > rhsValue; |
| | 50 | | } |
| | 51 | |
|
| | 52 | | public static bool operator <(SceneMetricsModel lhs, SceneMetricsModel rhs) |
| | 53 | | { |
| 1 | 54 | | int lhsValue = lhs.meshes + lhs.bodies + lhs.materials + lhs.textures + lhs.triangles + lhs.entities; |
| 1 | 55 | | int rhsValue = rhs.meshes + rhs.bodies + rhs.materials + rhs.textures + rhs.triangles + rhs.entities; |
| | 56 | |
|
| 1 | 57 | | return lhsValue < rhsValue; |
| | 58 | | } |
| | 59 | |
|
| | 60 | | public static SceneMetricsModel operator -(SceneMetricsModel lhs, SceneMetricsModel rhs) |
| | 61 | | { |
| 1 | 62 | | SceneMetricsModel result = lhs.Clone(); |
| 1 | 63 | | result.bodies -= rhs.bodies; |
| 1 | 64 | | result.entities -= rhs.entities; |
| 1 | 65 | | result.materials -= rhs.materials; |
| 1 | 66 | | result.textures -= rhs.textures; |
| 1 | 67 | | result.meshes -= rhs.meshes; |
| 1 | 68 | | result.triangles -= rhs.triangles; |
| 1 | 69 | | result.meshMemoryScore -= rhs.meshMemoryScore; |
| 1 | 70 | | result.textureMemoryScore -= rhs.textureMemoryScore; |
| 1 | 71 | | result.animationClipMemoryScore -= rhs.animationClipMemoryScore; |
| 1 | 72 | | result.audioClipMemoryScore -= rhs.audioClipMemoryScore; |
| 1 | 73 | | result.meshMemoryProfiler -= rhs.meshMemoryProfiler; |
| 1 | 74 | | result.textureMemoryProfiler -= rhs.textureMemoryProfiler; |
| 1 | 75 | | result.animationClipMemoryProfiler -= rhs.animationClipMemoryProfiler; |
| 1 | 76 | | result.audioClipMemoryProfiler -= rhs.audioClipMemoryProfiler; |
| 1 | 77 | | return result; |
| | 78 | | } |
| | 79 | |
|
| | 80 | | public static SceneMetricsModel operator +(SceneMetricsModel lhs, SceneMetricsModel rhs) |
| | 81 | | { |
| 0 | 82 | | SceneMetricsModel result = lhs.Clone(); |
| 0 | 83 | | result.bodies += rhs.bodies; |
| 0 | 84 | | result.entities += rhs.entities; |
| 0 | 85 | | result.materials += rhs.materials; |
| 0 | 86 | | result.textures += rhs.textures; |
| 0 | 87 | | result.meshes += rhs.meshes; |
| 0 | 88 | | result.triangles += rhs.triangles; |
| 0 | 89 | | result.meshMemoryScore += rhs.meshMemoryScore; |
| 0 | 90 | | result.textureMemoryScore += rhs.textureMemoryScore; |
| 0 | 91 | | result.animationClipMemoryScore += rhs.animationClipMemoryScore; |
| 0 | 92 | | result.audioClipMemoryScore += rhs.audioClipMemoryScore; |
| 0 | 93 | | result.meshMemoryProfiler += rhs.meshMemoryProfiler; |
| 0 | 94 | | result.textureMemoryProfiler += rhs.textureMemoryProfiler; |
| 0 | 95 | | result.animationClipMemoryProfiler += rhs.animationClipMemoryProfiler; |
| 0 | 96 | | result.audioClipMemoryProfiler += rhs.audioClipMemoryProfiler; |
| 0 | 97 | | return result; |
| | 98 | | } |
| | 99 | |
|
| | 100 | | public override string ToString() |
| | 101 | | { |
| 290 | 102 | | string result = ""; |
| | 103 | |
|
| 290 | 104 | | result += $"Textures: {textures}"; |
| 290 | 105 | | result += $"- Triangles: {triangles}"; |
| 290 | 106 | | result += $"- Meshes: {meshes}"; |
| 290 | 107 | | result += $"- Materials: {materials}"; |
| 290 | 108 | | result += $"- Entities: {entities}"; |
| 290 | 109 | | result += $"- Bodies: {bodies}"; |
| 290 | 110 | | result += $"- Scene Height: {sceneHeight}"; |
| 290 | 111 | | result += $"- Mesh Memory: {meshMemoryScore}"; |
| 290 | 112 | | result += $"- Texture Memory: {textureMemoryScore}"; |
| 290 | 113 | | result += $"- Audio Memory: {audioClipMemoryScore}"; |
| 290 | 114 | | result += $"- Animation Memory: {animationClipMemoryScore}"; |
| | 115 | |
|
| 290 | 116 | | return result; |
| | 117 | | } |
| | 118 | | } |
| | 119 | | } |