From cd90218a37ef11cfe5f3c0bcdb932dd23f2a8684 Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Tue, 28 Apr 2026 23:54:22 +0200 Subject: [PATCH] [Memory-opti:fix leak] fix light matrix world leak (#12) --- src/main/scala/mrtjp/mcframes/frame.scala | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/main/scala/mrtjp/mcframes/frame.scala b/src/main/scala/mrtjp/mcframes/frame.scala index 9bb3094..cce0d0c 100644 --- a/src/main/scala/mrtjp/mcframes/frame.scala +++ b/src/main/scala/mrtjp/mcframes/frame.scala @@ -177,30 +177,20 @@ object RenderFrame extends ISimpleBlockRenderingHandler { id: Int, rb: RenderBlocks ) = { - renderWorldBlock(rb, world, x, y, z, world.getBlockMetadata(x, y, z)) - true - } - - def renderWorldBlock( - r: RenderBlocks, - w: IBlockAccess, - x: Int, - y: Int, - z: Int, - meta: Int - ) { TextureUtils.bindAtlas(0) val state = CCRenderState.instance state.resetInstance() - state.lightMatrix.locate(w, x, y, z) - state.setBrightnessInstance(w, x, y, z) + state.lightMatrix.locate(world, x, y, z) + state.setBrightnessInstance(world, x, y, z) - if (r.hasOverrideBlockTexture) { + if (rb.hasOverrideBlockTexture) { getOrGenerateModel(0).render( new Translation(x, y, z), - new IconTransformation(r.overrideBlockTexture) + new IconTransformation(rb.overrideBlockTexture) ) } else RenderFrame.render(new Vector3(x, y, z), 0) + state.lightMatrix.access = null + true } def renderInvBlock(r: RenderBlocks, meta: Int) {