-
Notifications
You must be signed in to change notification settings - Fork 867
Expand file tree
/
Copy pathSceneViewDrawMode.cs
More file actions
57 lines (49 loc) · 2.14 KB
/
SceneViewDrawMode.cs
File metadata and controls
57 lines (49 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#if UNITY_EDITOR
using System.Collections.Generic;
using System.Collections;
namespace UnityEditor.Rendering.Universal
{
internal static class SceneViewDrawMode
{
static HashSet<SceneView> sceneViewHaveValidateFunction = new HashSet<SceneView>();
static bool RejectDrawMode(SceneView.CameraMode cameraMode)
{
return cameraMode.drawMode != DrawCameraMode.ShadowCascades &&
cameraMode.drawMode != DrawCameraMode.RenderPaths &&
cameraMode.drawMode != DrawCameraMode.AlphaChannel &&
cameraMode.drawMode != DrawCameraMode.Overdraw &&
cameraMode.drawMode != DrawCameraMode.Mipmaps &&
cameraMode.drawMode != DrawCameraMode.SpriteMask &&
cameraMode.drawMode != DrawCameraMode.DeferredDiffuse &&
cameraMode.drawMode != DrawCameraMode.DeferredSpecular &&
cameraMode.drawMode != DrawCameraMode.DeferredSmoothness &&
cameraMode.drawMode != DrawCameraMode.DeferredNormal &&
cameraMode.drawMode != DrawCameraMode.ValidateAlbedo &&
cameraMode.drawMode != DrawCameraMode.ValidateMetalSpecular &&
cameraMode.drawMode != DrawCameraMode.TextureStreaming;
}
static void UpdateSceneViewStates()
{
foreach (SceneView sceneView in SceneView.sceneViews)
{
if (sceneViewHaveValidateFunction.Contains(sceneView))
continue;
sceneView.onValidateCameraMode += RejectDrawMode;
sceneViewHaveValidateFunction.Add(sceneView);
}
}
public static void SetupDrawMode()
{
EditorApplication.update -= UpdateSceneViewStates;
EditorApplication.update += UpdateSceneViewStates;
}
public static void ResetDrawMode()
{
EditorApplication.update -= UpdateSceneViewStates;
foreach (var sceneView in sceneViewHaveValidateFunction)
sceneView.onValidateCameraMode -= RejectDrawMode;
sceneViewHaveValidateFunction.Clear();
}
}
}
#endif