public override void OnEnable() { var target = (IHVImageFormatImporter)base.target; var assetTarget = base.assetTarget; assetPath = AssetDatabase.GetAssetPath(assetTarget); importerIsSRGB = serializedObject.FindProperty("m_sRGBTexture"); textureData = ParseTextureData(target.userData); switch (System.IO.Path.GetExtension(assetPath).ToLower()) { case ".dds": if ((base.assetTarget as Texture) == null) { inspectorType = InspectorType.Failed; } else { inspectorType = InspectorType.DDS; } break; default: defaultEditor = Editor.CreateEditor(target); inspectorType = InspectorType.Default; break; } }
public override void OnPreviewGUI(Rect r, GUIStyle background) { switch (inspectorType) { case InspectorType.Default: break; default: var target = (Texture2D)base.target; // I fiercely hate doing this, but I can't figure out another way. textureData = ParseTextureData(assetImporter.userData); switch (textureData.textureType) { case FoxLib.GrTexture.TextureType.SRGB: sRGBPreviewMaterial.SetFloat(mipLevelPropertyID, mipLevel); sRGBPreviewMaterial.SetInt(sRGBAlphaPropertyID, sRGBOptionIndex); EditorGUI.DrawPreviewTexture(r, target, sRGBPreviewMaterial, ScaleMode.ScaleToFit, 0); break; case FoxLib.GrTexture.TextureType.Normal: normalMaterial = normalOptionIndex > 0 ? defaultPreviewMaterial : normalPreviewMaterial; normalMaterial.SetFloat(mipLevelPropertyID, mipLevel); EditorGUI.DrawPreviewTexture(r, target, normalMaterial, ScaleMode.ScaleToFit, 0); break; case FoxLib.GrTexture.TextureType.Linear: linearPreviewMaterial.SetFloat(mipLevelPropertyID, mipLevel); EditorGUI.DrawPreviewTexture(r, target, linearPreviewMaterial, ScaleMode.ScaleToFit, 0); break; default: sRGBPreviewMaterial.SetFloat(mipLevelPropertyID, mipLevel); EditorGUI.DrawPreviewTexture(r, target, sRGBPreviewMaterial, ScaleMode.ScaleToFit, 0); break; } break; } return; }
private void OnEnable() { GUI.enabled = true; var target = base.target; var assetPath = AssetDatabase.GetAssetPath(target); assetImporter = AssetImporter.GetAtPath(assetPath); serializedImporter = new SerializedObject(assetImporter); switch (System.IO.Path.GetExtension(assetPath).ToLower()) { case ".ftex": inspectorType = InspectorType.FTEX; break; case ".asset": inspectorType = InspectorType.DDS; break; default: defaultEditor = Editor.CreateEditor(assetImporter); inspectorType = InspectorType.Default; break; } switch (inspectorType) { case InspectorType.FTEX: case InspectorType.DDS: textureData = ParseTextureData(assetImporter.userData); flatPreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/3D/Flat")); slicePreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/3D/Slice")); previewLabel = CreatePreviewLabelStyle(); //new GUIStyle("preLabel"); previewSlider = CreatePreviewSliderStyle(); //"preSlider"; previewSliderThumbnail = CreatePreviewSliderThumbnailStyle(); //"preSliderThumb"; break; } }
private void OnEnable() { var target = base.target; var assetPath = AssetDatabase.GetAssetPath(target); assetImporter = AssetImporter.GetAtPath(assetPath); switch (System.IO.Path.GetExtension(assetPath).ToLower()) { case ".ftex": inspectorType = InspectorType.FTEX; break; case ".dds": inspectorType = InspectorType.DDS; break; default: inspectorType = InspectorType.Default; break; } switch (inspectorType) { case InspectorType.FTEX: case InspectorType.DDS: textureData = ParseTextureData(assetImporter.userData); sRGBPreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/2D/sRGB")); normalPreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/2D/Normal")); linearPreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/2D/Linear")); defaultPreviewMaterial = new Material(Shader.Find("Hidden/FoxKit/GrTexturePreviews/2D/Default")); smallZoom = EditorGUIUtility.IconContent("PreTextureMipMapLow"); previewLabel = CreatePreviewLabelStyle(); //new GUIStyle("preLabel"); previewSlider = CreatePreviewSliderStyle(); //"preSlider"; previewSliderThumbnail = CreatePreviewSliderThumbnailStyle(); //"preSliderThumb"; largeZoom = EditorGUIUtility.IconContent("PreTextureMipMapHigh"); break; } }
public static string CreateTextureData(GrTextureUserData userData) { return("NrtFlag: " + userData.nrtFlag + ", TextureType: " + userData.textureType + ", UnknownFlags: " + userData.unknownFlags); }