fix bug with reimport of texture

This commit is contained in:
aliaksei.kalosha
2025-04-12 01:40:06 +02:00
parent 09404e6e06
commit 87dcb1024f
3 changed files with 27 additions and 7 deletions

View File

@@ -113,11 +113,16 @@ namespace SplashEdit.EditorCode
// Retrieve all PSXObjectExporter objects and create their PSX textures. // Retrieve all PSXObjectExporter objects and create their PSX textures.
PSXObjectExporter[] objects = FindObjectsByType<PSXObjectExporter>(FindObjectsSortMode.None); PSXObjectExporter[] objects = FindObjectsByType<PSXObjectExporter>(FindObjectsSortMode.None);
foreach (PSXObjectExporter exp in objects) for (int i = 0; i < objects.Length; i++)
{ {
EditorUtility.DisplayProgressBar($"{nameof(VRAMEditorWindow)}", $"Export {nameof(PSXObjectExporter)}", ((float)i) / objects.Length);
PSXObjectExporter exp = objects[i];
exp.CreatePSXTextures2D(); exp.CreatePSXTextures2D();
} }
EditorUtility.ClearProgressBar();
// Define framebuffer regions based on selected resolution and layout. // Define framebuffer regions based on selected resolution and layout.
(Rect buffer1, Rect buffer2) = Utils.BufferForResolution(selectedResolution, verticalLayout); (Rect buffer1, Rect buffer2) = Utils.BufferForResolution(selectedResolution, verticalLayout);
@@ -157,6 +162,7 @@ namespace SplashEdit.EditorCode
} }
} }
} }
} }
private void OnGUI() private void OnGUI()

View File

@@ -34,18 +34,24 @@ namespace SplashEdit.RuntimeCode
_psxData = DataStorage.LoadData(out selectedResolution, out dualBuffering, out verticalLayout, out prohibitedAreas); _psxData = DataStorage.LoadData(out selectedResolution, out dualBuffering, out verticalLayout, out prohibitedAreas);
_exporters = FindObjectsByType<PSXObjectExporter>(FindObjectsSortMode.None); _exporters = FindObjectsByType<PSXObjectExporter>(FindObjectsSortMode.None);
foreach (PSXObjectExporter exp in _exporters) for (int i = 0; i < _exporters.Length; i++)
{ {
PSXObjectExporter exp = _exporters[i];
EditorUtility.DisplayProgressBar($"{nameof(PSXSceneExporter)}", $"Export {nameof(PSXObjectExporter)}", ((float)i)/ _exporters.Length);
exp.CreatePSXTextures2D(); exp.CreatePSXTextures2D();
exp.CreatePSXMesh(GTEScaling); exp.CreatePSXMesh(GTEScaling);
} }
_navmeshes = FindObjectsByType<PSXNavMesh>(FindObjectsSortMode.None); _navmeshes = FindObjectsByType<PSXNavMesh>(FindObjectsSortMode.None);
foreach (PSXNavMesh navmesh in _navmeshes) for (int i = 0; i < _navmeshes.Length; i++)
{ {
PSXNavMesh navmesh = _navmeshes[i];
EditorUtility.DisplayProgressBar($"{nameof(PSXSceneExporter)}", $"Export {nameof(PSXNavMesh)}", ((float)i) / _navmeshes.Length);
navmesh.CreateNavmesh(GTEScaling); navmesh.CreateNavmesh(GTEScaling);
} }
EditorUtility.ClearProgressBar();
PackTextures(); PackTextures();
PSXPlayer player = FindObjectsByType<PSXPlayer>(FindObjectsSortMode.None).FirstOrDefault(); PSXPlayer player = FindObjectsByType<PSXPlayer>(FindObjectsSortMode.None).FirstOrDefault();

View File

@@ -342,19 +342,27 @@ namespace SplashEdit.RuntimeCode
} }
string assetPath = AssetDatabase.GetAssetPath(texture); string assetPath = AssetDatabase.GetAssetPath(texture);
var tImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter; var tImporter = AssetImporter.GetAtPath(assetPath) as TextureImporter;
bool needReimport = false;
if (tImporter != null) if (tImporter != null)
{ {
if (tImporter.maxTextureSize > MaxTextureSize) if (tImporter.maxTextureSize > MaxTextureSize)
{ {
tImporter.maxTextureSize = MaxTextureSize; tImporter.maxTextureSize = MaxTextureSize;
needReimport = true;
} }
if (tImporter.isReadable != isReadable)
{
tImporter.isReadable = isReadable; tImporter.isReadable = isReadable;
needReimport = true;
}
if (needReimport)
{
AssetDatabase.ImportAsset(assetPath); AssetDatabase.ImportAsset(assetPath);
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
} }
} }
}
} }