Skip to content

Commit d083a8f

Browse files
committed
Merge branch 'refs/heads/1.21.5' into improvement/breakmanager-again
2 parents ad833ed + b9b17b7 commit d083a8f

File tree

5 files changed

+40
-27
lines changed

5 files changed

+40
-27
lines changed

src/main/java/com/lambda/mixin/render/GameRendererMixin.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,18 @@
1919

2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.RenderEvent;
22+
import com.lambda.graphics.RenderMain;
2223
import com.lambda.gui.DearImGui;
2324
import com.lambda.gui.LambdaScreen;
2425
import com.lambda.module.modules.client.ClickGui;
26+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
27+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
28+
import net.minecraft.client.render.Camera;
2529
import net.minecraft.client.render.GameRenderer;
2630
import net.minecraft.client.render.RenderTickCounter;
31+
import net.minecraft.client.render.WorldRenderer;
32+
import net.minecraft.client.util.ObjectAllocator;
33+
import org.joml.Matrix4f;
2734
import org.spongepowered.asm.mixin.Mixin;
2835
import org.spongepowered.asm.mixin.injection.At;
2936
import org.spongepowered.asm.mixin.injection.Inject;
@@ -37,4 +44,23 @@ private void updateTargetedEntityInvoke(float tickDelta, CallbackInfo info) {
3744
info.cancel();
3845
}
3946
}
47+
48+
/**
49+
* Begins our 3d render after the game has rendered the world
50+
* <pre>{@code
51+
* float m = Math.max(h, (float)(Integer)this.client.options.getFov().getValue());
52+
* Matrix4f matrix4f2 = this.getBasicProjectionMatrix(m);
53+
* RenderSystem.setProjectionMatrix(matrix4f, ProjectionType.PERSPECTIVE);
54+
* Quaternionf quaternionf = camera.getRotation().conjugate(new Quaternionf());
55+
* Matrix4f matrix4f3 = (new Matrix4f()).rotation(quaternionf);
56+
* this.client.worldRenderer.setupFrustum(camera.getPos(), matrix4f3, matrix4f2);
57+
* this.client.worldRenderer.render(this.pool, renderTickCounter, bl, camera, this, matrix4f3, matrix4f);
58+
* }</pre>
59+
*/
60+
@WrapOperation(method = "renderWorld", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;render(Lnet/minecraft/client/util/ObjectAllocator;Lnet/minecraft/client/render/RenderTickCounter;ZLnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/GameRenderer;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;)V"))
61+
void onRenderWorld(WorldRenderer instance, ObjectAllocator allocator, RenderTickCounter tickCounter, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, Matrix4f positionMatrix, Matrix4f projectionMatrix, Operation<Void> original) {
62+
original.call(instance, allocator, tickCounter, renderBlockOutline, camera, gameRenderer, positionMatrix, projectionMatrix);
63+
64+
RenderMain.render3D(positionMatrix, projectionMatrix);
65+
}
4066
}

src/main/java/com/lambda/mixin/render/WorldRendererMixin.java

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,13 @@
1717

1818
package com.lambda.mixin.render;
1919

20-
import com.lambda.graphics.RenderMain;
2120
import com.lambda.module.modules.player.Freecam;
2221
import net.minecraft.client.render.Camera;
23-
import net.minecraft.client.render.GameRenderer;
24-
import net.minecraft.client.render.RenderTickCounter;
2522
import net.minecraft.client.render.WorldRenderer;
26-
import net.minecraft.client.util.ObjectAllocator;
27-
import org.joml.Matrix4f;
2823
import org.spongepowered.asm.mixin.Mixin;
2924
import org.spongepowered.asm.mixin.injection.At;
30-
import org.spongepowered.asm.mixin.injection.Inject;
3125
import org.spongepowered.asm.mixin.injection.ModifyArg;
3226
import org.spongepowered.asm.mixin.injection.Redirect;
33-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3427

3528
@Mixin(WorldRenderer.class)
3629
public class WorldRendererMixin {
@@ -43,20 +36,4 @@ private boolean renderIsThirdPerson(Camera camera) {
4336
private boolean renderSetupTerrainModifyArg(boolean hasForcedFrustum) {
4437
return Freecam.INSTANCE.isEnabled() || hasForcedFrustum;
4538
}
46-
47-
/**
48-
* Begins our 3d render after the game has rendered the world
49-
* <pre>{@code
50-
* profiler.swap("cullEntities");
51-
* boolean bl3 = this.getEntitiesToRender(camera, frustum, this.renderedEntities);
52-
* this.renderedEntitiesCount = this.renderedEntities.size();
53-
* profiler.swap("terrain_setup");
54-
* this.setupTerrain(camera, frustum, bl, this.client.player.isSpectator());
55-
* profiler.swap("compile_sections");
56-
* }</pre>
57-
*/
58-
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;setupTerrain(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;ZZ)V", shift = At.Shift.AFTER))
59-
private void onRenderWorld(ObjectAllocator allocator, RenderTickCounter tickCounter, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, Matrix4f positionMatrix, Matrix4f projectionMatrix, CallbackInfo ci) {
60-
RenderMain.render3D(positionMatrix, projectionMatrix);
61-
}
6239
}

src/main/kotlin/com/lambda/graphics/RenderMain.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package com.lambda.graphics
1919

20+
import com.lambda.Lambda.mc
2021
import com.lambda.event.EventFlow.post
2122
import com.lambda.event.events.RenderEvent
2223
import com.lambda.event.events.TickEvent
@@ -27,7 +28,12 @@ import com.lambda.graphics.gl.Matrices.resetMatrices
2728
import com.lambda.graphics.renderer.esp.global.DynamicESP
2829
import com.lambda.graphics.renderer.esp.global.StaticESP
2930
import com.lambda.util.math.Vec2d
31+
import com.mojang.blaze3d.opengl.GlStateManager
32+
import com.mojang.blaze3d.systems.RenderSystem
33+
import net.minecraft.client.gl.GlBackend
34+
import net.minecraft.client.texture.GlTexture
3035
import org.joml.Matrix4f
36+
import org.lwjgl.opengl.GL30.GL_FRAMEBUFFER
3137

3238
object RenderMain {
3339
val projectionMatrix = Matrix4f()
@@ -42,6 +48,14 @@ object RenderMain {
4248
projectionMatrix.set(projMatrix)
4349

4450
setupGL {
51+
val framebuffer = mc.framebuffer
52+
val prevFramebuffer = (framebuffer.getColorAttachment() as GlTexture).getOrCreateFramebuffer(
53+
(RenderSystem.getDevice() as GlBackend).framebufferManager,
54+
null
55+
)
56+
57+
GlStateManager._glBindFramebuffer(GL_FRAMEBUFFER, prevFramebuffer)
58+
4559
RenderEvent.World().post()
4660
StaticESP.render()
4761
DynamicESP.render()

src/main/kotlin/com/lambda/gui/DearImGui.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ object DearImGui : Loadable {
9090
)
9191

9292
GlStateManager._glBindFramebuffer(GL_FRAMEBUFFER, prevFramebuffer)
93-
glViewport(0, 0, framebuffer.textureWidth, framebuffer.textureHeight)
9493

9594
implGlfw.newFrame()
9695
implGl3.newFrame()
@@ -103,8 +102,6 @@ object DearImGui : Loadable {
103102
GuiEvent.EndFrame.post()
104103

105104
implGl3.renderDrawData(ImGui.getDrawData())
106-
107-
GlStateManager._glBindFramebuffer(GL_FRAMEBUFFER, prevFramebuffer)
108105
}
109106

110107
fun destroy() {

src/main/kotlin/com/lambda/module/hud/Watermark.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package com.lambda.module.hud
1919

2020
import com.lambda.graphics.texture.TextureOwner.upload
2121
import com.lambda.gui.Layout
22-
import com.lambda.gui.dsl.ImGuiBuilder
2322
import com.lambda.module.HudModule
2423
import com.lambda.module.tag.ModuleTag
2524

0 commit comments

Comments
 (0)