mirror of
https://github.com/drewcassidy/KSP-Conformal-Decals.git
synced 2024-09-01 18:23:54 +00:00
Fix corrupted text rendering
Fix text corruption when rendering text right after a scene change by delaying it by a single frame in OnLoad
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
using System.Collections;
|
||||
using ConformalDecals.MaterialProperties;
|
||||
using ConformalDecals.Text;
|
||||
using ConformalDecals.UI;
|
||||
@ -99,7 +100,15 @@ namespace ConformalDecals {
|
||||
base.OnLoad(node);
|
||||
OnAfterDeserialize();
|
||||
|
||||
UpdateTextRecursive();
|
||||
if (HighLogic.LoadedSceneIsGame) {
|
||||
// For some reason, rendering doesnt work right on the first frame a scene is loaded
|
||||
// So delay any rendering until the next frame when called in OnLoad
|
||||
// This is probably a problem with Unity, not KSP
|
||||
StartCoroutine(UpdateTextLate());
|
||||
}
|
||||
else {
|
||||
UpdateText();
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnSave(ConfigNode node) {
|
||||
@ -107,12 +116,6 @@ namespace ConformalDecals {
|
||||
base.OnSave(node);
|
||||
}
|
||||
|
||||
public override void OnStart(StartState state) {
|
||||
base.OnStart(state);
|
||||
|
||||
UpdateTextRecursive();
|
||||
}
|
||||
|
||||
public override void OnAwake() {
|
||||
base.OnAwake();
|
||||
|
||||
@ -210,7 +213,7 @@ namespace ConformalDecals {
|
||||
public void OnAfterDeserialize() {
|
||||
_font = DecalConfig.GetFont(fontName);
|
||||
_style = new DecalTextStyle((FontStyles) style, vertical, lineSpacing, charSpacing);
|
||||
|
||||
|
||||
if (!ParseUtil.TryParseColor32(fillColor, out _fillColor)) {
|
||||
Logging.LogWarning($"Improperly formatted color value for fill: '{fillColor}'");
|
||||
_fillColor = Color.magenta;
|
||||
@ -252,6 +255,11 @@ namespace ConformalDecals {
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator UpdateTextLate() {
|
||||
yield return null;
|
||||
UpdateText();
|
||||
}
|
||||
|
||||
private void UpdateText() {
|
||||
// Render text
|
||||
var newText = new DecalText(text, _font, _style);
|
||||
|
@ -257,6 +257,7 @@ namespace ConformalDecals.Text {
|
||||
Graphics.SetRenderTarget(renderTex);
|
||||
GL.PushMatrix();
|
||||
GL.LoadProjectionMatrix(matrix);
|
||||
GL.LoadIdentity();
|
||||
GL.Clear(false, true, Color.black);
|
||||
|
||||
for (var i = 0; i < meshes.Length; i++) {
|
||||
|
Reference in New Issue
Block a user