32 lines
892 B
Java
32 lines
892 B
Java
package speiger.src.coreengine.rendering.shader.uniform;
|
|
|
|
import java.util.Objects;
|
|
|
|
import speiger.src.collections.objects.maps.interfaces.Object2ObjectMap;
|
|
|
|
public class GlobalUniforms {
|
|
private Object2ObjectMap<String, IUniform> uniforms = Object2ObjectMap.builder().map();
|
|
|
|
public <T extends IUniform> T register(T uniform) {
|
|
uniforms.putIfAbsent(Objects.requireNonNull(uniform.getName()), uniform);
|
|
return uniform;
|
|
}
|
|
|
|
public boolean contains(String name) {
|
|
return uniforms.containsKey(name);
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public <T extends IUniform> T get(String name) {
|
|
return (T)uniforms.get(name);
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public <T extends IUniform> T getOrDefault(String name, T defaultValue) {
|
|
return (T)uniforms.getOrDefault(name, defaultValue);
|
|
}
|
|
|
|
public Object2ObjectMap<String, IUniform> getAll() {
|
|
return uniforms.unmodifiable();
|
|
}
|
|
} |