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