diff --git a/release-notes.md b/release-notes.md index 8f2476a1..e94624e1 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 clear 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 ) {