From 1ebed608a8209fbcf583a8cdfb519eb3951df04b Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sun, 11 Oct 2020 03:05:07 -0700 Subject: [PATCH] Fix corrupted text rendering Fix text corruption when rendering text right after a scene change by delaying it by a single frame in OnLoad --- .../Plugins/ConformalDecals.dll | Bin 82944 -> 83456 bytes .../Versioning/ConformalDecals.version | 2 +- README.md | 2 +- Source/ConformalDecals/ModuleConformalText.cs | 24 ++++++++++++------ Source/ConformalDecals/Text/TextRenderer.cs | 1 + changelog.txt | 9 +++++-- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index ed08705a543423a4856d5b7224620d1c1fbd5901..74d53ee48dc8258813794f31a2137451846c4320 100644 GIT binary patch delta 37104 zcmcG%2Y6If*EYQOIWuQ!CR3738Y!f3GD&~{snj6Sm98`?f^;27K*bOyK|}>a@dyew zP%PLL>>k%vE>4L%Ub&- z7j(SolrNqU*1yA|W1dHL6{3$6LNkTSPg#GYhX;K_g*XM`4EmC;FyH1v3 ztdXyj853kD_uAgbm&eFn$za7q-iVD0@l>dHJH= zvUD-?oUh7s;~vi}*~!T8_LjPFvbVQ!k~i77-W%w7qoV4)QA0)V z3|u}%2zQxJQS@$L`Vz3>h@y7~iPR~2IT@<@nGi>WFh2I)onApI)FZ2_DkkIV6e0kV zvy8ivMx)p!UxtzG^T@Ld-DmQfA$>79+vt~kF{jQz9sBy7Qac-7k?({+bv(H`FiPj!~5!qjH)$M47Ucwd;&iQ!dDFL1smbwvr>5*c7!H zU0_pe%{}PSxWe$H=4j_at*%zq2Bm&soOwZ36IlZY z*@Jd{EfPtPUi1%X$fh(^!Q=7(z!_Z!151zuflI#_g6JhAJ=wHNhB#nrm-}pGi?!u0 zNTcgvRyNzpP7+IgDfut}7QYP1kYCIbrm6t8ph1DPA6jYyKTz} zqgN1Y0$8S-Sw$GVlHe*(lh+xSq;E{Q9wn5eDM}M&p>6qS zu;^tw>M~SWyA5f#rjN&^yiik?od5&<24ZOqi``O$H|arE&4DT{`jD|NJ0tdw+CB`Ef7bR9l1>7Yr7izQ zZ677&V*oT8!PFWbM_S(nSd3nfEv#xnylwh!2qRftr9dEPc{65o=!=!>`VRYm(VSug zWMfWo3NKM9Rs_yK9$WMYe%SHEFMZp%r6aw&qGrF{5#8o_M>SiEi0OCJeeQSOxMQu`F{<2 z0T#{VzZCldm-8ZdX&-@6EL)|~mmzeQo)Q%LD@b`9Jiej_kS-hSh>pTF`l`{pAX~m> zOf1OFcpU=RzJW{m=68HSaWt*aEdJ7h!Wi!j&w1K+4;H)@7sPju_u>MtwS9aS7bIB% z?Dysl6tZC}!~ScFE<=$HrKvuib}CI6aHia)Gz~&J#zp}w%N#1ok*kO7rh~Fs%MU`J zEb9x)CX8vfPCXma0$49tc4C{%VeMMoFw~0zTJxLG6a^g3Z<*JCHX&f2KdJc;DCS3h znjf^O#dudU>)2M@amN-;yeNOF~y;-@h#ifQj|T79eM*^ zW!Vras=XCSW+6#tAxW;pHhHZ=lB`0K0^a{xNOp1d7%s#Y@F~lNA6rOrz?SIOXZcOG z{3Zu{|JCoB;{2X8)!e1I7{TUDn+5OI3j7XKY81PaRtz=IuQ$vAj&@;w?fAI3mz3`s zh5CrJ!?2Cyq_&)j?2&;D>o8gsY!%z}+}O=f>F<%g3dcMwkebQbtVsXMZ?T6*T<;7NmPA%jOsgL#^I8%_B~Si z55}J*x!#K@`6FqtVH_?=b%ymeZMG|{@*zq8(U=$M5YKi|Bv&)D8TUkrW2QMgxRYf( zGngk?rdzJSyg?P6`4dt&!SO}mi%tur60{vn#d;!xwq%*C=oBLTX95ZjgbIhI=@&2; z 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 delta 36839 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 diff --git a/GameData/ConformalDecals/Versioning/ConformalDecals.version b/GameData/ConformalDecals/Versioning/ConformalDecals.version index 9da95d5..30db53b 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,7 +6,7 @@ { "MAJOR":0, "MINOR":2, - "PATCH":1, + "PATCH":2, "BUILD":0 }, "KSP_VERSION": diff --git a/README.md b/README.md index 285a4b3..f033670 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Conformal Decals v0.2.1 +# Conformal Decals v0.2.2 [![Build Status](https://travis-ci.org/drewcassidy/KSP-Conformal-Decals.svg?branch=release)](https://travis-ci.org/drewcassidy/KSP-Conformal-Decals) [![Art: CC BY-SA 4.0](https://img.shields.io/badge/Art%20License-CC%20BY--SA%204.0-orange.svg)](https://creativecommons.org/licenses/by-sa/4.0/) [![Code: GPL v3](https://img.shields.io/badge/Code%20License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) ![Screenshot](http://pileof.rocks/KSP/images/ConformalDecalsHeader.png) diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 3b8e5d2..bc282e4 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -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); diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 4aef069..f81c3c6 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -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++) { diff --git a/changelog.txt b/changelog.txt index 71c69d1..fc0cfa2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,8 +1,13 @@ +v0.2.2 +------ +- Fixes: + - Fixed corrupted text rendering when a vessel loads during a scene change. + v0.2.1 ------ -- Changes +- Changes: - Pressing enter in the text entry window now types a newline. -- Fixes +- Fixes: - Renamed font assetbundle. The old extension was causing the game to try to load it twice on Windows due to legacy compatability features. - Fixed text rendering on DirectX resulting in black boxes by using ARGB32 instead of RG16 for the render texture in DirectX.