Broken UI system
This commit is contained in:
@@ -55,6 +55,10 @@ namespace SplashEdit.RuntimeCode
|
||||
// Phase 5: Room/portal system (interior scenes)
|
||||
private PSXRoomBuilder _roomBuilder;
|
||||
|
||||
// Phase 6: UI canvases
|
||||
private PSXCanvasData[] _canvases;
|
||||
private PSXFontData[] _fonts;
|
||||
|
||||
private PSXData _psxData;
|
||||
|
||||
private Vector2 selectedResolution;
|
||||
@@ -106,9 +110,27 @@ namespace SplashEdit.RuntimeCode
|
||||
_interactables = FindObjectsByType<PSXInteractable>(FindObjectsSortMode.None);
|
||||
_audioSources = FindObjectsByType<PSXAudioSource>(FindObjectsSortMode.None);
|
||||
|
||||
// Collect UI image textures for VRAM packing alongside 3D textures
|
||||
PSXUIImage[] uiImages = FindObjectsByType<PSXUIImage>(FindObjectsSortMode.None);
|
||||
List<PSXTexture2D> uiTextures = new List<PSXTexture2D>();
|
||||
foreach (PSXUIImage img in uiImages)
|
||||
{
|
||||
if (img.SourceTexture != null)
|
||||
{
|
||||
Utils.SetTextureImporterFormat(img.SourceTexture, true);
|
||||
PSXTexture2D tex = PSXTexture2D.CreateFromTexture2D(img.SourceTexture, img.BitDepth);
|
||||
tex.OriginalTexture = img.SourceTexture;
|
||||
img.PackedTexture = tex;
|
||||
uiTextures.Add(tex);
|
||||
}
|
||||
}
|
||||
|
||||
EditorUtility.ClearProgressBar();
|
||||
|
||||
PackTextures();
|
||||
PackTextures(uiTextures);
|
||||
|
||||
// Collect UI canvases after VRAM packing (so PSXUIImage.PackedTexture has valid VRAM coords)
|
||||
_canvases = PSXUIExporter.CollectCanvases(selectedResolution, out _fonts);
|
||||
|
||||
PSXPlayer player = FindObjectsByType<PSXPlayer>(FindObjectsSortMode.None).FirstOrDefault();
|
||||
if (player != null)
|
||||
@@ -185,7 +207,7 @@ namespace SplashEdit.RuntimeCode
|
||||
#endif
|
||||
}
|
||||
|
||||
void PackTextures()
|
||||
void PackTextures(List<PSXTexture2D> additionalTextures = null)
|
||||
{
|
||||
(Rect buffer1, Rect buffer2) = Utils.BufferForResolution(selectedResolution, verticalLayout);
|
||||
|
||||
@@ -196,7 +218,7 @@ namespace SplashEdit.RuntimeCode
|
||||
}
|
||||
|
||||
VRAMPacker tp = new VRAMPacker(framebuffers, prohibitedAreas);
|
||||
var packed = tp.PackTexturesIntoVRAM(_exporters);
|
||||
var packed = tp.PackTexturesIntoVRAM(_exporters, additionalTextures);
|
||||
_exporters = packed.processedObjects;
|
||||
_atlases = packed.atlases;
|
||||
|
||||
@@ -260,6 +282,8 @@ namespace SplashEdit.RuntimeCode
|
||||
fogDensity = FogDensity,
|
||||
cutscenes = Cutscenes,
|
||||
audioSources = _audioSources,
|
||||
canvases = _canvases,
|
||||
fonts = _fonts,
|
||||
};
|
||||
|
||||
PSXSceneWriter.Write(path, in scene, (msg, type) =>
|
||||
|
||||
Reference in New Issue
Block a user