void OnEnable()
        {
            mPipline      = (Pipline)(EditorPrefs.HasKey("taecg_ShaderReferencemPipline") ? EditorPrefs.GetInt("taecg_ShaderReferencemPipline") : 0);
            selectedTabID = EditorPrefs.HasKey("taecg_ShaderReferenceSelectedTabID") ? EditorPrefs.GetInt("taecg_ShaderReferenceSelectedTabID") : 0;
            FONTSIZE      = EditorPrefs.HasKey("taecg_ShaderReferenceFontSize") ? EditorPrefs.GetInt("taecg_ShaderReferenceFontSize") : 18;

            // properties = ScriptableObject.CreateInstance<ShaderReferenceProperties>();
            gpu                 = ScriptableObject.CreateInstance <ShaderReferenceGPU>();
            pipline             = ScriptableObject.CreateInstance <ShaderReferencePipline>();
            properties          = ScriptableObject.CreateInstance <ShaderReferenceProperties>();
            semantics           = ScriptableObject.CreateInstance <ShaderReferenceSemantics>();
            tags                = ScriptableObject.CreateInstance <ShaderReferenceTags>();
            renderState         = ScriptableObject.CreateInstance <ShaderReferenceRenderState>();
            pragma              = ScriptableObject.CreateInstance <ShaderReferencePragma>();
            other               = ScriptableObject.CreateInstance <ShaderReferenceOther>();
            buildInVariables    = ScriptableObject.CreateInstance <ShaderReferenceBuildInVariables>();
            transformation      = ScriptableObject.CreateInstance <ShaderReferenceTransformation>();
            predefinedMacros    = ScriptableObject.CreateInstance <ShaderReferencePredefinedMacros>();
            platformDifferences = ScriptableObject.CreateInstance <ShaderReferencePlatformDifferences>();
            lighting            = ScriptableObject.CreateInstance <ShaderReferenceLighting>();
            math                = ScriptableObject.CreateInstance <ShaderReferenceMath>();
            miscellaneous       = ScriptableObject.CreateInstance <ShaderReferenceMiscellaneous>();
            errorDebug          = ScriptableObject.CreateInstance <ShaderReferenceErrorDebug>();
            glsl                = ScriptableObject.CreateInstance <ShaderReferenceGLSL>();
            setup               = ScriptableObject.CreateInstance <ShaderReferenceSetup>();
            about               = ScriptableObject.CreateInstance <ShaderReferenceAbout>();
            search              = ScriptableObject.CreateInstance <ShaderReferenceSearch>();

            ShaderReferenceUtil.SearchDic.Clear();
        }
        void OnGUI()
        {
            DrawSearchGUI();
            //如果还没有搜索,则绘制侧边栏与显示区域
            if (string.IsNullOrEmpty(searchText))
            {
                EditorGUILayout.BeginHorizontal();
                #region [左侧边栏]
                float _width  = 150;
                float _heigth = position.height - 30;

                EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.MaxWidth(_width), GUILayout.MinHeight(_heigth));
                //渲染管线选择
                mPipline = (Pipline)EditorGUILayout.EnumPopup(mPipline);

                //功能选择
                selectedTabID = GUILayout.SelectionGrid(selectedTabID, tabNames, 1);

                //字体大小设置
                // FONTSIZE = EditorGUILayout.IntSlider ("Font Size", FONTSIZE, 16, 50);

                EditorGUILayout.EndVertical();
                #endregion

                #region  [绘制右侧内容区]
                EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.MinWidth(position.width - _width), GUILayout.MinHeight(_heigth));
                DrawMainUI(selectedTabID);
                EditorGUILayout.EndVertical();
                #endregion
                EditorGUILayout.EndVertical();
            }
            else
            {
                #region [收集信息]
                //- -!由于之前没有考虑搜索功能,所以只能在初始化时再全部画一次,以便读取所有的数据。
                GUI.BeginClip(new Rect(0, 0, 0, 0));
                if (isFirst)
                {
                    CollectionInformation();
                    isFirst = false;
                }
                GUI.EndClip();
                #endregion

                search.DrawMainGUI();
            }

            Repaint();
        }
예제 #3
0
        public void Start()
        {
            ProgressID_         = StageProgressID.Idle;
            ProgressValue_      = 0;
            ResVersionInfo_     = null;
            CurrentVersionInfo_ = null;
            ResPatchInfoList_   = null;
            CurrentPatchInfo_   = null;
            ErrorCode_          = ErrorCode.Ok;
            ErrorInfo_          = string.Empty;
            ContentInfo_        = string.Empty;

            Pipline_ = new Pipline();
            Pipline_.InitStage(this);

            Downloader.StopAllTask();
        }