add check to not recalculate the same textures twice
This commit is contained in:
@@ -19,8 +19,11 @@ namespace SplashEdit.RuntimeCode
|
||||
Renderer renderer = GetComponent<Renderer>();
|
||||
if (renderer.sharedMaterial != null && renderer.sharedMaterial.mainTexture is Texture2D texture)
|
||||
{
|
||||
Texture = PSXTexture2D.CreateFromTexture2D(texture, BitDepth);
|
||||
Texture.OriginalTexture = texture; // Stores reference to the original texture
|
||||
if (Texture == null || Texture.NeedUpdate(BitDepth, texture))
|
||||
{
|
||||
Texture = PSXTexture2D.CreateFromTexture2D(texture, BitDepth);
|
||||
Texture.OriginalTexture = texture; // Stores reference to the original texture
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -275,5 +276,15 @@ namespace SplashEdit.RuntimeCode
|
||||
return vramTexture;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Check if we need to update stored texture
|
||||
/// </summary>
|
||||
/// <param name="bitDepth">new settings for color bit depth</param>
|
||||
/// <param name="texture">new texture</param>
|
||||
/// <returns>return true if sored texture is different from a new one</returns>
|
||||
internal bool NeedUpdate(PSXBPP bitDepth, Texture2D texture)
|
||||
{
|
||||
return BitDepth != bitDepth || texture.GetInstanceID() != texture.GetInstanceID();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user