Skip to content

Commit

Permalink
Merge branch 'refs/heads/architectury-1.21.3' into architectury-1.21.4
Browse files Browse the repository at this point in the history
  • Loading branch information
UnlikePaladin committed Jan 29, 2025
2 parents 0d0641b + ce337b2 commit efad5a5
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,17 @@
import net.minecraft.client.gui.screen.Overlay;
import net.minecraft.client.gui.screen.SplashOverlay;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.RenderPhase;
import net.minecraft.client.render.VertexFormat;
import net.minecraft.client.render.VertexFormats;
import net.minecraft.client.resource.metadata.TextureResourceMetadata;
import net.minecraft.client.texture.NativeImage;
import net.minecraft.client.texture.ResourceTexture;
import net.minecraft.client.texture.TextureContents;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.resource.ResourceManager;
import net.minecraft.util.Identifier;
import net.minecraft.util.TriState;
import net.minecraft.util.Util;
import net.minecraft.util.math.ColorHelper;
import net.minecraft.util.math.MathHelper;
Expand Down Expand Up @@ -118,7 +122,7 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) {
int x = (width - logoWidth) / 2;
int y = (height - logoHeight) / 2;
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
context.drawTexture(identifier -> RenderLayer.getGuiTexturedOverlay(pfmLogo), pfmLogo, x, y, 0, 0, logoWidth, logoHeight, logoWidth, logoHeight);
context.drawTexture(id -> PFM_LOGO, pfmLogo, x, y, 0, 0, logoWidth, logoHeight, logoWidth, logoHeight);

try (Closeable ignored1 = glText.gltBeginDraw()) {
float textScale = (float) (client.getWindow().getScaleFactor() / 2.0f) * 1.5f;
Expand Down Expand Up @@ -204,4 +208,18 @@ public TextureContents loadContents(ResourceManager resourceManager) {
return textureData;
}
}

private static final RenderLayer.MultiPhase PFM_LOGO = RenderLayer.of(
"pfm_logo",
VertexFormats.POSITION_TEXTURE_COLOR,
VertexFormat.DrawMode.QUADS,
786432,
RenderLayer.MultiPhaseParameters.builder()
.texture(new RenderPhase.Texture(pfmLogo, TriState.DEFAULT, false))
.program(RenderLayer.POSITION_TEXTURE_COLOR_PROGRAM)
.transparency(RenderLayer.TRANSLUCENT_TRANSPARENCY)
.depthTest(RenderLayer.ALWAYS_DEPTH_TEST)
.writeMaskState(RenderLayer.COLOR_MASK)
.build(false)
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,16 @@
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.gen.Invoker;

import java.util.Queue;

@Mixin(MinecraftClient.class)
public interface PFMMinecraftClientAcccessor {
@Nullable
@Accessor("tracyFrameCapturer")
TracyFrameCapturer getFrameCapturer();

@Accessor("renderTaskQueue")
Queue<Runnable> getRenderTasks();
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ public static void setOverlayToPFMOverlay(PFMResourceProgress resourceProgress)
public static void updateScreen() {
MinecraftClient client = MinecraftClient.getInstance();

Runnable runnable;
while((runnable = ((PFMMinecraftClientAcccessor)client).getRenderTasks().poll()) != null) {
runnable.run();
}

client.getFramebuffer().beginWrite(true);
client.gameRenderer.render(client.getRenderTickCounter(), shouldTick(client));
Expand All @@ -33,6 +37,8 @@ public static void updateScreen() {
client.getWindow().swapBuffers(((PFMMinecraftClientAcccessor)client).getFrameCapturer());
((RenderTickCounter.Dynamic)client.getRenderTickCounter()).tick(client.isPaused());
((RenderTickCounter.Dynamic)client.getRenderTickCounter()).setTickFrozen(!shouldTick(client));

client.getTextureManager().tick();
}


Expand Down

0 comments on commit efad5a5

Please sign in to comment.