From 7ec4c85e8cc690a45d3af0769feb45e65d5439c8 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Thu, 6 Aug 2020 22:54:51 -0700 Subject: [PATCH] Handle bold text and several events, wondering whats up with Actions[] --- GameData/ConformalDecals/Parts/decal-text.cfg | 4 +- .../Plugins/ConformalDecals.dll | Bin 82944 -> 85504 bytes .../ConformalDecals/ModuleConformalDecal.cs | 8 +- Source/ConformalDecals/ModuleConformalText.cs | 156 +++++++++++++++--- Source/ConformalDecals/Text/DecalText.cs | 13 +- Source/ConformalDecals/Text/TextRenderJob.cs | 9 +- .../ConformalDecals/Text/TextRenderOutput.cs | 5 +- Source/ConformalDecals/Text/TextRenderer.cs | 30 ++-- 8 files changed, 171 insertions(+), 54 deletions(-) diff --git a/GameData/ConformalDecals/Parts/decal-text.cfg b/GameData/ConformalDecals/Parts/decal-text.cfg index 8ff0413..a351190 100644 --- a/GameData/ConformalDecals/Parts/decal-text.cfg +++ b/GameData/ConformalDecals/Parts/decal-text.cfg @@ -49,9 +49,11 @@ PART { name = ModuleConformalText + shader = ConformalDecals/Decal/Text useBaseNormal = true + scaleMode = MINIMUM defaultDepth = 0.2 - defaultCutoff = 0 + defaultCutoff = 0.5 } } diff --git a/GameData/ConformalDecals/Plugins/ConformalDecals.dll b/GameData/ConformalDecals/Plugins/ConformalDecals.dll index b27fa72f54a1d3e97a002a3c9e3572ffd6da5a9a..b9bb823b808a5c94d1d90514a28c411ddcd2121b 100644 GIT binary patch literal 85504 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

?`lsiChE0dcx~MMG-`Z4I0u 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 literal 82944 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 QfA(); - //UpdateMaterials(); - // handle tweakables if (HighLogic.LoadedSceneIsEditor) { GameEvents.onEditorPartEvent.Add(OnEditorEvent); @@ -360,7 +358,7 @@ namespace ConformalDecals { } } - protected void OnAttach() { + protected virtual void OnAttach() { if (part.parent == null) { this.LogError("Attach function called but part has no parent!"); _isAttached = false; @@ -383,7 +381,7 @@ namespace ConformalDecals { UpdateScale(); } - protected void OnDetach() { + protected virtual void OnDetach() { _isAttached = false; // unhide model @@ -500,7 +498,7 @@ namespace ConformalDecals { } } - protected void UpdateTweakables() { + protected virtual void UpdateTweakables() { // setup tweakable fields var scaleField = Fields[nameof(scale)]; var depthField = Fields[nameof(depth)]; diff --git a/Source/ConformalDecals/ModuleConformalText.cs b/Source/ConformalDecals/ModuleConformalText.cs index 1b42611..32733bd 100644 --- a/Source/ConformalDecals/ModuleConformalText.cs +++ b/Source/ConformalDecals/ModuleConformalText.cs @@ -24,6 +24,9 @@ namespace ConformalDecals { if (_textEntryController == null) { _textEntryController = TextEntryController.Create(text, _font, _style, OnTextUpdate); } + else { + _textEntryController.OnClose(); + } } // FILL @@ -39,6 +42,9 @@ namespace ConformalDecals { if (_fillColorPickerController == null) { _fillColorPickerController = ColorPickerController.Create(fillColor, OnFillColorUpdate); } + else { + _fillColorPickerController.OnClose(); + } } // OUTLINE @@ -56,8 +62,11 @@ namespace ConformalDecals { [KSPEvent(guiName = "#LOC_ConformalDecals_gui-set-outline-color", groupName = "decal-outline", groupDisplayName = "#LOC_ConformalDecals_gui-group-outline", guiActive = false, guiActiveEditor = true)] public void SetOutlineColor() { - if (_outlineColorPickerCOntroller == null) { - _outlineColorPickerCOntroller = ColorPickerController.Create(outlineColor, OnOutlineColorUpdate); + if (_outlineColorPickerController == null) { + _outlineColorPickerController = ColorPickerController.Create(outlineColor, OnOutlineColorUpdate); + } + else { + _outlineColorPickerController.OnClose(); } } @@ -66,7 +75,17 @@ namespace ConformalDecals { private TextEntryController _textEntryController; private ColorPickerController _fillColorPickerController; - private ColorPickerController _outlineColorPickerCOntroller; + private ColorPickerController _outlineColorPickerController; + + private MaterialTextureProperty _decalTextureProperty; + private MaterialFloatProperty _decalTextWeightProperty; + + private MaterialKeywordProperty _fillEnabledProperty; + private MaterialColorProperty _fillColorProperty; + + private MaterialKeywordProperty _outlineEnabledProperty; + private MaterialColorProperty _outlineColorProperty; + private MaterialFloatProperty _outlineWidthProperty; private TextRenderJob _currentJob; private DecalText _currentText; @@ -74,6 +93,8 @@ namespace ConformalDecals { public override void OnLoad(ConfigNode node) { base.OnLoad(node); OnAfterDeserialize(); + + UpdateTextRecursive(); } public override void OnSave(ConfigNode node) { @@ -83,10 +104,24 @@ namespace ConformalDecals { public override void OnStart(StartState state) { base.OnStart(state); - + UpdateTextRecursive(); } + public override void OnAwake() { + base.OnAwake(); + + _decalTextureProperty = materialProperties.AddOrGetTextureProperty("_Decal", true); + _decalTextWeightProperty = materialProperties.AddOrGetProperty("_Weight"); + + _fillEnabledProperty = materialProperties.AddOrGetProperty("DECAL_FILL"); + _fillColorProperty = materialProperties.AddOrGetProperty("_DecalColor"); + + _outlineEnabledProperty = materialProperties.AddOrGetProperty("DECAL_OUTLINE"); + _outlineColorProperty = materialProperties.AddOrGetProperty("_OutlineColor"); + _outlineWidthProperty = materialProperties.AddOrGetProperty("_OutlineWidth"); + } + public void OnTextUpdate(string newText, DecalFont newFont, DecalTextStyle newStyle) { text = newText; _font = newFont; @@ -96,25 +131,63 @@ namespace ConformalDecals { public void OnFillColorUpdate(Color rgb, Util.ColorHSV hsv) { fillColor = rgb; - Debug.Log($"new fill color: {rgb}, {hsv}"); + UpdateMaterials(); + + foreach (var counterpart in part.symmetryCounterparts) { + var decal = counterpart.GetComponent(); + decal.fillColor = fillColor; + decal.UpdateMaterials(); + } } public void OnOutlineColorUpdate(Color rgb, Util.ColorHSV hsv) { outlineColor = rgb; - Debug.Log($"new outline color: {rgb}, {hsv}"); + UpdateMaterials(); + + foreach (var counterpart in part.symmetryCounterparts) { + var decal = counterpart.GetComponent(); + decal.outlineColor = outlineColor; + decal.UpdateMaterials(); + } } - public void OnFillToggle() { + public void OnFillToggle(BaseField field, object obj) { if (!fillEnabled && !outlineEnabled) { outlineEnabled = true; - OnOutlineToggle(); + OnOutlineToggle(field, obj); + } + + UpdateTweakables(); + + foreach (var counterpart in part.symmetryCounterparts) { + var decal = counterpart.GetComponent(); + decal.fillEnabled = fillEnabled; + decal.UpdateTweakables(); } } - public void OnOutlineToggle() { + public void OnOutlineToggle(BaseField field, object obj) { if (!fillEnabled && !outlineEnabled) { fillEnabled = true; - OnFillToggle(); + OnFillToggle(field, obj); + } + + UpdateTweakables(); + + foreach (var counterpart in part.symmetryCounterparts) { + var decal = counterpart.GetComponent(); + decal.outlineEnabled = outlineEnabled; + decal.UpdateTweakables(); + } + } + + public void OnOutlineWidthUpdate(BaseField field, object obj) { + UpdateMaterials(); + + foreach (var counterpart in part.symmetryCounterparts) { + var decal = counterpart.GetComponent(); + decal.outlineWidth = outlineWidth; + decal.UpdateMaterials(); } } @@ -132,10 +205,20 @@ namespace ConformalDecals { } public override void OnDestroy() { - TextRenderer.UnregisterText(_currentText); + if (_currentText != null) TextRenderer.UnregisterText(_currentText); + base.OnDestroy(); } + protected override void OnDetach() { + // close all UIs + if (_textEntryController != null) _textEntryController.OnClose(); + if (_fillColorPickerController != null) _fillColorPickerController.OnClose(); + if (_outlineColorPickerController != null) _outlineColorPickerController.OnClose(); + + base.OnDetach(); + } + private void UpdateTextRecursive() { UpdateText(); @@ -152,14 +235,13 @@ namespace ConformalDecals { } private void UpdateText() { - // Render text var newText = new DecalText(text, _font, _style); var output = TextRenderer.UpdateTextNow(_currentText, newText); _currentText = newText; UpdateTexture(output); - + // TODO: ASYNC RENDERING // var newText = new DecalText(text, _font, _style); // _currentJob = TextRenderer.UpdateText(_currentText, newText, UpdateTexture); @@ -167,25 +249,49 @@ namespace ConformalDecals { } public void UpdateTexture(TextRenderOutput output) { - var textureProperty = materialProperties.AddOrGetTextureProperty("_Decal", true); - textureProperty.Texture = output.Texture; - textureProperty.SetTile(output.Window); + _decalTextureProperty.Texture = output.Texture; + _decalTextureProperty.SetTile(output.Window); + _decalTextWeightProperty.value = output.Weight; + UpdateMaterials(); + UpdateScale(); } protected override void UpdateMaterials() { - materialProperties.AddOrGetProperty("DECAL_FILL").value = fillEnabled; - materialProperties.AddOrGetProperty("DECAL_OUTLINE").value = outlineEnabled; - if (fillEnabled) { - materialProperties.AddOrGetProperty("_DecalColor").color = fillColor; - } + _fillEnabledProperty.value = fillEnabled; + _fillColorProperty.color = fillColor; - if (outlineEnabled) { - materialProperties.AddOrGetProperty("_OutlineColor").color = outlineColor; - materialProperties.AddOrGetProperty("_OutlineWidth").value = outlineWidth; - } + _outlineEnabledProperty.value = outlineEnabled; + _outlineColorProperty.color = outlineColor; + _outlineWidthProperty.value = outlineWidth; base.UpdateMaterials(); } + + protected override void UpdateTweakables() { + Debug.Log($"Fields is null: {Fields == null}"); + Debug.Log($"Actions is null: {Actions == null}"); + var fillEnabledField = Fields[nameof(fillEnabled)]; + var fillColorAction = Actions["SetFillColor"]; + + var outlineEnabledField = Fields[nameof(outlineEnabled)]; + var outlineWidthField = Fields[nameof(outlineWidth)]; + var outlineColorAction = Actions["SetOutlineColor"]; + + Debug.Log($"outlineColorAction is null: {outlineColorAction == null}"); + + // fillColorAction.activeEditor = fillEnabled; + // outlineWidthField.guiActiveEditor = outlineEnabled; + // outlineColorAction.activeEditor = outlineEnabled; + + Debug.Log("Fart"); + ((UI_Toggle) fillEnabledField.uiControlEditor).onFieldChanged = OnFillToggle; + ((UI_Toggle) outlineEnabledField.uiControlEditor).onFieldChanged = OnOutlineToggle; + ((UI_FloatRange) outlineWidthField.uiControlEditor).onFieldChanged = OnOutlineWidthUpdate; + + base.UpdateTweakables(); + } + + protected void UpdateCachedProperties() { } } } \ No newline at end of file diff --git a/Source/ConformalDecals/Text/DecalText.cs b/Source/ConformalDecals/Text/DecalText.cs index f2f2792..1993b99 100644 --- a/Source/ConformalDecals/Text/DecalText.cs +++ b/Source/ConformalDecals/Text/DecalText.cs @@ -27,11 +27,16 @@ namespace ConformalDecals.Text { } public bool Equals(DecalText other) { - return other != null && (Text == other.Text && Equals(Font, other.Font) && Style.Equals(other.Style)); + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return Text == other.Text && Equals(Font, other.Font) && Style.Equals(other.Style); } public override bool Equals(object obj) { - return obj is DecalText other && Equals(other); + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != this.GetType()) return false; + return Equals((DecalText) obj); } public override int GetHashCode() { @@ -44,11 +49,11 @@ namespace ConformalDecals.Text { } public static bool operator ==(DecalText left, DecalText right) { - return left != null && left.Equals(right); + return Equals(left, right); } public static bool operator !=(DecalText left, DecalText right) { - return left != null && !left.Equals(right); + return !Equals(left, right); } } } \ No newline at end of file diff --git a/Source/ConformalDecals/Text/TextRenderJob.cs b/Source/ConformalDecals/Text/TextRenderJob.cs index b1128ce..475de9b 100644 --- a/Source/ConformalDecals/Text/TextRenderJob.cs +++ b/Source/ConformalDecals/Text/TextRenderJob.cs @@ -12,14 +12,7 @@ namespace ConformalDecals.Text { public readonly TextRenderer.TextRenderEvent onRenderFinished = new TextRenderer.TextRenderEvent(); public TextRenderJob(DecalText oldText, DecalText newText, UnityAction renderFinishedCallback) { - OldText = oldText ?? throw new ArgumentNullException(nameof(oldText)); - NewText = newText ?? throw new ArgumentNullException(nameof(newText)); - Needed = true; - - if (renderFinishedCallback != null) onRenderFinished.AddListener(renderFinishedCallback); - } - - public TextRenderJob(DecalText newText, UnityAction renderFinishedCallback) { + OldText = oldText; NewText = newText ?? throw new ArgumentNullException(nameof(newText)); Needed = true; diff --git a/Source/ConformalDecals/Text/TextRenderOutput.cs b/Source/ConformalDecals/Text/TextRenderOutput.cs index f90caa0..b3b5f27 100644 --- a/Source/ConformalDecals/Text/TextRenderOutput.cs +++ b/Source/ConformalDecals/Text/TextRenderOutput.cs @@ -5,12 +5,15 @@ namespace ConformalDecals.Text { public Texture2D Texture { get; private set; } public Rect Window { get; private set; } + + public float Weight { get; private set; } public int UserCount { get; set; } - public TextRenderOutput(Texture2D texture, Rect window) { + public TextRenderOutput(Texture2D texture, Rect window, float weight) { Texture = texture; Window = window; + Weight = weight; } } } \ No newline at end of file diff --git a/Source/ConformalDecals/Text/TextRenderer.cs b/Source/ConformalDecals/Text/TextRenderer.cs index 7f0e76d..01c008d 100644 --- a/Source/ConformalDecals/Text/TextRenderer.cs +++ b/Source/ConformalDecals/Text/TextRenderer.cs @@ -61,8 +61,6 @@ namespace ConformalDecals.Text { } } - - private void Start() { if (_instance != null) { Debug.Log("[ConformalDecals] Duplicate TextRenderer created???"); @@ -74,12 +72,13 @@ namespace ConformalDecals.Text { } private void Update() { - bool renderNeeded; - do { - if (RenderJobs.Count == 0) return; - var nextJob = RenderJobs.Dequeue(); - RunJob(nextJob, out renderNeeded); - } while (!renderNeeded); + // TODO: ASYNC RENDERING + // bool renderNeeded; + // do { + // if (RenderJobs.Count == 0) return; + // var nextJob = RenderJobs.Dequeue(); + // RunJob(nextJob, out renderNeeded); + // } while (!renderNeeded); } private void Setup() { @@ -160,6 +159,13 @@ namespace ConformalDecals.Text { _tmp.overflowMode = TextOverflowModes.Overflow; _tmp.alignment = TextAlignmentOptions.Center | TextAlignmentOptions.Baseline; _tmp.fontSize = FontSize; + + // CALCULATE FONT WEIGHT + + float weight = 0; + if (text.Style.Bold && text.Font.FontAsset.fontWeights[7].regularTypeface == null) { + weight = text.Font.FontAsset.boldStyle; + } // SETUP BLIT MATERIAL _blitMaterial.SetTexture(PropertyIDs._MainTex, text.Font.FontAsset.atlas); @@ -191,13 +197,16 @@ namespace ConformalDecals.Text { } // scale up everything to fit the texture for maximum usage - float sizeRatio = Mathf.Min(textureSize.x / size.x, textureSize.y, size.y); + float sizeRatio = Mathf.Min(textureSize.x / size.x, textureSize.y / size.y); // calculate where in the texture the used area actually is var window = new Rect { size = size * sizeRatio, center = (Vector2) textureSize / 2 }; + + Debug.Log($"Window size: {window.size}"); + Debug.Log($"Texture size: {textureSize}"); // SETUP TEXTURE if (texture == null) { @@ -220,6 +229,7 @@ namespace ConformalDecals.Text { Graphics.SetRenderTarget(renderTex); GL.PushMatrix(); GL.LoadProjectionMatrix(matrix); + GL.Clear(false, true, Color.black); _blitMaterial.SetPass(0); Graphics.DrawMeshNow(mesh, Matrix4x4.identity); GL.PopMatrix(); @@ -232,7 +242,7 @@ namespace ConformalDecals.Text { // RELEASE RENDERTEX RenderTexture.ReleaseTemporary(renderTex); - return new TextRenderOutput(texture, window); + return new TextRenderOutput(texture, window, weight); } } } \ No newline at end of file