Skip to content

Commit 4d78d53

Browse files
committed
feat: themes implementation, some other stuff + port to 21.1 -> 26.1 Snapshot 3
1 parent fb05dc4 commit 4d78d53

46 files changed

Lines changed: 1003 additions & 576 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

minecraft/src/main/java/org/polyfrost/oneconfig/api/platform/v1/DeobfuscationRemapper.java

Lines changed: 0 additions & 109 deletions
This file was deleted.

minecraft/src/main/java/org/polyfrost/oneconfig/internal/OneConfig.java

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,6 @@
6565
import org.polyfrost.oneconfig.internal.ui.compose.impls.OneConfigUIScreen;
6666
import org.polyfrost.oneconfig.test.TestMod_Test;
6767

68-
//#if MC > 1.16
69-
//$$ import com.mojang.brigadier.arguments.ArgumentType;
70-
//$$ import net.minecraft.commands.synchronization.EmptyArgumentSerializer;
71-
//$$ import net.minecraft.commands.synchronization.ArgumentSerializer;
72-
//$$ // import org.polyfrost.oneconfig.internal.mixin.command.Mixin_ModernArgumentTypeEntryAccessor;
73-
//$$ import org.polyfrost.oneconfig.internal.mixin.command.Mixin_ModernArgumentTypesAccessor;
74-
//$$ import java.util.Map;
75-
//#endif
76-
77-
import java.util.concurrent.atomic.AtomicBoolean;
78-
7968
/**
8069
* The main class of OneConfig.
8170
*/
@@ -125,7 +114,7 @@ private void init() {
125114
// (Windows) -Drenderdoc.path="C:\Program Files\RenderDoc\renderdoc.dll" (or wherever you installed RenderDoc)
126115
// (Linux) Ensure that librenderdoc.so is available in your LD_PRELOAD
127116
//#if MC >= 1.19.2
128-
//$$ RenderDoc.init();
117+
//$$ // RenderDoc.init();
129118
//#endif
130119

131120
// if (Boolean.getBoolean("oneconfig.test")) {
@@ -157,25 +146,6 @@ private void init() {
157146
@SuppressWarnings({"unchecked", "rawtypes", "UnstableApiUsage"})
158147
private static void registerCommands() {
159148
ClientCommandInternals.initialize();
160-
// //#if MC > 1.16
161-
// //#if MC > 1.19
162-
// // todo still broken on 1.20+
163-
// //$$ net.minecraft.commands.CommandBuildContext cmdCtx = new net.minecraft.commands.CommandBuildContext(net.minecraft.core.RegistryAccess.BUILTIN.get());
164-
// //#endif
165-
// //$$ for (Map.Entry<Class<?>, Object> entry : Mixin_ModernArgumentTypesAccessor.getArgumentTypes().entrySet()) {
166-
// //$$ ArgumentSerializer serializer = ((Mixin_ModernArgumentTypeEntryAccessor) entry.getValue()).getSerializer();
167-
// //$$ if (serializer instanceof EmptyArgumentSerializer<?>) {
168-
// //$$ CommandManager.INSTANCE.registerArgumentType(
169-
// //$$ (Class) entry.getKey(),
170-
// //$$ ((EmptyArgumentSerializer<ArgumentType<?>>) serializer).deserializeFromNetwork(null)
171-
// //$$ //#if MC > 1.19
172-
// //$$ //$$ .instantiate(cmdCtx)
173-
// //$$ //#endif
174-
// //$$ );
175-
// //$$ }
176-
// //$$ }
177-
// //#endif
178-
179149
Command<OmniClientCommandSource> executor = (ctx) -> ctx.getSource().openScreen(new OneConfigUIScreen());
180150

181151
LiteralCommandNode<OmniClientCommandSource> node = OmniClientCommands.literal("oneconfig")

minecraft/src/main/java/org/polyfrost/oneconfig/internal/OneConfigMixinInit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ public List<String> getMixins() {
104104

105105
//#if MC >= 1.16
106106
//$$ mixins.add("events.Mixin_ModernWindowFocusEvent");
107-
//$$ mixins.add("command.Mixin_ModernArgumentTypesAccessor");
108107
//$$ // mixins.add("command.Mixin_ModernArgumentTypeEntryAccessor");
109108
//#if MC < 1.19
110109
//$$ mixins.add("fixes.Mixin_LazyDataFixerUpper");
@@ -124,6 +123,7 @@ public List<String> getMixins() {
124123

125124
mixins.add("skia.Mixin_InitSkia");
126125
mixins.add("skia.Mixin_SkiaFrame");
126+
mixins.add("skia.Mixin_InitSkiaFontRenderer");
127127
mixins.add("skia.Mixin_FixComposeRaceCondition");
128128

129129
{
Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,2 @@
11
package org.polyfrost.oneconfig.internal.mixin.command;
22

3-
//#if MC >= 1.16
4-
//$$ import org.spongepowered.asm.mixin.Mixin;
5-
//$$ import net.minecraft.commands.synchronization.ArgumentTypes;
6-
//$$ import org.spongepowered.asm.mixin.gen.Accessor;
7-
//$$
8-
//$$ import java.util.Map;
9-
//$$
10-
//$$ @Mixin(ArgumentTypes.class)
11-
//$$ public interface Mixin_ModernArgumentTypesAccessor {
12-
//$$ @Accessor("BY_CLASS")
13-
//$$ public static Map<Class<?>, Object> getArgumentTypes() {
14-
//$$ throw new AssertionError();
15-
//$$ }
16-
//$$ }
17-
//#endif

minecraft/src/main/java/org/polyfrost/oneconfig/internal/mixin/events/Mixin_WorldUnloadEvent.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
package org.polyfrost.oneconfig.internal.mixin.events;
2828

2929
import net.minecraft.client.Minecraft;
30-
import net.minecraft.client.gui.screens.ReceivingLevelScreen;
3130
import net.minecraft.client.multiplayer.ClientLevel;
3231
import org.polyfrost.oneconfig.api.event.v1.EventManager;
3332
import org.polyfrost.oneconfig.api.event.v1.events.WorldEvent;
@@ -45,9 +44,7 @@ public class Mixin_WorldUnloadEvent {
4544
@Inject(
4645
method = "setLevel"
4746
, at = @At("HEAD"))
48-
private void onWorldUnloadCallback(ClientLevel world,
49-
ReceivingLevelScreen.Reason reason,
50-
CallbackInfo ci) {
47+
private void onWorldUnloadCallback(CallbackInfo ci) {
5148
if (this.level != null) {
5249
EventManager.INSTANCE.post(new WorldEvent.Unload(this.level));
5350
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.polyfrost.oneconfig.internal.mixin.skia;
2+
3+
import com.mojang.blaze3d.platform.Window;
4+
import net.minecraft.client.Minecraft;
5+
import org.polyfrost.oneconfig.internal.ui.compose.SkiaCtx;
6+
import org.polyfrost.oneconfig.internal.ui.compose.SkiaFontRenderer;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
@Mixin(Minecraft.class)
14+
public class Mixin_InitSkiaFontRenderer {
15+
@Inject(method = "<init>", at = @At("TAIL"))
16+
void impl$__init__(CallbackInfo ci) {
17+
SkiaFontRenderer.INSTANCE.init();
18+
}
19+
}

minecraft/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/compose/BlurRenderer.kt

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
package org.polyfrost.oneconfig.internal.ui.compose
22

33
import com.mojang.blaze3d.pipeline.RenderTarget
4+
import com.mojang.blaze3d.systems.RenderSystem
45
import net.minecraft.client.Minecraft
5-
import org.jetbrains.skia.BackendRenderTarget
6-
import org.jetbrains.skia.BlendMode
7-
import org.jetbrains.skia.Canvas
8-
import org.jetbrains.skia.ColorSpace
9-
import org.jetbrains.skia.ContentChangeMode
10-
import org.jetbrains.skia.FilterTileMode
11-
import org.jetbrains.skia.FramebufferFormat
12-
import org.jetbrains.skia.ImageFilter
13-
import org.jetbrains.skia.Paint
14-
import org.jetbrains.skia.Rect
15-
import org.jetbrains.skia.Surface
16-
import org.jetbrains.skia.SurfaceColorFormat
17-
import org.jetbrains.skia.SurfaceOrigin
6+
import org.jetbrains.skia.*
7+
188

199
object BlurRenderer {
2010
private val client get() = Minecraft.getInstance()
@@ -49,7 +39,12 @@ object BlurRenderer {
4939
}
5040

5141
private fun resolveSurface(target: RenderTarget, width: Int, height: Int): Surface? {
42+
//#if MC >= 1.21.5
43+
//$$ val frameBufferId = getFboId(target) // praying ts works 🙏🙏
44+
//#else
5245
val frameBufferId = target.frameBufferId
46+
//#endif
47+
5348
if (width <= 0 || height <= 0 || frameBufferId <= 0) {
5449
return null
5550
}
@@ -96,6 +91,22 @@ object BlurRenderer {
9691
return surface
9792
}
9893

94+
//#if MC >= 1.21.5
95+
/**
96+
* Credits: lowercasebtw
97+
* Taken from: https://discord.com/channels/507304429255393322/807617488313516032/1452333789778018314 (The Fabric Project)
98+
*/
99+
//$$ fun getFboId(frameBuffer: RenderTarget): Int {
100+
//$$ val device = RenderSystem.getDevice()
101+
//$$ if (device !is com.mojang.blaze3d.opengl.GlDevice) {
102+
//$$ return -1
103+
//$$ } else {
104+
//$$ val texture = (frameBuffer.getColorTexture() as com.mojang.blaze3d.opengl.GlTexture?) ?: error("well, someone messed up!")
105+
//$$ return texture.getFbo((device as com.mojang.blaze3d.opengl.GlDevice).directStateAccess(), frameBuffer.getDepthTexture())
106+
//$$ }
107+
//$$ }
108+
//#endif
109+
99110
private fun paintFor(radius: Float): Paint = paints.getOrPut(radius) {
100111
Paint().also { paint ->
101112
paint.blendMode = BlendMode.SRC

minecraft/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/compose/ComposeRenderer.kt

Lines changed: 0 additions & 93 deletions
This file was deleted.

0 commit comments

Comments
 (0)