From d67a3b0525612b6e18bc633dacc30a298679df81 Mon Sep 17 00:00:00 2001 From: god-bypass <2lascoux.alexandre@gmail.com> Date: Fri, 4 Jul 2025 21:27:51 +0200 Subject: [PATCH 1/5] fix: errors fix: blur feat: 1.21.7 --- .../java/com/cinemamod/mcef/MCEFBrowser.java | 12 +++---- .../com/cinemamod/mcef/MCEFDownloader.java | 1 - .../java/com/cinemamod/mcef/MCEFRenderer.java | 19 +++++------ .../cinemamod/mcef/example/ExampleScreen.java | 3 +- .../mcef/internal/MCEFDownloaderMenu.java | 32 +++++++++---------- fabric/gradle.properties | 8 ++--- gradle.properties | 6 ++-- neoforge/gradle.properties | 6 ++-- 8 files changed, 44 insertions(+), 43 deletions(-) diff --git a/common/src/main/java/com/cinemamod/mcef/MCEFBrowser.java b/common/src/main/java/com/cinemamod/mcef/MCEFBrowser.java index 828b795c..bedf0c37 100644 --- a/common/src/main/java/com/cinemamod/mcef/MCEFBrowser.java +++ b/common/src/main/java/com/cinemamod/mcef/MCEFBrowser.java @@ -21,7 +21,7 @@ package com.cinemamod.mcef; import com.cinemamod.mcef.listeners.MCEFCursorChangeListener; -import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.opengl.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import org.cef.browser.CefBrowser; @@ -157,8 +157,8 @@ public void onPaint(CefBrowser browser, boolean popup, Rectangle[] dirtyRects, B renderer.onPaint(buffer, width, height); } else { if (renderer.getTextureID() == 0) return; - RenderSystem.bindTexture(renderer.getTextureID()); - RenderSystem.pixelStore(GL_UNPACK_ROW_LENGTH, width); + GlStateManager._bindTexture(renderer.getTextureID()); + GlStateManager._pixelStore(GL_UNPACK_ROW_LENGTH, width); for (Rectangle dirtyRect : dirtyRects) { GlStateManager._pixelStore(GL_UNPACK_SKIP_PIXELS, dirtyRect.x); GlStateManager._pixelStore(GL_UNPACK_SKIP_ROWS, dirtyRect.y); @@ -176,7 +176,7 @@ public void onPaint(CefBrowser browser, boolean popup, Rectangle[] dirtyRects, B } else if (popupDrawn) { // else, a use copy of the popup graphics, as it needs to remain visible // and for some reason that I do not for the life of me understand, chromium does not seem to keep this data in memory outside of the paint loop, meaning it has to be copied around, which wastes performance - RenderSystem.pixelStore(GL_UNPACK_ROW_LENGTH, popupSize.width); + GlStateManager._pixelStore(GL_UNPACK_ROW_LENGTH, popupSize.width); GlStateManager._pixelStore(GL_UNPACK_SKIP_PIXELS, 0); GlStateManager._pixelStore(GL_UNPACK_SKIP_ROWS, 0); renderer.onPaint(popupGraphics, popupSize.x, popupSize.y, popupSize.width, popupSize.height); @@ -185,11 +185,11 @@ public void onPaint(CefBrowser browser, boolean popup, Rectangle[] dirtyRects, B } } else { if (renderer.getTextureID() == 0) return; - RenderSystem.bindTexture(renderer.getTextureID()); + GlStateManager._bindTexture(renderer.getTextureID()); int start = buffer.capacity(); int end = 0; for (Rectangle dirtyRect : dirtyRects) { - RenderSystem.pixelStore(GL_UNPACK_ROW_LENGTH, popupSize.width); + GlStateManager._pixelStore(GL_UNPACK_ROW_LENGTH, popupSize.width); GlStateManager._pixelStore(GL_UNPACK_SKIP_PIXELS, dirtyRect.x); GlStateManager._pixelStore(GL_UNPACK_SKIP_ROWS, dirtyRect.y); renderer.onPaint(buffer, popupSize.x + dirtyRect.x, popupSize.y + dirtyRect.y, dirtyRect.width, dirtyRect.height); diff --git a/common/src/main/java/com/cinemamod/mcef/MCEFDownloader.java b/common/src/main/java/com/cinemamod/mcef/MCEFDownloader.java index 4b82ee8e..219266fd 100644 --- a/common/src/main/java/com/cinemamod/mcef/MCEFDownloader.java +++ b/common/src/main/java/com/cinemamod/mcef/MCEFDownloader.java @@ -79,7 +79,6 @@ public void downloadJavaCefBuild() throws IOException { /** * @return true if the jcef build checksum file matches the remote checksum file (for the {@link MCEFDownloader#javaCefCommitHash}), * false if the jcef build checksum file did not exist or did not match; this means we should redownload JCEF - * @throws IOException */ public boolean downloadJavaCefChecksum() throws IOException { File mcefLibrariesPath = new File(System.getProperty("mcef.libraries.path")); diff --git a/common/src/main/java/com/cinemamod/mcef/MCEFRenderer.java b/common/src/main/java/com/cinemamod/mcef/MCEFRenderer.java index 240f8298..6119bc19 100644 --- a/common/src/main/java/com/cinemamod/mcef/MCEFRenderer.java +++ b/common/src/main/java/com/cinemamod/mcef/MCEFRenderer.java @@ -20,6 +20,7 @@ package com.cinemamod.mcef; +import com.mojang.blaze3d.opengl.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; import java.nio.ByteBuffer; @@ -36,10 +37,10 @@ protected MCEFRenderer(boolean transparent) { public void initialize() { textureID[0] = glGenTextures(); - RenderSystem.bindTexture(textureID[0]); - RenderSystem.texParameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - RenderSystem.texParameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - RenderSystem.bindTexture(0); + GlStateManager._bindTexture(textureID[0]); + GlStateManager._texParameter(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + GlStateManager._texParameter(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + GlStateManager._bindTexture(0); } public int getTextureID() { @@ -59,11 +60,11 @@ protected void cleanup() { protected void onPaint(ByteBuffer buffer, int width, int height) { if (textureID[0] == 0) return; - if (transparent) RenderSystem.enableBlend(); - RenderSystem.bindTexture(textureID[0]); - RenderSystem.pixelStore(GL_UNPACK_ROW_LENGTH, width); - RenderSystem.pixelStore(GL_UNPACK_SKIP_PIXELS, 0); - RenderSystem.pixelStore(GL_UNPACK_SKIP_ROWS, 0); + if (transparent) GlStateManager._enableBlend(); + GlStateManager._bindTexture(textureID[0]); + GlStateManager._pixelStore(GL_UNPACK_ROW_LENGTH, width); + GlStateManager._pixelStore(GL_UNPACK_SKIP_PIXELS, 0); + GlStateManager._pixelStore(GL_UNPACK_SKIP_ROWS, 0); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, buffer); } diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java index 7e613619..52223fac 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java @@ -24,6 +24,7 @@ import com.cinemamod.mcef.MCEFBrowser; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.GpuTexture; +import com.mojang.blaze3d.textures.GpuTextureView; import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.MeshData; @@ -93,7 +94,7 @@ public void render(GuiGraphics guiGraphics, int i, int j, float f) { super.render(guiGraphics, i, j, f); // RenderSystem.disableDepthTest(); // RenderSystem.setShader(CoreShaders.POSITION_TEX_COLOR); - GpuTexture texture = RenderSystem.getShaderTexture(browser.getRenderer().getTextureID()); + GpuTextureView texture = RenderSystem.getShaderTexture(browser.getRenderer().getTextureID()); RenderSystem.setShaderTexture(0, texture); Tesselator t = Tesselator.getInstance(); BufferBuilder buffer = t.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); diff --git a/common/src/main/java/com/cinemamod/mcef/internal/MCEFDownloaderMenu.java b/common/src/main/java/com/cinemamod/mcef/internal/MCEFDownloaderMenu.java index 83b5992f..b5e6578e 100644 --- a/common/src/main/java/com/cinemamod/mcef/internal/MCEFDownloaderMenu.java +++ b/common/src/main/java/com/cinemamod/mcef/internal/MCEFDownloaderMenu.java @@ -27,6 +27,7 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.TitleScreen; import net.minecraft.network.chat.Component; +import org.joml.Matrix3x2fStack; public class MCEFDownloaderMenu extends Screen { private final Screen menu; @@ -38,19 +39,19 @@ public MCEFDownloaderMenu(Screen menu) { @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) { - renderBackground(graphics, mouseX, mouseY, partialTick); - double cx = width / 2d; - double cy = height / 2d; + //renderBackground(graphics, mouseX, mouseY, partialTick); + float cx = width / 2f; + float cy = height / 2f; - double progressBarHeight = 14; - double progressBarWidth = width / 3d; // TODO: base off screen with (1/3 of screen) + float progressBarHeight = 14; + float progressBarWidth = width / 3f; // TODO: base off screen with (1/3 of screen) - PoseStack poseStack = graphics.pose(); + Matrix3x2fStack poseStack = graphics.pose(); /* Draw Progress Bar */ - poseStack.pushPose(); - poseStack.translate(cx, cy, 0); - poseStack.translate(-progressBarWidth / 2d, -progressBarHeight / 2d, 0); + poseStack.pushMatrix(); + poseStack.translate(cx, cy); + poseStack.translate(-progressBarWidth / 2f, -progressBarHeight / 2f); graphics.fill( // bar border 0, 0, (int) progressBarWidth, @@ -69,7 +70,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTi (int) progressBarHeight - 4, -1 ); - poseStack.popPose(); + poseStack.popMatrix(); // putting this here incase I want to re-add a third line later on // allows me to generalize the code to not care about line count @@ -81,11 +82,10 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTi /* Draw Text */ // calculate offset for the top line int oSet = ((font.lineHeight / 2) + ((font.lineHeight + 2) * (text.length + 2))) + 4; - poseStack.pushPose(); + poseStack.pushMatrix(); poseStack.translate( (int) (cx), - (int) (cy - oSet), - 0 + (int) (cy - oSet) ); // draw menu name graphics.drawString( @@ -98,10 +98,10 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTi int index = 0; for (String s : text) { if (index == 1) { - poseStack.translate(0, font.lineHeight + 2, 0); + poseStack.translate(0, font.lineHeight + 2); } - poseStack.translate(0, font.lineHeight + 2, 0); + poseStack.translate(0, font.lineHeight + 2); graphics.drawString( font, s, @@ -110,7 +110,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTi ); index++; } - poseStack.popPose(); + poseStack.pushMatrix(); // TODO: if listener.isFailed(), draw some "Failed to initialize MCEF" text with an "OK" button to proceed } diff --git a/fabric/gradle.properties b/fabric/gradle.properties index 26c8e0b6..40f5d66a 100644 --- a/fabric/gradle.properties +++ b/fabric/gradle.properties @@ -1,11 +1,11 @@ org.gradle.jvmargs=-Xmx4G org.gradle.daemon=false -minecraft_dependency=1.21.4 -curseforge_minecraft_version=1.21.4 +minecraft_dependency=1.21.7 +curseforge_minecraft_version=1.21.7 -fabric_version=0.119.5+1.21.5 -min_fabric_version=0.119.5+1.21.5 +fabric_version=0.128.2+1.21.7 +min_fabric_version=0.128.2+1.21.7 maven_group=com.cinemamod archives_base_name=mcef-fabric diff --git a/gradle.properties b/gradle.properties index fe06a380..9a7dd181 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,18 +2,18 @@ org.gradle.jvmargs=-Xmx4G org.gradle.daemon=false java_version=21 -minecraft_version=1.21.4 +minecraft_version=1.21.7 fabric_loader_version=0.16.9 mod_compatibility_version=21 # For snapshots, append -SNAPSHOT -mcef_version=2.1.6-1.21.4 +mcef_version=2.1.6-1.21.7 mod_id=mcef mod_name=MCEF (Minecraft Chromium Embedded Framework) mod_vendor=CinemaMod Group -fabric_loom_version=1.10-SNAPSHOT +fabric_loom_version=1.10.1 cursegradle_version=1.4.0 shadow_version=8.1.1 diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties index 62d3bd03..76f33a4e 100644 --- a/neoforge/gradle.properties +++ b/neoforge/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx4G org.gradle.daemon=false -neoforge_version=21.5.0-beta +neoforge_version=21.7.4-beta loader_version=[1,) neoforge_dependency=[21.5.0-beta,) @@ -12,5 +12,5 @@ curse_id=636236 release_type=release recommended=true -neogradle.subsystems.parchment.minecraftVersion=1.21.4 -neogradle.subsystems.parchment.mappingsVersion=2025.01.05 +neogradle.subsystems.parchment.minecraftVersion=1.21.6 +neogradle.subsystems.parchment.mappingsVersion=2025.06.29 From 2adda251867a82b34bab7f92cf4a1cd95a5bde51 Mon Sep 17 00:00:00 2001 From: god-bypass <2lascoux.alexandre@gmail.com> Date: Sat, 5 Jul 2025 09:11:38 +0200 Subject: [PATCH 2/5] chore: clarification --- .../mcef/example/ExampleGlTexture.java | 60 +++++++++++++++++++ .../cinemamod/mcef/example/ExampleScreen.java | 48 +++++++++------ .../mcef/example/ExampleTexture.java | 43 +++++++++++++ .../mcef/mixins/ExampleTextureMixin.java | 13 ++++ .../cinemamod/mcef/mixins/ScreenMixin.java | 24 ++++++++ common/src/main/resources/mcef.mixins.json | 4 +- 6 files changed, 174 insertions(+), 18 deletions(-) create mode 100644 common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java create mode 100644 common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java create mode 100644 common/src/main/java/com/cinemamod/mcef/mixins/ExampleTextureMixin.java create mode 100644 common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java new file mode 100644 index 00000000..91ea97d6 --- /dev/null +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java @@ -0,0 +1,60 @@ +package com.cinemamod.mcef.example; + +import com.cinemamod.mcef.mixins.ExampleTextureMixin; +import com.mojang.blaze3d.opengl.GlTexture; +import com.mojang.blaze3d.textures.TextureFormat; + +public class ExampleGlTexture extends GlTexture { + + protected int width; + protected int height; + public ExampleGlTexture(int usage, String label, TextureFormat texFormat, int width, int height, int depthOrLayers, int mipLevels, int glId) { + super(usage, label, texFormat, width, height, depthOrLayers, mipLevels, glId); + this.width = width; + this.height = height; + } + + @Override + public int getWidth(int i) { + return this.width >> i; + } + + public void setWidth(int width) { + this.width = width; + } + + @Override + public int getHeight(int i) { + return this.height >> i; + } + + public void setHeight(int height) { + this.height = height; + } + + @Override + public int glId() { + return this.id; + } + + public void setGlId(int id) { + ExampleTextureMixin mixin = (ExampleTextureMixin) (Object) this; + mixin.setId(id); + } + + @Override + public void addViews() { + // do nothing + } + + @Override + public void removeViews() { + // do nothing + } + + @Override + public void close() { + // do nothing + } + +} \ No newline at end of file diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java index 52223fac..4ebc773a 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java @@ -22,8 +22,8 @@ import com.cinemamod.mcef.MCEF; import com.cinemamod.mcef.MCEFBrowser; +import com.mojang.blaze3d.opengl.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.textures.GpuTexture; import com.mojang.blaze3d.textures.GpuTextureView; import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.DefaultVertexFormat; @@ -33,14 +33,22 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.ARGB; + +import java.awt.*; +import java.util.UUID; public class ExampleScreen extends Screen { private static final int BROWSER_DRAW_OFFSET = 20; private MCEFBrowser browser; + protected ResourceLocation exampleLocation; + protected ExampleTexture exampleTexture; - protected ExampleScreen(Component component) { + public ExampleScreen(Component component) { super(component); } @@ -48,10 +56,16 @@ protected ExampleScreen(Component component) { protected void init() { super.init(); if (browser == null) { + exampleLocation = ResourceLocation.fromNamespaceAndPath("example", "frame_" + UUID.randomUUID().toString().replace("-", "")); + + exampleTexture = new ExampleTexture(-1, this.exampleLocation.toString()); String url = "https://www.google.com"; - boolean transparent = true; + boolean transparent = false; browser = MCEF.createBrowser(url, transparent); resizeBrowser(); + + Minecraft.getInstance().getTextureManager().register(this.exampleLocation, this.exampleTexture); + } } @@ -77,6 +91,10 @@ private void resizeBrowser() { } } + private void updateFrame() { + this.exampleTexture.setId(this.browser.getRenderer().getTextureID()); + } + @Override public void resize(Minecraft minecraft, int i, int j) { super.resize(minecraft, i, j); @@ -92,20 +110,16 @@ public void onClose() { @Override public void render(GuiGraphics guiGraphics, int i, int j, float f) { super.render(guiGraphics, i, j, f); -// RenderSystem.disableDepthTest(); -// RenderSystem.setShader(CoreShaders.POSITION_TEX_COLOR); - GpuTextureView texture = RenderSystem.getShaderTexture(browser.getRenderer().getTextureID()); - RenderSystem.setShaderTexture(0, texture); - Tesselator t = Tesselator.getInstance(); - BufferBuilder buffer = t.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); - buffer.addVertex(BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, 0).setUv(0.0f, 1.0f).setColor(255, 255, 255, 255); - buffer.addVertex(width - BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, 0).setUv(1.0f, 1.0f).setColor(255, 255, 255, 255); - buffer.addVertex(width - BROWSER_DRAW_OFFSET, BROWSER_DRAW_OFFSET, 0).setUv(1.0f, 0.0f).setColor(255, 255, 255, 255); - buffer.addVertex(BROWSER_DRAW_OFFSET, BROWSER_DRAW_OFFSET, 0).setUv(0.0f, 0.0f).setColor(255, 255, 255, 255); - MeshData data = buffer.build(); -// BufferUploader.drawWithShader(buffer.build()); - RenderSystem.setShaderTexture(0, texture); -// RenderSystem.enableDepthTest(); + this.updateFrame(); + guiGraphics.blit( + RenderPipelines.GUI_TEXTURED, + this.exampleLocation, + BROWSER_DRAW_OFFSET, BROWSER_DRAW_OFFSET, + 0, 0, + width - BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, + width - BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, + Color.white.getRGB() + ); } @Override diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java new file mode 100644 index 00000000..d860c969 --- /dev/null +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java @@ -0,0 +1,43 @@ +package com.cinemamod.mcef.example; + +import com.mojang.blaze3d.systems.GpuDevice; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.textures.FilterMode; +import com.mojang.blaze3d.textures.TextureFormat; +import net.minecraft.client.renderer.texture.AbstractTexture; +import org.jetbrains.annotations.NotNull; + +public class ExampleTexture extends AbstractTexture { + protected final ExampleGlTexture glTexture; + + public ExampleTexture(int id, @NotNull String label) { + this.glTexture = new ExampleGlTexture(5, label, TextureFormat.RGBA8, 100, 100, 1, 1, id); + this.glTexture.setTextureFilter(FilterMode.NEAREST, false); + this.texture = this.glTexture; + GpuDevice device = RenderSystem.getDevice(); + this.textureView = device.createTextureView(this.texture); + } + + @Override + public void setFilter(boolean $$0, boolean $$1) { + // do nothing + } + + @Override + public void setClamp(boolean $$0) { + // do nothing + } + + public void setId(int id) { + this.glTexture.setGlId(id); + } + + public void setWidth(int width) { + this.glTexture.setWidth(width); + } + + public void setHeight(int height) { + this.glTexture.setHeight(height); + } + +} diff --git a/common/src/main/java/com/cinemamod/mcef/mixins/ExampleTextureMixin.java b/common/src/main/java/com/cinemamod/mcef/mixins/ExampleTextureMixin.java new file mode 100644 index 00000000..fa989e59 --- /dev/null +++ b/common/src/main/java/com/cinemamod/mcef/mixins/ExampleTextureMixin.java @@ -0,0 +1,13 @@ +package com.cinemamod.mcef.mixins; + +import com.mojang.blaze3d.opengl.GlTexture; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(GlTexture.class) +public interface ExampleTextureMixin { + @Accessor("id") + @Mutable + void setId(int id); +} diff --git a/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java b/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java new file mode 100644 index 00000000..4bf5c39b --- /dev/null +++ b/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java @@ -0,0 +1,24 @@ +package com.cinemamod.mcef.mixins; + +import com.cinemamod.mcef.example.ExampleScreen; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; +import net.minecraft.network.chat.Component; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +/** + * Temporary class, remove on production, + * keybinds doesnt work on my env too lazy to fix + * */ +@Mixin(InventoryScreen.class) +public class ScreenMixin { + @Inject(method = "render", at = @At("HEAD")) + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick, CallbackInfo ci) { + Minecraft mc = Minecraft.getInstance(); + mc.setScreen(new ExampleScreen(Component.empty())); + } +} diff --git a/common/src/main/resources/mcef.mixins.json b/common/src/main/resources/mcef.mixins.json index 3e63296e..fd301cf2 100644 --- a/common/src/main/resources/mcef.mixins.json +++ b/common/src/main/resources/mcef.mixins.json @@ -10,7 +10,9 @@ "CefDownloadMixin", "CefInitMixin", "CefRenderUpdateMixin", - "CefWindowsShutdownMixin" + "CefWindowsShutdownMixin", + "ExampleTextureMixin", + "ScreenMixin" ], "injectors": { "defaultRequire": 1 From 44d124d625acb071ef53d865e0fce4548f415b32 Mon Sep 17 00:00:00 2001 From: god-bypass <2lascoux.alexandre@gmail.com> Date: Sat, 5 Jul 2025 09:13:47 +0200 Subject: [PATCH 3/5] chore: clean up --- .../mcef/example/ExampleGlTexture.java | 18 +----------------- .../cinemamod/mcef/example/ExampleScreen.java | 11 ++--------- .../cinemamod/mcef/example/ExampleTexture.java | 10 ---------- .../com/cinemamod/mcef/mixins/ScreenMixin.java | 1 - 4 files changed, 3 insertions(+), 37 deletions(-) diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java index 91ea97d6..d8514d42 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleGlTexture.java @@ -38,23 +38,7 @@ public int glId() { } public void setGlId(int id) { - ExampleTextureMixin mixin = (ExampleTextureMixin) (Object) this; - mixin.setId(id); - } - - @Override - public void addViews() { - // do nothing - } - - @Override - public void removeViews() { - // do nothing - } - - @Override - public void close() { - // do nothing + ((ExampleTextureMixin) this).setId(id); } } \ No newline at end of file diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java index 4ebc773a..896d97cb 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java @@ -22,21 +22,12 @@ import com.cinemamod.mcef.MCEF; import com.cinemamod.mcef.MCEFBrowser; -import com.mojang.blaze3d.opengl.GlStateManager; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.textures.GpuTextureView; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.MeshData; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.ARGB; import java.awt.*; import java.util.UUID; @@ -93,6 +84,8 @@ private void resizeBrowser() { private void updateFrame() { this.exampleTexture.setId(this.browser.getRenderer().getTextureID()); + this.exampleTexture.setWidth(this.width); + this.exampleTexture.setHeight(this.height); } @Override diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java index d860c969..ed7577b6 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleTexture.java @@ -18,16 +18,6 @@ public ExampleTexture(int id, @NotNull String label) { this.textureView = device.createTextureView(this.texture); } - @Override - public void setFilter(boolean $$0, boolean $$1) { - // do nothing - } - - @Override - public void setClamp(boolean $$0) { - // do nothing - } - public void setId(int id) { this.glTexture.setGlId(id); } diff --git a/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java b/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java index 4bf5c39b..c695252e 100644 --- a/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java +++ b/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java @@ -3,7 +3,6 @@ import com.cinemamod.mcef.example.ExampleScreen; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.InventoryScreen; import net.minecraft.network.chat.Component; import org.spongepowered.asm.mixin.Mixin; From cf1d859e1cb2aaeb85d3b95a42691009d335dbe5 Mon Sep 17 00:00:00 2001 From: god-bypass <2lascoux.alexandre@gmail.com> Date: Sat, 5 Jul 2025 09:23:53 +0200 Subject: [PATCH 4/5] chore: removed my temp --- .../cinemamod/mcef/mixins/ScreenMixin.java | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java diff --git a/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java b/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java deleted file mode 100644 index c695252e..00000000 --- a/common/src/main/java/com/cinemamod/mcef/mixins/ScreenMixin.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.cinemamod.mcef.mixins; - -import com.cinemamod.mcef.example.ExampleScreen; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.screens.inventory.InventoryScreen; -import net.minecraft.network.chat.Component; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -/** - * Temporary class, remove on production, - * keybinds doesnt work on my env too lazy to fix - * */ -@Mixin(InventoryScreen.class) -public class ScreenMixin { - @Inject(method = "render", at = @At("HEAD")) - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick, CallbackInfo ci) { - Minecraft mc = Minecraft.getInstance(); - mc.setScreen(new ExampleScreen(Component.empty())); - } -} From c3208058fa6e84b7ba6fc6a411ea7249018e4571 Mon Sep 17 00:00:00 2001 From: god-bypass <2lascoux.alexandre@gmail.com> Date: Sat, 5 Jul 2025 09:26:25 +0200 Subject: [PATCH 5/5] fix: width and height of example fix: removed deleted class from m config --- .../main/java/com/cinemamod/mcef/example/ExampleScreen.java | 4 ++-- common/src/main/resources/mcef.mixins.json | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java index 896d97cb..e4fa7416 100644 --- a/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java +++ b/common/src/main/java/com/cinemamod/mcef/example/ExampleScreen.java @@ -109,8 +109,8 @@ public void render(GuiGraphics guiGraphics, int i, int j, float f) { this.exampleLocation, BROWSER_DRAW_OFFSET, BROWSER_DRAW_OFFSET, 0, 0, - width - BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, - width - BROWSER_DRAW_OFFSET, height - BROWSER_DRAW_OFFSET, + width - BROWSER_DRAW_OFFSET * 2, height - BROWSER_DRAW_OFFSET * 2, + width - BROWSER_DRAW_OFFSET * 2, height - BROWSER_DRAW_OFFSET * 2, Color.white.getRGB() ); } diff --git a/common/src/main/resources/mcef.mixins.json b/common/src/main/resources/mcef.mixins.json index fd301cf2..b6d5b0b2 100644 --- a/common/src/main/resources/mcef.mixins.json +++ b/common/src/main/resources/mcef.mixins.json @@ -11,8 +11,7 @@ "CefInitMixin", "CefRenderUpdateMixin", "CefWindowsShutdownMixin", - "ExampleTextureMixin", - "ScreenMixin" + "ExampleTextureMixin" ], "injectors": { "defaultRequire": 1