Commit graph

2107 commits

Author SHA1 Message Date
PepperCode1
cd64f96d01 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/mixin/LevelRendererMixin.java
	src/main/resources/flywheel.mixins.json
2022-01-09 11:09:24 -08:00
Jozufozu
b2c03a4069 Conditional state restore and BufferUploader sanity check
- Only restore state that has changed
 - Sanity check to fix error condition on reset
2022-01-08 16:48:42 -08:00
Jozufozu
3391e3e168 GlStateTracker for better state restore
- Replaces both ShaderInstanceAccessor and BufferUploaderAccessor
2022-01-08 14:51:55 -08:00
Jozufozu
b6a00b54dd Fix crash rendering biome-tinted blocks on contraptions
- Biome colors now line up with the world
2022-01-07 14:18:59 -08:00
Jozufozu
01fb788fa3 Reduce merge conflicts with shader-sanity 2022-01-07 11:50:01 -08:00
PepperCode1
ec97b82ed6 Add Iris compatibility
- Use the Iris API to detect shader rendering state
- Remove CommandNameProviderEnum and use a Function argument instead
2022-01-06 15:25:52 -08:00
Jozufozu
e4182a7f1e RenderLayers directly store DrawBuffers
- Inspired by pepper's BlockEntityTypeExtensions
 - Document the batching engine internals.
2022-01-06 15:25:00 -08:00
PepperCode1
05c6d9d685 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/mixin/RenderHooksMixin.java
	src/main/resources/flywheel.mixins.json
2022-01-06 14:03:34 -08:00
Jozufozu
5c4ff9ca2a Fix visual artifacts with contraptions while using opfine.
I think the buffers from the shadow pass were bleeding into the color pass.
2022-01-06 13:04:16 -08:00
Jozufozu
e0342c4b78 Better state restore in InstancingEngine
- Attempt to fix optifine issues
 - Replace <code> with {@code}
2022-01-06 13:04:16 -08:00
PepperCode1
0a8a9551c7 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev 2022-01-04 21:50:33 -08:00
Jozufozu
379fe60ce6 Document, annotate, and rename
- Add documentation for new InstancedRenderRegistry
 - Annotate TypeExtensions with Nullable
 - Add method for creating bulk instances
2022-01-04 14:14:30 -08:00
PepperCode1
b2bc5fd438 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/FlywheelClient.java
	src/main/java/com/jozufozu/flywheel/config/BooleanConfig.java
	src/main/java/com/jozufozu/flywheel/core/vertex/BlockVertex.java
2022-01-04 10:56:09 -08:00
PepperCode1
eb8dc6bc07 Switch to instancing controllers
- Combine InstanceFactories and FlywheelRendered into
InstancingControllers
- Store these controllers directly in the BlockEntity/Entity type
instead of a map for efficiency
- Redo InstancedRenderRegistry to fit these changes
- Rename all tile to block entity
- Remove all interface I prefixes
- Organize imports
- Bump version to 0.5.1
2022-01-03 21:41:08 -08:00
PepperCode1
44f3358f3e Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/FlywheelClient.java
	src/main/java/com/jozufozu/flywheel/event/EntityWorldHandler.java
2021-12-31 12:57:19 -08:00
Jozufozu
4c0df23702 Write active backend to crash reports 2021-12-30 20:01:45 -08:00
Jozufozu
d38e2421c9 Fix crash on resource reload with flywheel disabled
- Closes #83
 - Move engine selection to function
 - Rename Backend.log to Backend.LOGGER
2021-12-30 15:15:25 -08:00
Jozufozu
123a548474 Fix crash on load when backend is off
- Closes #81
 - Disabled crashing on error poll
2021-12-28 20:39:32 -08:00
PepperCode1
c4ef94f5f5 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	build.gradle
	src/main/java/com/jozufozu/flywheel/Flywheel.java
	src/main/java/com/jozufozu/flywheel/config/FlwPackets.java
	src/main/java/com/jozufozu/flywheel/core/model/ModelTransformer.java
	src/main/java/com/jozufozu/flywheel/core/model/ModelUtil.java
2021-12-28 16:19:53 -08:00
Jozufozu
92ad07c779 Batching is not actually compatible with shaders 2021-12-28 15:26:56 -08:00
Jozufozu
179eafecd3 Go through GlVertexArray
- VAO state is now handled by GlVertexArray objects
 - IndexedModel no longer inherits from VBOModel
 - BufferedModel doesn't need #clearState
 - Likely fixes crash on intel drivers
2021-12-27 19:14:19 -08:00
Jozufozu
78030b2f40 Fix contraption lighting
- Actually just one line.
2021-12-27 13:37:09 -08:00
Jozufozu
47e3aaa290 Towards starlight compat
- Steal Mods enum from Create.
 - Cursemaven dep for starlight

Co-authored-by: Aeiou <3160746+aeiouenigma@users.noreply.github.com>
2021-12-26 15:41:20 -08:00
Jozufozu
c153995121 No more diffuse divide
- Move PlacementSimulationWorld to Flywheel as VirtualRenderWorld
 - Simplify ModelTransformer
 - Model doesn't need #configure
2021-12-25 15:51:22 -08:00
PepperCode1
1e9e4e0054 Clean up
- Use Flywheel.rl and Flywheel.ID where ever possible
- Rename Flywheel.log to LOGGER
- Don't add namespace to network channel version
- Use counter for packet IDs
2021-12-24 23:26:18 -08:00
PepperCode1
0d79ee8638 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	build.gradle
	gradle.properties
	src/main/java/com/jozufozu/flywheel/Flywheel.java
	src/main/java/com/jozufozu/flywheel/backend/Loader.java
	src/main/java/com/jozufozu/flywheel/config/BooleanConfig.java
	src/main/java/com/jozufozu/flywheel/config/FlwCommands.java
	src/main/java/com/jozufozu/flywheel/config/FlwConfig.java
	src/main/java/com/jozufozu/flywheel/config/FlwPackets.java
	src/main/java/com/jozufozu/flywheel/core/model/BakedModelModel.java
	src/main/java/com/jozufozu/flywheel/core/model/ModelUtil.java
	src/main/java/com/jozufozu/flywheel/mixin/RenderHooksMixin.java
	src/main/java/com/jozufozu/flywheel/util/BakedQuadWrapper.java
	src/main/java/com/jozufozu/flywheel/util/BufferBuilderReader.java
	src/main/java/com/jozufozu/flywheel/util/RenderUtil.java
2021-12-24 22:55:44 -08:00
PepperCode1
a2b6c4fd9d Fix BufferBuilderReader endianness
- Set split ByteBuffer's order to that of the BufferBuilder's ByteBuffer
in BufferBuilderReader
- Move Fabric-only mixins from mixin.fabric to fabric.mixin and create
separate mixin config
2021-12-24 16:21:57 -08:00
Jozufozu
c268b9cc9b Track VBO and EBO via vanilla 2021-12-24 16:15:20 -08:00
Jozufozu
6c40b8be0b Repack JOML 2021-12-24 02:21:59 -08:00
Jozufozu
f4cdbb73f7 Fix GL error spam and do some cleanup
- Add flywheel$ prefix to mixin duck interfaces/accessors
 - Better chat messages for /flywheel backend command
 - Track VAO via vanilla
2021-12-24 01:45:38 -08:00
Jozufozu
4d5391f5dc Contraptions and engines
- Sort of get the batching engine working for contraptions but this feels wrong
 - TaskEngine gets passed in methods
 - Better naming for TaskEngines
 - Do BufferSource ourselves
 - Change BufferBuilderMixin to allow for injection into BufferBuilder objects
2021-12-23 23:22:52 -08:00
Jozufozu
7c1de5c06a Small config changes
- Make FlwCommands more readable
 - EmptyArgumentSerializer for EngineArgument
2021-12-22 22:29:52 -08:00
Jozufozu
dc5382b658 Fix models being backwards
- Regression in ModelUtil#rotateToFace
2021-12-22 22:01:05 -08:00
Jozufozu
ee2b418ef7 Better config/backend to account for multiple engines
- Rename probably too many things
 - Needs to be tested with Optifine
2021-12-22 21:35:48 -08:00
Jozufozu
99a50631cb Fix diffuse lighting in batching engine
- Complete hack that definitely won't come back to bite me
 - Also slighting change some unsafe writing stuff
2021-12-22 16:11:56 -08:00
Jozufozu
80d41a76af GlBuffer tracks its size
- GlVertexArray#enableArrays
2021-12-22 14:39:34 -08:00
Jozufozu
ede2ba8776 Finally safe vertex formats
- true to false for Pepper
 - IBufferedModel -> BufferedModel
 - VertexFormat -> BufferLayout
 - Use ImmutableList in BufferLayout
 - LayoutItem naming consistency
 - Try to reduce usage of raw BufferLayouts
 - Move vertex interfaces to api package
 - #createWriter and #createReader in VertexType
 - Some documentation
2021-12-22 02:45:45 -08:00
Jozufozu
42365def02 util and core cleanup
- Consolidate/audit utility classes
 - Move more towards sane vertex types
2021-12-22 00:22:41 -08:00
PepperCode1
09f3c495e9 Fix virtual model rendering
- Add various utility classes to allow FRAPI-compatible virtual
rendering
- Fix PartialModel using field instead of getter method
2021-12-21 23:37:52 -08:00
Jozufozu
4f31fa3e9c Make the BatchingEngine not jittery
- Stop having threads compete for a single BufferBuilder
 - ...by skirting around minecraft's BufferSource
 - Begin work on making vertex writing sane
2021-12-21 22:47:29 -08:00
PepperCode1
1ee11c0af9 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/core/model/BlockModel.java
	src/main/java/com/jozufozu/flywheel/core/model/ModelUtil.java
	src/main/java/com/jozufozu/flywheel/util/VirtualEmptyModelData.java
2021-12-21 14:00:02 -08:00
Jozufozu
dc0ba5214b Merge branch '1.18/dev' into 1.18/batching
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/core/model/BlockModel.java
2021-12-21 01:12:47 -08:00
Jozufozu
4908abc9e0 StructType doesn't need #asBatched and #asInstanced
- More organized this way
 - BatchingTransformer function moved into Batched
2021-12-20 22:38:33 -08:00
PepperCode1
3e8644c988 Improve virtual model rendering
- Use VirtualEmptyBlockGetter instead of mc.level
- Move getBufferBuilder from BlockModel to ModelUtil
- Add static .is method to VirtualEmptyModelData
2021-12-20 17:47:30 -08:00
PepperCode1
03c2a51754 Fix "enabled" config command
- Change "enabled" subcommand to "backend" to match Forge version
2021-12-20 00:08:02 -08:00
PepperCode1
d144403d70 Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	README.md
	gradle.properties
	src/main/java/com/jozufozu/flywheel/FlywheelClient.java
	src/main/java/com/jozufozu/flywheel/mixin/RenderHooksMixin.java
	src/main/resources/pack.mcmeta
2021-12-19 23:56:37 -08:00
Jozufozu
a43fe2bc9a No need for getDirtyBitSet
- Faster and simpler to just do one loop
2021-12-17 22:41:22 -08:00
Jozufozu
ffe17e4449 Use task engine/sync to update instances 2021-12-17 02:17:39 -08:00
Jozufozu
f651676dea Proper task engine
- Manual threadpool
 - More control
2021-12-17 01:03:52 -08:00
Jozufozu
431ff92861 Simplify SBB
- SBB -> ModelTransformer
 - Shader binding the minecraft way
 - Engines are responsible for ending batches
2021-12-16 23:10:24 -08:00