diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index be45f3d8..5a6ae1e5 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1749,6 +1749,7 @@ Fix server life tree missing nullcheck Inventory interaction type Debug ui for natural inventory on entity view Can open ui menu to view inventories of other entities on client +Fix windows not resizing internal framebuffer when yoga changes their dimensions diff --git a/src/main/java/electrosphere/renderer/ui/elements/Window.java b/src/main/java/electrosphere/renderer/ui/elements/Window.java index 2a33af3b..b7653776 100644 --- a/src/main/java/electrosphere/renderer/ui/elements/Window.java +++ b/src/main/java/electrosphere/renderer/ui/elements/Window.java @@ -452,6 +452,14 @@ public class Window implements DrawableElement, ContainerElement, NavigableEleme float topRaw = Yoga.YGNodeLayoutGetTop(yogaNode); float widthRaw = Yoga.YGNodeLayoutGetWidth(yogaNode); float heightRaw = Yoga.YGNodeLayoutGetHeight(yogaNode); + if(this.width != (int)widthRaw || this.height != (int)heightRaw){ + try { + widgetBuffer.free(); + widgetBuffer = FramebufferUtils.generateTextureFramebuffer(Globals.renderingEngine.getOpenGLState(), (int)widthRaw, (int)heightRaw); + } catch(Exception e){ + LoggerInterface.loggerRenderer.ERROR(e); + } + } //apply the values to this component this.absoluteX = (int)leftRaw; this.absoluteY = (int)topRaw;