Skip to content

Commit 5f52dc2

Browse files
author
IMS212
committed
Sodium 0.4.0-alpha5, Iris 1.1.5
1 parent b421bea commit 5f52dc2

File tree

6 files changed

+32
-16
lines changed

6 files changed

+32
-16
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ sourceCompatibility = JavaVersion.VERSION_1_8
88
targetCompatibility = JavaVersion.VERSION_1_8
99

1010
archivesBaseName = project.archives_base_name + project.minecraft_version
11-
version = "${project.mod_version}${getVersionMetadata()}"
11+
version = "${project.mod_version}"
1212
group = project.maven_group
1313

1414
loom {

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ loader_version=0.12.12
1212
# If the Modrinth maven is unavailable or Sodium is not available for whatever reason,
1313
# you can set this to false to build a copy of the mod without Sodium compatibility included.
1414
sodium_compatibility=true
15-
sodium_version=mc1.18-0.4.0-alpha5
15+
sodium_version=mc1.18.1-0.4.0-alpha6
1616

1717
# Mod Properties
1818
maven_group=net.coderbot.iris_mc1_18
1919
archives_base_name=iris-mc
2020

21-
mod_version=1.1.4
21+
mod_version=1.1.5

src/main/java/net/coderbot/iris/compat/sodium/SodiumVersionCheck.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@ public class SodiumVersionCheck {
66
// The allowed versions of Sodium for use with Iris
77
private static final ImmutableList<AllowedSodiumVersion> ALLOWED_SODIUM_VERSIONS = ImmutableList.of(
88
// Official 0.4.0-alpha5
9-
AllowedSodiumVersion.exact("0.4.0-alpha5+build.9"),
9+
AllowedSodiumVersion.exact("0.4.0-alpha6+build.14"),
1010

11-
// ReplayMod's existing compatible forked 0.4.0-alpha5 version
12-
AllowedSodiumVersion.prefix("0.4.0-alpha5+rev.76d0e6e"),
13-
14-
// For future use by ReplayMod
15-
AllowedSodiumVersion.prefix("0.4.0-alpha5+replaymod")
11+
// For use by ReplayMod
12+
AllowedSodiumVersion.prefix("0.4.0-alpha6+replaymod")
1613
);
1714

1815
public static boolean isAllowedVersion(String sodiumVersion) {

src/main/java/net/coderbot/iris/pipeline/newshader/TriforcePatcher.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ public static String patchSodium(String source, ShaderType type, AlphaTest alpha
320320
transformations.define("VERT_POS_SCALE", String.valueOf(positionScale));
321321
transformations.define("VERT_POS_OFFSET", String.valueOf(positionOffset));
322322
transformations.define("VERT_TEX_SCALE", String.valueOf(textureScale));
323+
transformations.injectLine(Transformations.InjectionPoint.BEFORE_CODE, "uniform vec3 u_RegionOffset;");
323324

324325
transformations.injectLine(Transformations.InjectionPoint.DEFINES, SodiumTerrainPipeline.parseSodiumImport("#import <sodium:include/chunk_vertex.glsl>"));
325326
transformations.injectLine(Transformations.InjectionPoint.DEFINES, SodiumTerrainPipeline.parseSodiumImport("#import <sodium:include/chunk_parameters.glsl>"));
@@ -340,7 +341,7 @@ public static String patchSodium(String source, ShaderType type, AlphaTest alpha
340341
" irisMain();\n" +
341342
"}");
342343

343-
transformations.injectLine(Transformations.InjectionPoint.BEFORE_CODE, "vec4 getVertexPosition() { return vec4(_draw_translation + _vert_position, 1.0); }");
344+
transformations.injectLine(Transformations.InjectionPoint.BEFORE_CODE, "vec4 getVertexPosition() { return vec4(u_RegionOffset + _draw_translation + _vert_position, 1.0); }");
344345
transformations.injectLine(Transformations.InjectionPoint.BEFORE_CODE, "vec4 ftransform() { return gl_ModelViewProjectionMatrix * gl_Vertex; }");
345346
} else {
346347
transformations.injectLine(Transformations.InjectionPoint.BEFORE_CODE, "uniform mat4 u_ModelViewMatrix;");

src/sodiumCompatibility/java/net/coderbot/iris/compat/sodium/impl/shader_overrides/IrisChunkShaderInterface.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import me.jellysquid.mods.sodium.client.gl.buffer.GlMutableBuffer;
55
import me.jellysquid.mods.sodium.client.gl.shader.uniform.GlUniformBlock;
66
import me.jellysquid.mods.sodium.client.gl.shader.uniform.GlUniformFloat;
7+
import me.jellysquid.mods.sodium.client.gl.shader.uniform.GlUniformFloat3v;
78
import me.jellysquid.mods.sodium.client.gl.shader.uniform.GlUniformMatrix4f;
89
import me.jellysquid.mods.sodium.client.model.vertex.type.ChunkVertexType;
910
import net.coderbot.iris.gl.blending.BlendModeOverride;
@@ -21,7 +22,7 @@ public class IrisChunkShaderInterface {
2122
@Nullable
2223
private final GlUniformMatrix4f uniformProjectionMatrix;
2324
@Nullable
24-
private final GlUniformMatrix4f uniformModelViewProjectionMatrix;
25+
private final GlUniformFloat3v uniformRegionOffset;
2526
@Nullable
2627
private final GlUniformMatrix4f uniformNormalMatrix;
2728
@Nullable
@@ -37,7 +38,7 @@ public IrisChunkShaderInterface(int handle, ShaderBindingContextExt contextExt,
3738
boolean isShadowPass, BlendModeOverride blendModeOverride) {
3839
this.uniformModelViewMatrix = contextExt.bindUniformIfPresent("u_ModelViewMatrix", GlUniformMatrix4f::new);
3940
this.uniformProjectionMatrix = contextExt.bindUniformIfPresent("u_ProjectionMatrix", GlUniformMatrix4f::new);
40-
this.uniformModelViewProjectionMatrix = contextExt.bindUniformIfPresent("u_ModelViewProjectionMatrix", GlUniformMatrix4f::new);
41+
this.uniformRegionOffset = contextExt.bindUniformIfPresent("u_RegionOffset", GlUniformFloat3v::new);
4142
this.uniformNormalMatrix = contextExt.bindUniformIfPresent("u_NormalMatrix", GlUniformMatrix4f::new);
4243
this.uniformBlockDrawParameters = contextExt.bindUniformBlockIfPresent("ubo_DrawParameters", 0);
4344

@@ -97,4 +98,10 @@ public void setDrawUniforms(GlMutableBuffer buffer) {
9798
this.uniformBlockDrawParameters.bindBuffer(buffer);
9899
}
99100
}
101+
102+
public void setRegionOffset(float x, float y, float z) {
103+
if (this.uniformRegionOffset != null) {
104+
this.uniformRegionOffset.set(x, y, z);
105+
}
106+
}
100107
}

src/sodiumCompatibility/java/net/coderbot/iris/compat/sodium/mixin/shader_overrides/MixinRegionChunkRenderer.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ public abstract class MixinRegionChunkRenderer implements ShaderChunkRendererExt
3636
}
3737
}
3838

39+
@Redirect(method = "render",
40+
at = @At(value = "INVOKE",
41+
target = "Lme/jellysquid/mods/sodium/client/render/chunk/shader/ChunkShaderInterface;setModelViewMatrix(Lorg/joml/Matrix4f;)V"), remap = false)
42+
private void iris$setModelViewMatrix(ChunkShaderInterface itf, Matrix4f matrix) {
43+
if (itf != null) {
44+
itf.setModelViewMatrix(matrix);
45+
} else {
46+
iris$getOverride().getInterface().setModelViewMatrix(matrix);
47+
}
48+
}
49+
3950
@Redirect(method = "render", remap = false,
4051
at = @At(value = "INVOKE",
4152
target = "me/jellysquid/mods/sodium/client/render/chunk/shader/ChunkShaderInterface.setDrawUniforms (Lme/jellysquid/mods/sodium/client/gl/buffer/GlMutableBuffer;)V"))
@@ -49,12 +60,12 @@ public abstract class MixinRegionChunkRenderer implements ShaderChunkRendererExt
4960

5061
@Redirect(method = "setModelMatrixUniforms",
5162
at = @At(value = "INVOKE",
52-
target = "Lme/jellysquid/mods/sodium/client/render/chunk/shader/ChunkShaderInterface;setModelViewMatrix(Lorg/joml/Matrix4f;)V"), remap = false)
53-
private void iris$setModelViewMatrix(ChunkShaderInterface itf, Matrix4f matrix) {
63+
target = "Lme/jellysquid/mods/sodium/client/render/chunk/shader/ChunkShaderInterface;setRegionOffset(FFF)V"), remap = false)
64+
private void iris$setRegionOffset(ChunkShaderInterface itf, float x, float y, float z) {
5465
if (itf != null) {
55-
itf.setModelViewMatrix(matrix);
66+
itf.setRegionOffset(x, y, z);
5667
} else {
57-
iris$getOverride().getInterface().setModelViewMatrix(matrix);
68+
iris$getOverride().getInterface().setRegionOffset(x, y, z);
5869
}
5970
}
6071
}

0 commit comments

Comments
 (0)