xpenatan / gdx-teavm

Run Libgdx in a webbrowser with teavm
Apache License 2.0
109 stars 16 forks source link

Hang on Label.setText with longer string #130

Closed MonstrousSoftware closed 2 months ago

MonstrousSoftware commented 2 months ago

With the latest libgdx snapshot (1.12.2-SNAPSHOT), the gdx-teavm client hangs when a Scene2D label text is changed to a longer string within the render loop. In 1.12.1 this was working fine. Potentially, it is a wider issue with regard to updating index buffers used in GL calls.

minimal demo: https://github.com/MonstrousSoftware/BugLabelText

xpenatan commented 2 months ago

Hi @MonstrousSoftware

Thanks for providing a minimal demo. Can you try snapshot and check if its fixed?

The original problem is that most arrays are int8array and some opengl calls needs Int16array, Int32array or Float32Array. Converting it every frame is not a good solution so I cache it inside the emulated classes (ShortBufferOverByteBufferEmu for example). The problem is the cached worked in GdxTest demos and not in this simple test 😞. I simplified it so lets hope it works on a more complex scene.

MonstrousSoftware commented 2 months ago

I can confirm it is fixed in the snapshot version. Thank you for the quick fix.