VulkanShader_1.21.10-0.0.4-alpha.jar

Download file
    package net.vulkanmod.render.chunk.buffer;

import net.vulkanmod.render.chunk.cull.QuadFacing;
import net.vulkanmod.render.vertex.TerrainRenderType;
import org.lwjgl.system.MemoryUtil;

public abstract class DrawParametersBuffer {
   static final long INDEX_COUNT_OFFSET = 0L;
   static final long FIRST_INDEX_OFFSET = 4L;
   static final long VERTEX_OFFSET_OFFSET = 8L;
   static final long BASE_INSTANCE_OFFSET = 12L;
   public static final long STRIDE = 16L;
   static final int SECTIONS = 512;
   static final int FACINGS = 7;

   public static long allocateBuffer() {
      int size = (int)((long)(512 * TerrainRenderType.VALUES.length * QuadFacing.COUNT) * 16L);
      long drawParamsPtr = MemoryUtil.nmemAlignedAlloc(32L, (long)size);

      for(long ptr = drawParamsPtr; ptr < drawParamsPtr + (long)size; ptr += 16L) {
         resetParameters(ptr);
      }

      return drawParamsPtr;
   }

   public static void freeBuffer(long ptr) {
      MemoryUtil.nmemAlignedFree(ptr);
   }

   public static long getParamsPtr(long basePtr, int section, int renderType, int facing) {
      return basePtr + (long)((renderType * 512 + section) * 7 + facing) * 16L;
   }

   public static void resetParameters(long ptr) {
      setIndexCount(ptr, 0);
      setFirstIndex(ptr, 0);
      setVertexOffset(ptr, -1);
      setBaseInstance(ptr, 0);
   }

   public static void setIndexCount(long ptr, int value) {
      MemoryUtil.memPutInt(ptr + 0L, value);
   }

   public static void setFirstIndex(long ptr, int value) {
      MemoryUtil.memPutInt(ptr + 4L, value);
   }

   public static void setVertexOffset(long ptr, int value) {
      MemoryUtil.memPutInt(ptr + 8L, value);
   }

   public static void setBaseInstance(long ptr, int value) {
      MemoryUtil.memPutInt(ptr + 12L, value);
   }

   public static int getIndexCount(long ptr) {
      return MemoryUtil.memGetInt(ptr + 0L);
   }

   public static int getFirstIndex(long ptr) {
      return MemoryUtil.memGetInt(ptr + 4L);
   }

   public static int getVertexOffset(long ptr) {
      return MemoryUtil.memGetInt(ptr + 8L);
   }

   public static int getBaseInstance(long ptr) {
      return MemoryUtil.memGetInt(ptr + 12L);
   }
}
    
Download file