Skip to content

Commit

Permalink
Begin Iris Take Two
Browse files Browse the repository at this point in the history
  • Loading branch information
Luna0x01 committed Jan 11, 2025
1 parent 7ae9c67 commit ab6a29d
Show file tree
Hide file tree
Showing 491 changed files with 39,653 additions and 28 deletions.
7 changes: 6 additions & 1 deletion common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ sourceSets {
main.apply {
java {
srcDirs("src/api/java")
srcDirs("src/shaders/java")
srcDirs("src/vendored/java")
}
resources {
srcDirs("src/shaders/resources")
}
}

Expand All @@ -45,8 +50,8 @@ dependencies {
modCompileOnly("net.legacyfabric.legacy-fabric-api:legacy-fabric-api:1.9.4+1.8.9")

implementation("org.javassist:javassist:3.29.2-GA")
implementation(platform("org.lwjgl:lwjgl-bom:3.3.5"))

implementation(platform("org.lwjgl:lwjgl-bom:3.3.5"))
implementation("org.lwjgl:lwjgl")
implementation("org.lwjgl:lwjgl-glfw")
implementation("org.lwjgl:lwjgl-openal")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ public static int positiveCeilDiv(int n, int n2) {
return -java.lang.Math.floorDiv(-n, n2);
}

public static float fastInvCubeRoot(float f) {
int n = Float.floatToIntBits(f);
n = 1419967116 - n / 3;
float f2 = Float.intBitsToFloat(n);
f2 = 0.6666667f * f2 + 1.0f / (3.0f * f2 * f2 * f);
f2 = 0.6666667f * f2 + 1.0f / (3.0f * f2 * f2 * f);
return f2;
}

public static float lerp(float delta, float start, float end) {
return start + delta * (end - start);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package dev.vexor.radium.compat.mojang.math;

import com.google.common.collect.Queues;
import java.util.Deque;

import dev.vexor.radium.compat.mojang.Util;
import org.joml.Matrix3f;
import org.joml.Matrix4f;
import org.joml.Quaternionf;

public class PoseStack {
private final Deque<Pose> poseStack = Util.make(Queues.newArrayDeque(), arrayDeque -> {
Matrix4f matrix4f = new Matrix4f();
matrix4f.identity();
Matrix3f matrix3f = new Matrix3f();
matrix3f.identity();
arrayDeque.add(new Pose(matrix4f, matrix3f));
});

public void translate(double d, double d2, double d3) {
Pose pose = this.poseStack.getLast();
pose.pose.translate((float)d, (float)d2, (float)d3);
}

public void scale(float f, float f2, float f3) {
Pose pose = this.poseStack.getLast();
pose.pose.scale(f, f2, f3);
if (f == f2 && f2 == f3) {
if (f > 0.0f) {
return;
}
pose.normal.scale(-1.0f);
}
float f4 = 1.0f / f;
float f5 = 1.0f / f2;
float f6 = 1.0f / f3;
float f7 = Mth.fastInvCubeRoot(f4 * f5 * f6);
pose.normal.scale(f7 * f4, f7 * f5, f7 * f6);
}

public void mulPose(Quaternionf quaternion) {
Pose pose = this.poseStack.getLast();
pose.pose.rotate(quaternion);
pose.normal.rotate(quaternion);
}

public void pushPose() {
Pose pose = this.poseStack.getLast();
this.poseStack.addLast(new Pose(new Matrix4f(pose.pose), new Matrix3f(pose.normal)));
}

public void popPose() {
this.poseStack.removeLast();
}

public Pose last() {
return this.poseStack.getLast();
}

public boolean clear() {
return this.poseStack.size() == 1;
}

public static final class Pose {
private final Matrix4f pose;
private final Matrix3f normal;

private Pose(Matrix4f matrix4f, Matrix3f matrix3f) {
this.pose = matrix4f;
this.normal = matrix3f;
}

public Matrix4f pose() {
return this.pose;
}

public Matrix3f normal() {
return this.normal;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.caffeinemc.mods.sodium.client.gui;

import com.google.common.collect.ImmutableList;
import dev.vexor.radium.options.client.gui.ReeseSodiumVideoOptionsScreen;
import net.caffeinemc.mods.sodium.client.gl.arena.staging.MappedStagingBuffer;
import net.caffeinemc.mods.sodium.client.gl.device.RenderDevice;
import net.caffeinemc.mods.sodium.client.gui.options.*;
Expand Down Expand Up @@ -56,7 +57,7 @@ public static OptionPage general() {

// Resizing our window
if(MinecraftClient.getInstance().currentScreen instanceof SodiumOptionsGUI) {
MinecraftClient.getInstance().setScreen(new SodiumOptionsGUI(((SodiumOptionsGUI) MinecraftClient.getInstance().currentScreen).prevScreen));
MinecraftClient.getInstance().setScreen(new ReeseSodiumVideoOptionsScreen(((SodiumOptionsGUI) MinecraftClient.getInstance().currentScreen).prevScreen));
}
}, opts -> opts.guiScale)
.build())
Expand Down
12 changes: 6 additions & 6 deletions common/src/main/java/org/lwjgl/opengl/ContextCapabilities.java
Original file line number Diff line number Diff line change
Expand Up @@ -2068,8 +2068,8 @@ public class ContextCapabilities {
long glGetProgramResourceIndex;
long glGetProgramResourceName;
long glGetProgramResourceiv;
long glGetProgramResourceLocation;
long glGetProgramResourceLocationIndex;
long glGetProgramIdentifier;
long glGetProgramIdentifierIndex;
long glShaderStorageBlockBinding;
long glTexBufferRange;
long glTexStorage2DMultisample;
Expand Down Expand Up @@ -3251,8 +3251,8 @@ private boolean ARB_program_interface_query_initNativeFunctionAddresses() {
(glGetProgramResourceIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceIndex")) != 0 &
(glGetProgramResourceName = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceName")) != 0 &
(glGetProgramResourceiv = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceiv")) != 0 &
(glGetProgramResourceLocation = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceLocation")) != 0 &
(glGetProgramResourceLocationIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceLocationIndex")) != 0;
(glGetProgramIdentifier = GL.getFunctionProvider().getFunctionAddress("glGetProgramIdentifier")) != 0 &
(glGetProgramIdentifierIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramIdentifierIndex")) != 0;
}

private boolean ARB_provoking_vertex_initNativeFunctionAddresses() {
Expand Down Expand Up @@ -5169,8 +5169,8 @@ private boolean GL43_initNativeFunctionAddresses() {
(glGetProgramResourceIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceIndex")) != 0 &
(glGetProgramResourceName = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceName")) != 0 &
(glGetProgramResourceiv = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceiv")) != 0 &
(glGetProgramResourceLocation = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceLocation")) != 0 &
(glGetProgramResourceLocationIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramResourceLocationIndex")) != 0 &
(glGetProgramIdentifier = GL.getFunctionProvider().getFunctionAddress("glGetProgramIdentifier")) != 0 &
(glGetProgramIdentifierIndex = GL.getFunctionProvider().getFunctionAddress("glGetProgramIdentifierIndex")) != 0 &
(glShaderStorageBlockBinding = GL.getFunctionProvider().getFunctionAddress("glShaderStorageBlockBinding")) != 0 &
(glTexBufferRange = GL.getFunctionProvider().getFunctionAddress("glTexBufferRange")) != 0 &
(glTexStorage2DMultisample = GL.getFunctionProvider().getFunctionAddress("glTexStorage2DMultisample")) != 0 &
Expand Down
13 changes: 12 additions & 1 deletion common/src/main/resources/sodium-common.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,15 @@ accessible field net/minecraft/client/render/Camera MODEL_MATRIX Ljava/nio/Float
accessible field net/minecraft/client/render/Camera PROJECTION_MATRIX Ljava/nio/FloatBuffer;
accessible field net/minecraft/client/color/world/FoliageColors colorMap [I
accessible field net/minecraft/client/color/world/GrassColors colorMap [I
accessible class net/minecraft/client/color/world/BiomeColors$ColorProvider
accessible class net/minecraft/client/color/world/BiomeColors$ColorProvider
accessible class com/mojang/blaze3d/platform/GlStateManager$BlendFuncState
accessible class com/mojang/blaze3d/platform/GlStateManager$BooleanState
accessible class com/mojang/blaze3d/platform/GlStateManager$ColorMask
accessible class com/mojang/blaze3d/platform/GlStateManager$DepthTestState
accessible class com/mojang/blaze3d/platform/GlStateManager$Texture2DState
accessible class com/mojang/blaze3d/platform/GlStateManager$AlphaTestState
accessible method net/minecraft/client/render/GameRenderer getFov (FZ)F
accessible method net/minecraft/client/render/GameRenderer bobViewWhenHurt (F)V
accessible method net/minecraft/client/render/GameRenderer bobView (F)V
accessible field net/minecraft/client/render/GameRenderer viewDistance F
accessible field net/minecraft/client/render/model/TexturedBakedQuad sprite Lnet/minecraft/client/texture/Sprite;
20 changes: 1 addition & 19 deletions common/src/main/resources/sodium-common.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,7 @@
"conformVisibility" : true
},
"client" : [
"core.access.ABlockRenderManager",
"core.access.AFluidRenderer",
"core.MinecraftMixin",
"core.render.VertexFormatMixin",
"core.render.world.LevelRendererMixin",
"core.world.biome.ClientLevelMixin",
"core.world.map.ClientChunkCacheMixin",
"core.world.map.ClientLevelMixin",
"features.gui.hooks.console.GameRendererMixin",
"features.gui.hooks.debug.DebugScreenOverlayMixin",
"features.gui.hooks.settings.OptionsScreenMixin",
"features.options.GameOptionsMixin",
"features.options.MinecraftClientMixin",
"features.options.overlays.GuiMixin",
"features.options.render_layers.LeavesBlockMixin",
"features.options.weather.LevelRendererMixin",
"features.render.immediate.DirectionMixin",
"features.textures.animations.SpriteMixin",
"features.textures.tracking.SpriteMixin"
"features.gui.hooks.settings.OptionsScreenMixin"
],
"mixins" : [
"features.options.world.DimensionMixin"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package kroppeb.stareval.element;

public interface AccessibleExpressionElement extends ExpressionElement {
}
4 changes: 4 additions & 0 deletions common/src/shaders/java/kroppeb/stareval/element/Element.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package kroppeb.stareval.element;

public interface Element {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package kroppeb.stareval.element;

public interface ExpressionElement extends Element {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package kroppeb.stareval.element;

public interface PriorityOperatorElement extends Element {
int getPriority();

ExpressionElement resolveWith(ExpressionElement right);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package kroppeb.stareval.element.token;

import kroppeb.stareval.parser.BinaryOp;

public class BinaryOperatorToken extends Token {
public final BinaryOp op;

public BinaryOperatorToken(BinaryOp op) {
this.op = op;
}

@Override
public String toString() {
return "BinaryOp{" + this.op + "}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package kroppeb.stareval.element.token;

import kroppeb.stareval.element.AccessibleExpressionElement;

public class IdToken extends Token implements AccessibleExpressionElement {
private final String id;

public IdToken(String id) {
this.id = id;
}

public String getId() {
return id;
}

@Override
public String toString() {
return "Id{" + this.id + "}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package kroppeb.stareval.element.token;

import kroppeb.stareval.element.ExpressionElement;

public class NumberToken extends Token implements ExpressionElement {
private final String number;

public NumberToken(String number) {
this.number = number;
}

public String getNumber() {
return number;
}

@Override
public String toString() {
return "Number{" + this.number + "}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package kroppeb.stareval.element.token;

import kroppeb.stareval.element.Element;

public abstract class Token implements Element {
@Override
public abstract String toString();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package kroppeb.stareval.element.token;

import kroppeb.stareval.element.ExpressionElement;
import kroppeb.stareval.element.PriorityOperatorElement;
import kroppeb.stareval.element.tree.UnaryExpressionElement;
import kroppeb.stareval.parser.UnaryOp;

public class UnaryOperatorToken extends Token implements PriorityOperatorElement {
private final UnaryOp op;

public UnaryOperatorToken(UnaryOp op) {
this.op = op;
}

@Override
public String toString() {
return "UnaryOp{" + this.op + "}";
}

@Override
public int getPriority() {
return -1;
}

@Override
public UnaryExpressionElement resolveWith(ExpressionElement right) {
return new UnaryExpressionElement(this.op, right);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package kroppeb.stareval.element.tree;

import kroppeb.stareval.element.AccessibleExpressionElement;

public class AccessExpressionElement implements AccessibleExpressionElement {
private final AccessibleExpressionElement base;
private final String index;

public AccessExpressionElement(AccessibleExpressionElement base, String index) {
this.base = base;
this.index = index;
}

public AccessibleExpressionElement getBase() {
return this.base;
}

public String getIndex() {
return this.index;
}

@Override
public String toString() {
return "Access{" + this.base + "[" + this.index + "]}";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package kroppeb.stareval.element.tree;

import kroppeb.stareval.element.ExpressionElement;
import kroppeb.stareval.parser.BinaryOp;

public class BinaryExpressionElement implements ExpressionElement {
private final BinaryOp op;
private final ExpressionElement left;
private final ExpressionElement right;

public BinaryExpressionElement(BinaryOp op, ExpressionElement left, ExpressionElement right) {
this.op = op;
this.left = left;
this.right = right;
}

public BinaryOp getOp() {
return this.op;
}

public ExpressionElement getLeft() {
return this.left;
}

public ExpressionElement getRight() {
return this.right;
}

@Override
public String toString() {
return "BinaryExpr{ {" + this.left + "} " + this.op + " {" + this.right + "} }";
}
}
Loading

0 comments on commit ab6a29d

Please sign in to comment.