feat(demo): add decorative border effects to ScrollArea in DemoModule

This commit is contained in:
extio-de
2025-12-29 19:13:54 +01:00
parent 572dff2f39
commit 8d3788b930
2 changed files with 19 additions and 8 deletions

View File

@@ -215,19 +215,17 @@ public class G2DDrawEffect extends G2DAbstractRenderingBo implements DrawEffectR
if (this.cull(area)) { if (this.cull(area)) {
break; break;
} }
final var strength = this.customInt0 <= 0 ? 2 : this.customInt0;
final var effectColor = this.color == null ? Color.WHITE : this.color.toAwtColor();
// Use PatternRenderer from ThemeManager
final var themeManager = (G2DThemeManager) this.rendererData.getThemeManager(); final var themeManager = (G2DThemeManager) this.rendererData.getThemeManager();
final var theme = themeManager.getCurrentTheme(); final var theme = themeManager.getCurrentTheme();
final PatternRenderer patternRenderer = themeManager.getPatternRenderer(theme.getPatternRendererName()); final PatternRenderer patternRenderer = themeManager.getPatternRenderer(theme.getPatternRendererName());
final var strength = this.customInt0 <= 0 ? 2 : this.customInt0;
final var effectColor = this.color == null ? theme.getBorderOuter().toColor() : this.color.toAwtColor();
if (patternRenderer != null) { if (patternRenderer != null) {
if (this.effect == DrawEffectRenderingBoEffects.DECORATIVE_BORDER) { if (this.effect == DrawEffectRenderingBoEffects.DECORATIVE_BORDER) {
patternRenderer.drawDecorativeBorder(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor); patternRenderer.drawDecorativeBorder(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor);
} else { } else {
patternRenderer.drawDecorativeBorderFilled(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor, effectColor); patternRenderer.drawDecorativeBorderFilled(graphics, area.getPosition().getX(), area.getPosition().getY(), area.getDimension().getX(), area.getDimension().getY(), strength, effectColor, theme.getWindowBackground().toColor());
} }
} }

View File

@@ -18,8 +18,11 @@ import de.extio.game_engine.renderer.container.ScrollArea;
import de.extio.game_engine.renderer.container.Window; import de.extio.game_engine.renderer.container.Window;
import de.extio.game_engine.renderer.model.RenderingBoLayer; import de.extio.game_engine.renderer.model.RenderingBoLayer;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo; import de.extio.game_engine.renderer.model.bo.ControlRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawEffectRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawEffectRenderingBoEffects;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ButtonControl; import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ButtonControl;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelControl; import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelControl;
import de.extio.game_engine.renderer.model.color.RgbaColor;
import de.extio.game_engine.renderer.model.bo.DrawFontRenderingBo; import de.extio.game_engine.renderer.model.bo.DrawFontRenderingBo;
import de.extio.game_engine.renderer.model.bo.DrawImageRenderingBo; import de.extio.game_engine.renderer.model.bo.DrawImageRenderingBo;
import de.extio.game_engine.renderer.model.bo.HorizontalAlignment; import de.extio.game_engine.renderer.model.bo.HorizontalAlignment;
@@ -394,10 +397,20 @@ public class DemoModule extends AbstractClientModule {
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Text_" + i, DrawFontRenderingBo.class) bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Text_" + i, DrawFontRenderingBo.class)
.setText(String.valueOf(i)) .setText(String.valueOf(i))
.setSize(28) .setSize(28)
.setAlignment(HorizontalAlignment.CENTER) .setAlignment(HorizontalAlignment.LEFT)
.withDimensionAbsolute(150, 60) .withDimensionAbsolute(150, 60)
.setLayer(RenderingBoLayer.UI0)
.withPositionRelative(250, y + 22); .withPositionRelative(250, y + 22);
this.scrollArea.putRenderingBo(bo); this.scrollArea.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_ScrollAreaWindow_Effect_" + i, DrawEffectRenderingBo.class)
.setRelativeCoordinates(List.of(ImmutableCoordI2.create(64, 64)))
.setEffect(DrawEffectRenderingBoEffects.DECORATIVE_BORDER_FILLED)
.setCustomInt0(4)
.setColor(RgbaColor.GRAY)
.setLayer(RenderingBoLayer.UI0)
.withPositionRelative(350, y);
this.scrollArea.putRenderingBo(bo);
bo = this.renderingBoPool.acquire("DemoModule_ScrollArea_Button_" + i, ControlRenderingBo.class) bo = this.renderingBoPool.acquire("DemoModule_ScrollArea_Button_" + i, ControlRenderingBo.class)
.setCaption("Button " + (i + 1)) .setCaption("Button " + (i + 1))