diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index ed08705..74d53ee 100644 Binary files a/GameData/ConformalDecals/Plugins/ConformalDecals.dll and b/GameData/ConformalDecals/Plugins/ConformalDecals.dll differ 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.