diff --git a/jme3-core/src/main/java/com/jme3/shader/BufferObject.java b/jme3-core/src/main/java/com/jme3/shader/BufferObject.java index a80fd17ef..140d86e74 100644 --- a/jme3-core/src/main/java/com/jme3/shader/BufferObject.java +++ b/jme3-core/src/main/java/com/jme3/shader/BufferObject.java @@ -20,6 +20,7 @@ public class BufferObject extends NativeObject { public enum Layout { std140, + std430, } /** diff --git a/jme3-core/src/main/java/com/jme3/shader/BufferObjectField.java b/jme3-core/src/main/java/com/jme3/shader/BufferObjectField.java index bbfc11024..f9b53612f 100644 --- a/jme3-core/src/main/java/com/jme3/shader/BufferObjectField.java +++ b/jme3-core/src/main/java/com/jme3/shader/BufferObjectField.java @@ -9,6 +9,17 @@ import static java.util.Objects.requireNonNull; */ public class BufferObjectField { + /** + * The method to create a new field. + * + * @param name the field's name. + * @param type the field's type. + * @return the new field. + */ + public static BufferObjectField field(final String name, final VarType type) { + return new BufferObjectField(name, type); + } + /** * The field name. */ 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 583c6d131..ebe8a59e4 100644 --- a/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java +++ b/jme3-core/src/main/java/com/jme3/shader/ShaderStorageBufferObject.java @@ -11,6 +11,10 @@ public class ShaderStorageBufferObject extends BufferObject { super(binding, layout, fields); } + public ShaderStorageBufferObject(final int binding, final BufferObjectField... fields) { + super(binding, Layout.std430, fields); + } + public ShaderStorageBufferObject(final int id) { super(id); } diff --git a/jme3-core/src/main/java/com/jme3/shader/UniformBufferObject.java b/jme3-core/src/main/java/com/jme3/shader/UniformBufferObject.java index 5afebe921..5ae54650c 100644 --- a/jme3-core/src/main/java/com/jme3/shader/UniformBufferObject.java +++ b/jme3-core/src/main/java/com/jme3/shader/UniformBufferObject.java @@ -7,8 +7,8 @@ package com.jme3.shader; */ public class UniformBufferObject extends BufferObject { - public UniformBufferObject(final int binding, final Layout layout, final BufferObjectField... fields) { - super(binding, layout, fields); + public UniformBufferObject(final int binding, final BufferObjectField... fields) { + super(binding, Layout.std140, fields); } public UniformBufferObject(final int id) {