Initial port to 26.1.2 - #333
Conversation
# Conflicts: # common/src/api/java/dev/engine_room/flywheel/api/material/Material.java # common/src/lib/java/dev/engine_room/flywheel/lib/model/ModelUtil.java # common/src/lib/java/dev/engine_room/flywheel/lib/model/baked/BakedModelBuilder.java # common/src/lib/java/dev/engine_room/flywheel/lib/model/baked/BlockModelBuilder.java # common/src/vanillin/java/dev/engine_room/vanillin/VanillinInstanceTypes.java # common/src/vanillin/java/dev/engine_room/vanillin/item/ItemModelBuilder.java # common/src/vanillin/java/dev/engine_room/vanillin/mixin/text/BakedGlyphMixin.java # common/src/vanillin/java/dev/engine_room/vanillin/mixin/text/FontAccessor.java # common/src/vanillin/java/dev/engine_room/vanillin/mixin/text/FontSetMixin.java # common/src/vanillin/java/dev/engine_room/vanillin/mixin/text/FontTextureMixin.java # common/src/vanillin/java/dev/engine_room/vanillin/text/BakedGlyphExtension.java # common/src/vanillin/java/dev/engine_room/vanillin/text/FontTextureExtension.java # common/src/vanillin/java/dev/engine_room/vanillin/text/SimpleTextLayer.java # common/src/vanillin/java/dev/engine_room/vanillin/text/TextLayer.java # common/src/vanillin/java/dev/engine_room/vanillin/text/TextUtil.java # common/src/vanillin/java/dev/engine_room/vanillin/text/TextVisual.java # common/src/vanillin/java/dev/engine_room/vanillin/visuals/ItemDisplayVisual.java # common/src/vanillin/java/dev/engine_room/vanillin/visuals/SignVisual.java
Support for new and old rendering styles
Update expected exception wording of testMalformedInclude
* imitate fabric-loom/b13a00e * Fog * Fog II * Bind main render target before submits * What the Helly * Revert "imitate fabric-loom/b13a00e" * Small cleanup * Merge branch '1.21.11/dev' into fork/Evoloxi/1.21.11/dev
# Conflicts: # buildSrc/src/main/kotlin/dev/engine_room/gradle/jarset/JarTaskSet.kt # common/src/vanillin/java/dev/engine_room/vanillin/visuals/ItemVisual.java
| if (!region.fence.isSignaled()) { | ||
| // We can't reclaim this region yet, and we know that all the regions after it are also not ready. | ||
| break; | ||
| try (GpuFence fence = region.fence) { |
There was a problem hiding this comment.
Why GlFence above but GpuFence here? Mind explaining the differences with b3d's API? What's the advantage of switching to it vs keeping around the old Flywheel GlFence?
There was a problem hiding this comment.
No real difference between the two, was mostly done so that moving to b3d later was easier, but it's not as relevent anymore
| ptr = writeFloat(ptr, level.getSkyDarken()); | ||
|
|
||
| ptr = writeInt(ptr, level.effects().constantAmbientLight() ? 1 : 0); | ||
| ptr = writeInt(ptr, level.dimensionType().cardinalLightType().ordinal()); |
|
|
||
| @Inject(method = "extractRenderState", at = @At("TAIL")) | ||
| private void flywheel$extendRenderState(CameraRenderState cameraState, float cameraEntityPartialTicks, CallbackInfo ci) { | ||
| ((CameraRenderStateExtension) cameraState).flywheel$getForwardVector().set(forwardVector()); |
There was a problem hiding this comment.
Ah so we have to add the field to CameraRenderState for it to be copied over here...
Mind leaving a comment explaining how these 2 mixins play into eachother?
| import dev.engine_room.flywheel.backend.gl.GlStateTracker; | ||
| import dev.engine_room.flywheel.backend.gl.buffer.GlBufferType; | ||
|
|
||
| @Mixin(value = GlStateManager.class, remap = false) |
| @Mixin(GpuDevice.class) | ||
| public interface GpuDeviceAccessor { | ||
| @Accessor("backend") | ||
| GpuDeviceBackend flywheel$getBackend(); |
There was a problem hiding this comment.
Oh no we have a name collision with backend now
| private void flywheel$disableTransparencyShaderDepth(CallbackInfo ci) { | ||
| GlStateManager._depthMask(false); | ||
| } | ||
| // TODO 1.21.11: Is this still needed? |
There was a problem hiding this comment.
I don't think it is but we should confirm before merge
| thread.join(); | ||
| } catch (InterruptedException e) { | ||
| // | ||
| } catch (InterruptedException _) { |
| public static void addDebugInfo(Minecraft minecraft, List<String> systemInfo) { | ||
| if (minecraft.showOnlyReducedInfo()) { | ||
| return; | ||
| public static class FlwDebugEntry implements DebugScreenEntry { |
| public Deque<PoseStack.Pose> getPoseStack(PoseStack stack) { | ||
| return ((PoseStackAccessor) stack).flywheel$getPoseStack(); | ||
| public <T extends Entity> boolean affectedByCulling(T entity) { | ||
| EntityRenderer<? super T, ?> renderer = Minecraft.getInstance() |
There was a problem hiding this comment.
Why do we need so many fewer properties now?
There was a problem hiding this comment.
Most were moved to libs.versions.toml which is the more gradle-correct way to manage dependencies
Rebased onto Engine-Room#333 (IThundxr:26.1.2/dev), the real 1.21.1 -> 26.1.2 port, which also migrates NeoForge onto ModDevGradle and Fabric onto Fabric Loom, sidestepping the missing official Mojang mappings. Version bumps: - minecraft 26.1.2 -> 26.2, neoforge 26.1.2.78 -> 26.2.0.67 - fabric-api 0.154.2+26.1.2 -> 0.158.0+26.2 - sodium 0.9.1+mc26.1.2 -> 0.9.2-alpha.4+mc26.2 - iris 1.11.2+26.1 -> 1.11.2+26.2 (both loaders) - org.gradle.configureondemand disabled: with it on, cross-project source set access fails as 'Extension of type SourceSetContainer does not exist' 26.2 API changes in common/lib: - VertexFormatElement is now a record with no static constants, and VertexFormat.builder takes a step rate, so FlywheelVertexFormats builds through addAttribute with GpuFormat values. RGBA8_SNORM for the normal already includes the byte that used to be explicit padding. - VertexFormat.Mode -> com.mojang.blaze3d.PrimitiveTopology - LevelRenderer.getLightCoords -> net.minecraft.util.LightCoordsUtil - Sheets.cutoutBlockSheet -> Sheets.cutoutBlockItemSheet flywheel-common:compileLibJava passes. The backend source set still has 14 errors around render targets and framebuffers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> EOF
No description provided.