VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.render.engine;
import com.google.common.collect.Sets;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.TextureFormat;
import com.mojang.logging.LogUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import net.minecraft.class_284;
import net.vulkanmod.vulkan.shader.Pipeline;
import net.vulkanmod.vulkan.shader.descriptor.ImageDescriptor;
import net.vulkanmod.vulkan.shader.descriptor.UBO;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
public class EGlProgram {
private static final Logger LOGGER = LogUtils.getLogger();
public static Set<String> BUILT_IN_UNIFORMS = Sets.newHashSet(new String[]{"Projection", "Lighting", "Fog", "Globals"});
public static EGlProgram INVALID_PROGRAM = new EGlProgram(-1, "invalid");
private final Map<String, class_284> uniformsByName = new HashMap();
private final int programId;
private final String debugLabel;
public EGlProgram(int i, String string) {
this.programId = i;
this.debugLabel = string;
}
public void setupUniforms(Pipeline pipeline, List<RenderPipeline.UniformDescription> uniformDescriptions, List<String> samplers) {
int i = 0;
int j = 0;
for(RenderPipeline.UniformDescription uniformDescription : uniformDescriptions) {
String name = uniformDescription.name();
Object var18;
switch (uniformDescription.type()) {
case field_60031:
UBO ubo = pipeline.getUBO(name);
if (ubo == null) {
var18 = null;
} else {
int binding = ubo.binding;
var18 = new class_284.class_11272(binding);
}
break;
case field_60032:
int binding = i++;
var18 = new class_284.class_11273(binding, 0, (TextureFormat)Objects.requireNonNull(uniformDescription.textureFormat()));
break;
default:
throw new MatchException((String)null, (Throwable)null);
}
class_284 uniform = (class_284)var18;
this.uniformsByName.put(name, uniform);
}
for(String samplerName : samplers) {
ImageDescriptor imageDescriptor = pipeline.getImageDescriptor(samplerName);
int binding = imageDescriptor.getBinding();
int imageIdx = imageDescriptor.imageIdx;
this.uniformsByName.put(samplerName, new class_284.class_11271(binding, imageIdx));
}
}
public @Nullable class_284 getUniform(String string) {
RenderSystem.assertOnRenderThread();
return (class_284)this.uniformsByName.get(string);
}
public int getProgramId() {
return this.programId;
}
public String toString() {
return this.debugLabel;
}
public String getDebugLabel() {
return this.debugLabel;
}
public Map<String, class_284> getUniforms() {
return this.uniformsByName;
}
}
Download file