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 OnEnable()
 {
     // selectedTabID = EditorPrefs.HasKey(mPrefName + "selectedTabID") ? EditorPrefs.GetInt(mPrefName + "selectedTabID") : 0;
     // 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>();
     math             = ScriptableObject.CreateInstance <ShaderReferenceMath>();
     miscellaneous    = ScriptableObject.CreateInstance <ShaderReferenceMiscellaneous>();
     about            = ScriptableObject.CreateInstance <ShaderReferenceAbout>();
 }