Skip to content

Commit

Permalink
Refactor and various changes including VkRenderPass comeback
Browse files Browse the repository at this point in the history
  • Loading branch information
xCollateral committed Sep 5, 2023
1 parent 29a5fce commit 8c44c0c
Show file tree
Hide file tree
Showing 65 changed files with 3,314 additions and 1,726 deletions.
7 changes: 5 additions & 2 deletions src/main/java/net/vulkanmod/config/Options.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.minecraft.network.chat.contents.TranslatableContents;
import net.vulkanmod.Initializer;
import net.vulkanmod.vulkan.Drawer;
import net.vulkanmod.vulkan.Renderer;

public class Options {
static net.minecraft.client.Options minecraftOptions = Minecraft.getInstance().options;
Expand Down Expand Up @@ -169,12 +170,14 @@ public static Option<?>[] getGraphicsOpts() {

public static Option<?>[] getOtherOpts() {
return new Option[] {
new RangeOption("RenderFrameQueue", 2,
new RangeOption("Queue Frames", 2,
5, 1,
value -> {
config.frameQueueSize = value;
Renderer.scheduleSwapChainUpdate();
}, () -> config.frameQueueSize)
.setTooltip(Component.nullToEmpty("Restart is needed to take effect")),
.setTooltip(Component.nullToEmpty("""
Sets the number of queue frames""")),
new SwitchOption("Gui Optimizations",
value -> config.guiOptimizations = value,
() -> config.guiOptimizations)
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/net/vulkanmod/config/widget/OptionWidget.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.util.Mth;
import net.vulkanmod.vulkan.util.ColorUtil;
import net.vulkanmod.vulkan.util.VUtil;

import java.util.Objects;
Expand Down Expand Up @@ -75,7 +76,7 @@ public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float
RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest();

int color = this.controlHovered ? VUtil.packColor(0.0f, 0.0f, 0.0f, 0.45f) : VUtil.packColor(0.0f, 0.0f, 0.0f, 0.3f);
int color = this.controlHovered ? ColorUtil.packColorInt(0.0f, 0.0f, 0.0f, 0.45f) : ColorUtil.packColorInt(0.0f, 0.0f, 0.0f, 0.3f);

if(this.hovered)
guiGraphics.fill(this.x - 2, this.y - 2, this.x + this.width + 2, this.y + this.height + 2, 0x28000000);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.network.chat.Component;
import net.minecraft.util.Mth;
import net.vulkanmod.config.RangeOption;
import net.vulkanmod.vulkan.util.ColorUtil;
import net.vulkanmod.vulkan.util.VUtil;
import org.lwjgl.glfw.GLFW;

Expand Down Expand Up @@ -40,7 +41,7 @@ protected void renderBackground(GuiGraphics guiGraphics, Minecraft client, int m
// this.drawTexture(matrices, this.controlX + (int)(this.value * (this.controlWidth - 8)), this.y, 0, 46 + i, 4, 20);
// this.drawTexture(matrices, this.controlX + (int)(this.value * (this.controlWidth - 8)) + 4, this.y, 196, 46 + i, 4, 20);

int color = this.controlHovered ? VUtil.packColor(1.0f, 1.0f, 1.0f, 1.0f) : VUtil.packColor(1.0f, 1.0f, 1.0f, 0.8f);
int color = this.controlHovered ? ColorUtil.packColorInt(1.0f, 1.0f, 1.0f, 1.0f) : ColorUtil.packColorInt(1.0f, 1.0f, 1.0f, 0.8f);

guiGraphics.fill(this.controlX + (int)(this.value * (this.controlWidth - 8)), this.y + 20, this.controlX + (int)(this.value * (this.controlWidth - 8)) + 8, this.y, color);
}
Expand Down
9 changes: 3 additions & 6 deletions src/main/java/net/vulkanmod/gl/GlFramebuffer.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package net.vulkanmod.gl;

import it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap;
import net.vulkanmod.vulkan.Drawer;
import net.vulkanmod.vulkan.Framebuffer;
import net.vulkanmod.vulkan.texture.VTextureSelector;
import net.vulkanmod.vulkan.texture.VulkanImage;
import net.vulkanmod.vulkan.Renderer;
import net.vulkanmod.vulkan.framebuffer.Framebuffer;
import org.apache.commons.lang3.Validate;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL30;
import org.lwjgl.opengl.GL30C;
import org.lwjgl.system.NativeType;

public class GlFramebuffer {

Expand Down Expand Up @@ -117,7 +114,7 @@ public static int glCheckFramebufferStatus(int target) {
}

void beginRendering() {
Drawer.getInstance().beginRendering(this.framebuffer);
Renderer.getInstance().beginRendering(this.framebuffer);
}

void setAttachmentTexture(int attachment, int texture) {
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/net/vulkanmod/gl/GlTexture.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,12 @@ public static void texImage2D(int target, int level, int internalFormat, int wid
boundTexture.uploadImage(pixels);
}


public static void texSubImage2D(int target, int level, int xOffset, int yOffset, int width, int height, int format, int type, @Nullable ByteBuffer pixels) {
if(width == 0 || height == 0)
return;

VTextureSelector.uploadSubTexture(level, width, height, xOffset, yOffset, 0, 0, width, pixels);
VTextureSelector.uploadSubTexture(level, width, height, xOffset, yOffset,0, 0, width, pixels);
}

public static void setVulkanImage(int id, VulkanImage vulkanImage) {
Expand Down
13 changes: 0 additions & 13 deletions src/main/java/net/vulkanmod/mixin/ClientLevelM.java

This file was deleted.

52 changes: 51 additions & 1 deletion src/main/java/net/vulkanmod/mixin/WindowMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import com.mojang.blaze3d.platform.*;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.Minecraft;
import net.vulkanmod.Initializer;
import net.vulkanmod.config.Config;
import net.vulkanmod.config.Options;
import net.vulkanmod.config.VideoResolution;
import net.vulkanmod.vulkan.Renderer;
import net.vulkanmod.vulkan.VRenderSystem;
import net.vulkanmod.vulkan.Vulkan;
import org.lwjgl.glfw.GLFW;
Expand Down Expand Up @@ -45,6 +45,16 @@ public abstract class WindowMixin {
@Shadow private int width;
@Shadow private int height;

@Shadow @Final private WindowEventHandler eventHandler;

@Shadow public abstract int getWidth();

@Shadow public abstract int getHeight();

@Shadow private int framebufferWidth;

@Shadow private int framebufferHeight;

@Redirect(method = "<init>", at = @At(value = "INVOKE", target = "Lorg/lwjgl/glfw/GLFW;glfwWindowHint(II)V"))
private void redirect(int hint, int value) { }

Expand All @@ -59,6 +69,8 @@ private GLCapabilities redirect2() {
@Inject(method = "<init>", at = @At(value = "INVOKE", target = "Lorg/lwjgl/glfw/GLFW;glfwCreateWindow(IILjava/lang/CharSequence;JJ)J"))
private void vulkanHint(WindowEventHandler windowEventHandler, ScreenManager screenManager, DisplayData displayData, String string, String string2, CallbackInfo ci) {
GLFW.glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
// GLFW.glfwWindowHint(GLFW_AUTO_ICONIFY, GLFW_FALSE);
// GLFW.glfwWindowHint(GLFW_FOCUSED, GLFW_FALSE);
}

@Inject(method = "<init>", at = @At(value = "RETURN"))
Expand Down Expand Up @@ -192,4 +204,42 @@ else if(config.windowedFullscreen) {
GLFW.glfwSetWindowMonitor(this.window, 0L, this.x, this.y, this.width, this.height, -1);
}
}

/**
* @author
* @reason
*/
@Overwrite
private void onFramebufferResize(long window, int width, int height) {
if (window == this.window) {
int k = this.getWidth();
int m = this.getHeight();
if (width != 0 && height != 0) {
this.framebufferWidth = width;
this.framebufferHeight = height;
if (this.framebufferWidth != k || this.framebufferHeight != m) {
this.eventHandler.resizeDisplay();
}

}

if(width > 0 && height > 0)
Renderer.scheduleSwapChainUpdate();
}
}

/**
* @author
* @reason
*/
@Overwrite
private void onResize(long window, int width, int height) {
// System.out.printf("onResize: %d %d%n", width, height);
this.width = width;
this.height = height;

if(width > 0 && height > 0)
Renderer.scheduleSwapChainUpdate();
}

}
4 changes: 2 additions & 2 deletions src/main/java/net/vulkanmod/mixin/chunk/FrustumMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class FrustumMixin implements FrustumMixed {
@Shadow private double camX;
@Shadow private double camY;
@Shadow private double camZ;
private VFrustum vFrustum = new VFrustum();
private final VFrustum vFrustum = new VFrustum();

@Inject(method = "calculateFrustum", at = @At("HEAD"), cancellable = true)
private void calculateFrustum(Matrix4f modelView, Matrix4f projection, CallbackInfo ci) {
Expand All @@ -27,7 +27,7 @@ private void calculateFrustum(Matrix4f modelView, Matrix4f projection, CallbackI

@Inject(method = "prepare", at = @At("RETURN"))
public void prepare(double d, double e, double f, CallbackInfo ci) {
this.vFrustum.prepare(this.camX, this.camY, this.camZ);
this.vFrustum.setCamOffset(this.camX, this.camY, this.camZ);
}

@Override
Expand Down
Loading

0 comments on commit 8c44c0c

Please sign in to comment.