From 161e53e16bf86a6b40644955bb9106d4e68b40f7 Mon Sep 17 00:00:00 2001 From: Ali-RS Date: Tue, 14 Feb 2023 10:12:24 +0330 Subject: [PATCH 1/2] Properly cleanup alpha discard material param in QuadBackgroundComponent and IconComponent when alpha discard is disabled (is set to 0). --- release-notes.md | 2 ++ .../com/simsilica/lemur/component/IconComponent.java | 10 ++++++++-- .../lemur/component/QuadBackgroundComponent.java | 10 ++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/release-notes.md b/release-notes.md index 8f2476a1..d835f65a 100644 --- a/release-notes.md +++ b/release-notes.md @@ -7,6 +7,8 @@ Version 1.16.1 (unreleased) * Added a Panel(ElementId) constructor. * Slight change to popup layer placement to only move out and never in even if the calculated popup z-offset is positive. +* Properly cleanup alpha discard param in QuadBackgroundComponent and + IconComponent when alpha discard is disabled (is set to 0). Version 1.16.0 (latest) diff --git a/src/main/java/com/simsilica/lemur/component/IconComponent.java b/src/main/java/com/simsilica/lemur/component/IconComponent.java index 2cc7b487..8c9a5399 100644 --- a/src/main/java/com/simsilica/lemur/component/IconComponent.java +++ b/src/main/java/com/simsilica/lemur/component/IconComponent.java @@ -322,7 +322,11 @@ public void setAlphaDiscard( float alphaDiscard ) { } this.alphaDiscard = alphaDiscard; if( material != null ) { - material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + if( alphaDiscard == 0 ) { + material.getMaterial().clearParam("AlphaDiscardThreshold"); + } else { + material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + } } } @@ -448,7 +452,9 @@ protected void createIcon() { material.setTexture(image); material.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); - material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + if( alphaDiscard > 0 ) { + material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + } } icon.setMaterial(material.getMaterial()); diff --git a/src/main/java/com/simsilica/lemur/component/QuadBackgroundComponent.java b/src/main/java/com/simsilica/lemur/component/QuadBackgroundComponent.java index 4c320255..eb0c938b 100644 --- a/src/main/java/com/simsilica/lemur/component/QuadBackgroundComponent.java +++ b/src/main/java/com/simsilica/lemur/component/QuadBackgroundComponent.java @@ -237,7 +237,11 @@ public void setAlphaDiscard( float alphaDiscard ) { } this.alphaDiscard = alphaDiscard; if( material != null ) { - material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + if( alphaDiscard == 0 ) { + material.getMaterial().clearParam("AlphaDiscardThreshold"); + } else { + material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + } } } @@ -274,7 +278,9 @@ protected void createMaterial() { material.setTexture(texture); } material.getMaterial().getAdditionalRenderState().setBlendMode(BlendMode.Alpha); - material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + if( alphaDiscard > 0 ) { + material.getMaterial().setFloat("AlphaDiscardThreshold", alphaDiscard); + } } protected void refreshBackground( Vector3f size ) { From ef77203bdef6d59c2bdbb66b32a74a89fc59e092 Mon Sep 17 00:00:00 2001 From: Ali-RS Date: Tue, 14 Feb 2023 10:36:19 +0330 Subject: [PATCH 2/2] Update release-notes --- release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes.md b/release-notes.md index d835f65a..e94624e1 100644 --- a/release-notes.md +++ b/release-notes.md @@ -7,7 +7,7 @@ Version 1.16.1 (unreleased) * Added a Panel(ElementId) constructor. * Slight change to popup layer placement to only move out and never in even if the calculated popup z-offset is positive. -* Properly cleanup alpha discard param in QuadBackgroundComponent and +* Properly clear alpha discard param in QuadBackgroundComponent and IconComponent when alpha discard is disabled (is set to 0).