diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index efb093ee..74d53ee4 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 15b06f18..30db53b8 100644 --- a/GameData/ConformalDecals/Versioning/ConformalDecals.version +++ b/GameData/ConformalDecals/Versioning/ConformalDecals.version @@ -6,13 +6,13 @@ { "MAJOR":0, "MINOR":2, - "PATCH":1, + "PATCH":2, "BUILD":0 }, "KSP_VERSION": { "MAJOR":1, - "MINOR":9, + "MINOR":10, "PATCH":1 }, "KSP_VERSION_MIN":{ @@ -25,4 +25,4 @@ "MINOR":10, "PATCH":99 } -} \ No newline at end of file +} diff --git a/README.md b/README.md index 285a4b35..f033670f 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 3b8e5d2f..bc282e4d 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 @@ public override void OnLoad(ConfigNode node) { 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 @@ public override void OnSave(ConfigNode node) { base.OnSave(node); } - public override void OnStart(StartState state) { - base.OnStart(state); - - UpdateTextRecursive(); - } - public override void OnAwake() { base.OnAwake(); @@ -210,7 +213,7 @@ public void OnBeforeSerialize() { 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 @@ private void UpdateTextRecursive() { } } + 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 4aef069b..f81c3c68 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -257,6 +257,7 @@ public TextRenderOutput RenderText(DecalText text, Texture2D texture) { 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/Source/ConformalDecals/UI/UILoader.cs b/Source/ConformalDecals/UI/UILoader.cs index 18c92f76..bc9f1fb0 100644 --- a/Source/ConformalDecals/UI/UILoader.cs +++ b/Source/ConformalDecals/UI/UILoader.cs @@ -5,8 +5,8 @@ namespace ConformalDecals.UI { [KSPAddon(KSPAddon.Startup.Instantly, true)] public class UILoader : MonoBehaviour { - private static readonly string Path = KSPUtil.ApplicationRootPath + "GameData/ConformalDecals/Resources/"; + private static string _path; private static GameObject _textEntryPrefab; private static GameObject _fontMenuPrefab; private static GameObject _colorPickerPrefab; @@ -16,7 +16,8 @@ public class UILoader : MonoBehaviour { public static GameObject ColorPickerPrefab => _colorPickerPrefab; private void Awake() { - var prefabs = AssetBundle.LoadFromFile(Path + "ui.conformaldecals"); + _path = KSPUtil.ApplicationRootPath + "GameData/ConformalDecals/Resources/"; + var prefabs = AssetBundle.LoadFromFile(_path + "ui.conformaldecals"); _textEntryPrefab = prefabs.LoadAsset("TextEntryPanel") as GameObject; _fontMenuPrefab = prefabs.LoadAsset("FontMenuPanel") as GameObject; diff --git a/changelog.txt b/changelog.txt index 71c69d16..fc0cfa21 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.