Пример #1
0
        private void DrawCurrentEvent(Rect rect, FrameDebuggerEvent[] descs)
        {
            int num = FrameDebuggerUtility.limit - 1;

            if (num >= 0 && num < descs.Length)
            {
                GUILayout.BeginArea(rect);
                FrameDebuggerEvent     frameDebuggerEvent = descs[num];
                FrameDebuggerEventData frameDebuggerEventData;
                bool frameEventData = FrameDebuggerUtility.GetFrameEventData(num, out frameDebuggerEventData);
                if (frameEventData)
                {
                    this.DrawRenderTargetControls(frameDebuggerEventData);
                }
                GUILayout.Label(string.Format("Event #{0}: {1}", num + 1, FrameDebuggerWindow.s_FrameEventTypeNames[(int)frameDebuggerEvent.type]), EditorStyles.boldLabel, new GUILayoutOption[0]);
                if (FrameDebuggerUtility.IsRemoteEnabled() && FrameDebuggerUtility.receivingRemoteFrameEventData)
                {
                    GUILayout.Label("Receiving frame event data...", new GUILayoutOption[0]);
                }
                else if (frameEventData)
                {
                    if (frameDebuggerEventData.vertexCount > 0 || frameDebuggerEventData.indexCount > 0)
                    {
                        this.DrawEventDrawCallInfo(frameDebuggerEventData);
                    }
                    else if (frameDebuggerEvent.type == FrameEventType.ComputeDispatch)
                    {
                        this.DrawEventComputeDispatchInfo(frameDebuggerEventData);
                    }
                }
                GUILayout.EndArea();
            }
        }
Пример #2
0
        private void DrawCurrentEvent(Rect rect, FrameDebuggerEvent[] descs)
        {
            int index = FrameDebuggerUtility.limit - 1;

            if (index < 0 || index >= descs.Length)
            {
                return;
            }
            GUILayout.BeginArea(rect);
            FrameDebuggerEvent     desc = descs[index];
            FrameDebuggerEventData frameDebuggerEventData;
            bool frameEventData = FrameDebuggerUtility.GetFrameEventData(index, out frameDebuggerEventData);

            if (frameEventData)
            {
                this.DrawRenderTargetControls(frameDebuggerEventData);
            }
            GUILayout.Label(string.Format("Event #{0}: {1}", (object)(index + 1), (object)FrameDebuggerWindow.s_FrameEventTypeNames[(int)desc.type]), EditorStyles.boldLabel, new GUILayoutOption[0]);
            if (FrameDebuggerUtility.IsRemoteEnabled() && FrameDebuggerUtility.receivingRemoteFrameEventData)
            {
                GUILayout.Label("Receiving frame event data...");
            }
            else if (frameEventData && (frameDebuggerEventData.vertexCount > 0 || frameDebuggerEventData.indexCount > 0))
            {
                Shader shader          = frameDebuggerEventData.shader;
                int    shaderPassIndex = frameDebuggerEventData.shaderPassIndex;
                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Shader: " + frameDebuggerEventData.shaderName + " pass #" + (object)shaderPassIndex, GUI.skin.label, new GUILayoutOption[1] {
                    GUILayout.ExpandWidth(false)
                }))
                {
                    EditorGUIUtility.PingObject((UnityEngine.Object)shader);
                    Event.current.Use();
                }
                GUILayout.Label(frameDebuggerEventData.shaderKeywords, EditorStyles.miniLabel, new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                this.DrawStates(frameDebuggerEventData);
                GUILayout.Space(15f);
                this.m_AdditionalInfo = (ShowAdditionalInfo)GUILayout.Toolbar((int)this.m_AdditionalInfo, this.m_AdditionalInfoGuiContents);
                switch (this.m_AdditionalInfo)
                {
                case ShowAdditionalInfo.Preview:
                    if (frameEventData && !this.DrawEventMesh(frameDebuggerEventData))
                    {
                        GUILayout.Label("Vertices: " + (object)frameDebuggerEventData.vertexCount);
                        GUILayout.Label("Indices: " + (object)frameDebuggerEventData.indexCount);
                        break;
                    }
                    break;

                case ShowAdditionalInfo.ShaderProperties:
                    if (frameEventData)
                    {
                        this.DrawShaderProperties(frameDebuggerEventData.shaderProperties);
                        break;
                    }
                    break;
                }
            }
            GUILayout.EndArea();
        }
        private void DrawCurrentEvent(Rect rect, FrameDebuggerEvent[] descs)
        {
            int num = FrameDebuggerUtility.limit - 1;

            if (num < 0 || num >= descs.Length)
            {
                return;
            }
            GUILayout.BeginArea(rect);
            FrameDebuggerEvent     frameDebuggerEvent = descs[num];
            FrameDebuggerEventData frameDebuggerEventData;
            bool frameEventData = FrameDebuggerUtility.GetFrameEventData(num, out frameDebuggerEventData);

            if (frameEventData)
            {
                this.DrawRenderTargetControls(frameDebuggerEventData);
            }
            GUILayout.Label(string.Format("Event #{0}: {1}", num + 1, FrameDebuggerWindow.s_FrameEventTypeNames[(int)frameDebuggerEvent.type]), EditorStyles.boldLabel, new GUILayoutOption[0]);
            if (FrameDebuggerUtility.IsRemoteEnabled() && FrameDebuggerUtility.receivingRemoteFrameEventData)
            {
                GUILayout.Label("Receiving frame event data...", new GUILayoutOption[0]);
            }
            else if (frameEventData && (frameDebuggerEventData.vertexCount > 0 || frameDebuggerEventData.indexCount > 0))
            {
                Shader shader          = frameDebuggerEventData.shader;
                int    shaderPassIndex = frameDebuggerEventData.shaderPassIndex;
                GUILayout.BeginHorizontal(new GUILayoutOption[0]);
                if (GUILayout.Button(string.Concat(new object[]
                {
                    "Shader: ",
                    frameDebuggerEventData.shaderName,
                    " pass #",
                    shaderPassIndex
                }), GUI.skin.label, new GUILayoutOption[]
                {
                    GUILayout.ExpandWidth(false)
                }))
                {
                    EditorGUIUtility.PingObject(shader);
                    Event.current.Use();
                }
                GUILayout.Label(frameDebuggerEventData.shaderKeywords, EditorStyles.miniLabel, new GUILayoutOption[0]);
                GUILayout.EndHorizontal();
                this.DrawStates(frameDebuggerEventData);
                GUILayout.Space(15f);
                this.m_AdditionalInfo = (ShowAdditionalInfo)GUILayout.Toolbar((int)this.m_AdditionalInfo, this.m_AdditionalInfoGuiContents, new GUILayoutOption[0]);
                ShowAdditionalInfo additionalInfo = this.m_AdditionalInfo;
                if (additionalInfo != ShowAdditionalInfo.Preview)
                {
                    if (additionalInfo == ShowAdditionalInfo.ShaderProperties)
                    {
                        if (frameEventData)
                        {
                            this.DrawShaderProperties(frameDebuggerEventData.shaderProperties);
                        }
                    }
                }
                else if (frameEventData)
                {
                    if (!this.DrawEventMesh(frameDebuggerEventData))
                    {
                        GUILayout.Label("Vertices: " + frameDebuggerEventData.vertexCount, new GUILayoutOption[0]);
                        GUILayout.Label("Indices: " + frameDebuggerEventData.indexCount, new GUILayoutOption[0]);
                    }
                }
            }
            GUILayout.EndArea();
        }