From ab10d6293e1cbf1c6cfb1dda04a39448dfe1bdbe Mon Sep 17 00:00:00 2001 From: javasabr Date: Thu, 8 Feb 2018 06:57:55 +0300 Subject: [PATCH] small fixes. --- jme3-core/src/main/java/com/jme3/material/Material.java | 2 +- .../main/java/com/jme3/renderer/opengl/GLRenderer.java | 8 +++++--- .../java/com/jme3/shader/ShaderStorageBufferObject.java | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/jme3-core/src/main/java/com/jme3/material/Material.java b/jme3-core/src/main/java/com/jme3/material/Material.java index 3690713a6..0c99dd235 100644 --- a/jme3-core/src/main/java/com/jme3/material/Material.java +++ b/jme3-core/src/main/java/com/jme3/material/Material.java @@ -797,7 +797,7 @@ public class Material implements CloneableSmartAsset, Cloneable, Savable { if(type == VarType.ShaderStorageBufferObject) { - final StorageBlock storageBlock = shader.getStorageBlock(name); + final StorageBlock storageBlock = shader.getStorageBlock(param.getPrefixedName()); storageBlock.setStorageData(param.getValue()); } else { diff --git a/jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java b/jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java index d9b905e17..b55aa8dd4 100644 --- a/jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java +++ b/jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java @@ -1205,6 +1205,8 @@ public final class GLRenderer implements Renderer { bindProgram(shader); + storageBlock.clearUpdateNeeded(); + final ShaderStorageBufferObject storageData = (ShaderStorageBufferObject) storageBlock.getStorageData(); if (storageData.getUniqueId() == -1 || storageData.isUpdateNeeded()) { updateBufferData(storageData); @@ -1232,9 +1234,9 @@ public final class GLRenderer implements Renderer { * @param shader the shader. */ protected void updateShaderStorageBlocks(final Shader shader) { - final ListMap uniforms = shader.getStorageBlockMap(); - for (int i = 0; i < uniforms.size(); i++) { - final StorageBlock storageBlock = uniforms.getValue(i); + final ListMap storageBlocks = shader.getStorageBlockMap(); + for (int i = 0; i < storageBlocks.size(); i++) { + final StorageBlock storageBlock = storageBlocks.getValue(i); if (storageBlock.isUpdateNeeded()) { updateShaderStorageBlock(shader, storageBlock); } diff --git a/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java b/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java index 5ed5e5154..fad394406 100644 --- a/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java +++ b/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java @@ -117,7 +117,7 @@ public class ShaderStorageBufferObject extends NativeObject { @Override public void deleteObject(final Object rendererObject) { - if (rendererObject instanceof Renderer) { + if (!(rendererObject instanceof Renderer)) { throw new IllegalArgumentException("This ssbo can't be deleted from " + rendererObject); }