Do not share shader's uniforms with multiple components

This commit is contained in:
fgnm
2024-05-19 17:54:12 +02:00
parent d65ab5be38
commit a5bda4bd94
2 changed files with 5 additions and 3 deletions
@@ -1,5 +1,6 @@
package games.rednblack.editor.view.ui.panel;
import com.badlogic.gdx.utils.Pools;
import games.rednblack.editor.renderer.components.ShaderComponent;
import games.rednblack.editor.renderer.data.ShaderUniformVO;
import games.rednblack.editor.utils.runtime.SandboxComponentRetriever;
@@ -94,7 +95,7 @@ public class ShaderUniformsPanelMediator extends Mediator<ShaderUniformsPanel> {
private void addNewUniform(Object[] payload) {
String name = (String) payload[0];
ShaderUniformVO vo = new ShaderUniformVO();
ShaderUniformVO vo = Pools.get(ShaderUniformVO.class, ShaderComponent.UNIFORMS_POOL_SIZE).obtain();
switch (payload.length) {
case 2:
if (payload[1] instanceof Integer)
@@ -121,7 +122,8 @@ public class ShaderUniformsPanelMediator extends Mediator<ShaderUniformsPanel> {
private void removeUniform(String uniform) {
ShaderComponent shaderComponent = SandboxComponentRetriever.get(observable, ShaderComponent.class);
shaderComponent.customUniforms.remove(uniform);
ShaderUniformVO vo = shaderComponent.customUniforms.remove(uniform);
Pools.free(vo);
updateView();
}