Commit Graph

527 Commits

Author SHA1 Message Date
Jozufozu
c0d5c32766 Debugging changes
- MapBufferRange compat layer not needed, missed that
 - Don't need MappedFullBuffer anymore
 - Add guard for size in GPULightVolume#bind
 - LightVolume#getStride not needed
 - Replace usaged of GlError#poll with #pollAndThrow
 - VecBufferConsumer doesn't need a format
2021-12-10 00:07:52 -08:00
Jozufozu
50fdf9bb59 Whoops remove imports 2021-12-09 16:40:01 -08:00
Jozufozu
a84d850299 No more material spec, everything is StructType 2021-12-09 16:34:32 -08:00
Jozufozu
f2d406a02a Move api package 2021-12-09 15:27:56 -08:00
Jozufozu
c5b53a0297 Add RecordingVertexConsumer
- Very basic and untested
2021-12-09 15:19:48 -08:00
Jozufozu
f3c57b4ae4 Reorganize, rename, refactor, 0.4.0
- Move most user facing interfaces to flywheel.api package
 - Refactor InstanceData to have no package private classes
 - Remove 'I' prefix from many interfaces
 - ILightUpdateListener -> LightListener
 - IMultiProgram -> ContextAwareProgram
 - IFlatLight -> FlatLit
 - All materials use the same vertex format: UNLIT_MODEL
2021-12-09 00:42:27 -08:00
Jozufozu
860aee28d8 Fix shulker box rendering 2021-12-08 12:48:18 -08:00
Jozufozu
e575b1c580 #tick and #beginFrame on creation
- Fixes weird delay in object appearance when reloading chunks
2021-12-08 12:28:22 -08:00
Jozufozu
008c6c1e3f Add instances when chunks are built for rendering
- RIP ChunkIter, may you rule over the depths of hell in peace
 - Fix memory leak when instance worlds get reset
 - Server worlds are not flywheel worlds
 - Nothing to do on world load anymore
2021-12-08 12:16:01 -08:00
Jozufozu
9347fb76a4 Fix potential nullpointer rendering breaking overlay
- Should backport for #52
2021-12-07 23:53:13 -08:00
Jozufozu
c20b0142e9 Groups store their types again
- Fix crash rendering breaking overlay
2021-12-07 23:40:45 -08:00
Jozufozu
8669d68af3 VAO state clearing handled in InstancingEngine#render 2021-12-07 23:00:32 -08:00
Jozufozu
89c96aa026 Cull legacy compat boilerplate
- Minecraft is on GL32 now!
2021-12-07 22:47:05 -08:00
Jozufozu
fef41658d0 Quick fix for create's contraptions 2021-12-07 22:45:10 -08:00
Jozufozu
c85effe6ea Merge branch '1.17/dev' into 1.18/dev 2021-12-07 21:29:38 -08:00
Jozufozu
cfea89a371 Get started on a batching engine
- An Engine is a MaterialManager and a RenderDispatcher
 - Refactor InstanceManager's ctor to use the MaterialManager interface instead of the concrete type
 - MaterialManagerImpl -> InstancingEngine
 - Add skeleton for BatchingEngine
 - Hack in InstanceWorld to switch between the 2
 - Rename/move existing MaterialManager impl to new package
2021-12-06 23:36:14 -08:00
Jozufozu
46cbd76fb6 Update to 1.18 2021-12-06 21:29:21 -08:00
Jozufozu
d179a68769 Miscellaneous gl changes while debugging
- Only unbind at the end of MaterialManagerImpl#render
 - Add GlBufferType#bind and #unbind
 - Make GlVertexArray#unbind static
2021-12-06 21:11:51 -08:00
Jozufozu
3a4fb0e43d Do a 180
- Fix inconsistency in minecart model
2021-12-06 17:19:21 -08:00
Jozufozu
79fe04c6ab Vanillaization
- IModels now accept a VertexConsumer
 - IRenderState -> RenderType
 - AbstractInstancer for dealing with InstanceData tidyness
 - Alter crumbling renderer to match new system
 - Add hack to keep track of bound atlas textures
2021-12-06 15:23:26 -08:00
Jozufozu
4d795d257a No more InstanceData#write 2021-12-02 20:13:55 -08:00
Jozufozu
241c50291d Yeet json extensions that idea doesn't make sense
- Was only ever used for fog
 - Was the same for every material
 - Made things unnecessarily complex
 - Fix fog
 - Convert ProgramState to record
2021-12-02 17:40:23 -08:00
Jozufozu
bdcf034f7f Shadows causing trouble? No more shadows 2021-11-27 11:30:38 -08:00
PepperBell
b1f34389b7 Improve StitchedSprite functionality
- Make StitchedSprite work like PartialModel
- Allow StitchedSprite instances to be created directly
- Allow StitchSprites to be created for any atlas
- Use texture stitch post event instead of lazy computation for filling
StitchedSprites
- Remove legacy method from AngleHelper
- Change artifact name from flywheel to flywheel-forge
- Organize imports
2021-11-24 18:43:05 -08:00
Jozufozu
b762b1a7d3 Merge remote-tracking branch 'origin/1.16/dev' into 1.17/dev
# Conflicts:
#	changelog.txt
#	gradle.properties
#	src/main/java/com/jozufozu/flywheel/backend/instancing/InstancedRenderDispatcher.java
#	src/main/java/com/jozufozu/flywheel/config/BooleanConfig.java
#	src/main/java/com/jozufozu/flywheel/config/SConfigureBooleanPacket.java
#	src/main/java/com/jozufozu/flywheel/event/ForgeEvents.java
#	src/main/java/com/jozufozu/flywheel/mixin/RenderHooksMixin.java
#	src/main/java/com/jozufozu/flywheel/util/WorldAttached.java
#	src/main/resources/flywheel.mixins.json
2021-11-23 16:49:39 -08:00
Jozufozu
16f43867b6 Implement TransformStack directly on PoseStack
- Add helper method to cast to the interface.
2021-11-23 15:07:31 -08:00
Jozufozu
37eece8756 Split TransformStack interface
- Now individual components Translate Rotate and Scale
 - Internal change to ModelData, store matrices directly
 - Implement Translate Rotate and Scale for ModelData
 - Implement Translate and Rotate for OrientedData
 - Clean usages of ModelData to use new api when possible
 - WriteSafe and WriteUnsafe for matrices
2021-11-22 18:05:53 -08:00
PepperBell
279e0893c6 Server crash fix and formatting
- Fix matrix mixins being applied on dedicated server
- Expand PartialModel functionality: add location getter and model
setter
- Remove Loader.getResourceType since selective reloading is deprecated
- Organize imports and mixin order
- Other formatting
- Update Gradle and Forge
2021-11-18 14:59:39 -08:00
Jozufozu
3919aaeead TextureBinder for dealing with vanilla RenderTypes 2021-11-09 16:48:54 -08:00
Jozufozu
ecb3fd1540 Instance init
- So that simi can have his cogs.
 - Inheritance is painful when models are acquired in an instance's ctor
2021-11-09 15:03:52 -08:00
Jozufozu
1233c95edb Chipping away at light 2021-11-09 14:59:31 -08:00
Jozufozu
7b5b8cca2a Named models 2021-11-08 20:48:02 -08:00
Jozufozu
18f5561f9a Invalidate regardless 2021-11-05 16:47:27 -07:00
Jozufozu
0c94188613 Revert "Weak hash map in world attached"
This reverts commit 98a3f759b3.
2021-11-05 16:45:39 -07:00
Jozufozu
42522ffc27 Weak hash map in world attached
- More robust solution that listening to WorldEvent.Unload
2021-10-31 19:54:12 -07:00
Jozufozu
ba3ef05aa4 Fix world leak 2021-10-31 19:50:01 -07:00
Jozufozu
bf2525cb2e Remove chunk provider mixin and refactor config packets 2021-10-31 17:24:57 -07:00
Jozufozu
d9bfe82a22 Compat work
- No more net.minecraftforge.common.util usages
 - Replace forge lazy with flywheel lazy
 - Replace forge NonNullSupplier with flywheel NonNullSupplier
 - texture2D -> texture
2021-10-12 12:52:02 -07:00
Jozufozu
59ea700b04 Revert "Rename/refactor many interfaces"
This reverts commit 66aa987dbd.

Can re-think the names later.
2021-09-30 13:43:09 -07:00
Jozufozu
18ed201c93 Rename/refactor many interfaces
- Drop I prefix
 - Inline IMultiProgram
 - Remove unused method in InstanceRendered
2021-09-28 17:54:47 -07:00
Jozufozu
39ce96ec9c Better Block Entity filtering
- Assumes IInstanceRendered#shouldRenderNormally does not change over a BE's life
2021-09-26 22:30:11 -07:00
Jozufozu
79ac9e96e4 Testing + fixing 2021-09-26 21:15:02 -07:00
Jozufozu
7c5e02d2e8 UNTESTED - Replace ATs
- Matrices use #store
 - Accessor for pausedPartialTick
2021-09-26 19:40:53 -07:00
Jozufozu
532e7450e9 GL32 shaders and errors
- Update shaders to glsl 150
 - Objectfy errors
2021-09-20 19:27:04 -07:00
Jozufozu
c504496728 Small things
- Fix minecarts rendering really far away
 - InstanceManager#getInstance now has one job
 - Instance creation moved to InstanceManager#addInternal
 - TransformStack#translateBack for Vec3i
2021-09-17 15:59:20 -07:00
Jozufozu
ca554f5993 F3+A
- Reloading chunks correctly reloads block entity instances
2021-09-17 14:20:35 -07:00
Jozufozu
0c6a75ade5 Always use discard 2021-09-16 20:53:35 -07:00
Jozufozu
7da64cded6 It renders stuff
- The lightmap moved
 - Begin to move away from access transformers
 - .textureManager -> .getTextureManager()
 - RIP cutout, saw that coming
2021-09-16 20:03:45 -07:00
Jozufozu
9976de110d Don't crash when block entities are placed
- Block entities got a huge refactor in 1.17, a lot of the old code needs to be rethought
2021-09-15 14:29:58 -07:00
Jozufozu
d67362cacd Minecraft already stores the projection matrix
mixins--
2021-09-15 14:27:51 -07:00
Jozufozu
d023b27ae8 It launches
- yeet the fog
 - update mixin compatibility level
2021-09-15 13:49:18 -07:00
0b2101c25d Fix obvious errors 2021-09-15 09:26:51 +02:00
2fc54ffbee Remap, update forge, minecraft and java 2021-09-15 09:14:30 +02:00
Jozufozu
0ed59a69ed fixup! Initial data/struct format refactor 2021-09-14 13:52:52 -07:00
Jozufozu
56cb4be580 Revert "Parallel light updates"
Caused a crash, likely related to the use of weak references

This reverts commit c68b2bbf91.
2021-09-14 13:19:52 -07:00
Jozufozu
cc5949a4bb LightPacking utility class 2021-09-14 13:17:13 -07:00
Jozufozu
555cc2e57e Initial data/struct format refactor
- Inspired by jellysquid3's vertex sinks
 - More robust/extensible solution for data writes
2021-09-12 14:49:00 -07:00
Jozufozu
c79084ce57 Parallel light updates 2021-09-12 10:29:29 -07:00
Jozufozu
2ed8c6e2e5 Optimize imports 2021-09-12 09:41:45 -07:00
Jozufozu
aa83cd5c60 Instancer interface
- Entire material/model system finally cleaned up
2021-09-12 09:40:36 -07:00
Jozufozu
b706936be1 Fix compat with optifine shaders, again 2021-09-09 15:30:50 -07:00
Jozufozu
98823e3cf1 Fix BeginFrameEvent not firing with sodium installed
- Rendering is still broken, that fix must come from within sodium
2021-09-09 14:07:35 -07:00
Jozufozu
7e65eaa00d Separate LightVolume and GPULightVolume
- LightVolumes now can act as a light cache with configurable size
 - More GridAlignedBB changes
 - Remove ILightUpdateListeners
 - Simplify pulley rendering using LightVolume
2021-09-08 15:48:49 -07:00
Jozufozu
1f7af0d8b2 Immutable view of GridAlignedBB 2021-09-04 19:57:32 -07:00
Jozufozu
c055873bac Moving light updates
- Better system for moving objects that want to receive light updates
 - LightProvider interface to better abstract light lookups
 - All light listeners use GridAlignedBBs
 - More utility in GridAlignedBB
2021-09-04 16:40:40 -07:00
Jozufozu
352608c2ae Light update convergence
- Move light update logic for all instances to use LightUpdater
 - Begin refactor of LightUpdater to account for moving listeners
2021-08-29 14:40:46 -07:00
Jozufozu
1be7d9a286 Merge branch 'dev' into next 2021-08-25 13:21:42 -07:00
Jozufozu
ae6d953c6b Restore single paramater scale function
- Now has default impl in TransformStack
 - MatrixTransformStack now only overrides xyz scale
2021-08-25 13:15:29 -07:00
Jozufozu
86dbed66af Instanced Minecarts
- Rotations in PartBuilder
 - BlockModels are always UNLIT_MODEL format
2021-08-25 12:53:43 -07:00
MehVahdJukaar
0b2e8834d8 Update TransformStack.java 2021-08-25 21:49:06 +02:00
MehVahdJukaar
e6c67fecc7 Update MatrixTransformStack.java 2021-08-25 21:40:35 +02:00
MehVahdJukaar
e541b6d449 Added 3 parameter scaling function
Simply adds a 3 parameter function to to MatrixTransformStack so a matrix can be scaled on different axis
2021-08-25 20:21:33 +02:00
Jozufozu
68ca281ee8 Interfaces and less log lines
- MateralManager, MaterialGroup, and InstanceMaterial are all interfaces
 - Separate (T)EI facing API from implementation
 - Comment out debug log in ModelPool
2021-08-23 22:34:27 -07:00
Jozufozu
d431318022 Errors and pools
- GlException and error checking WIP
 - Put all models within a material in a ModelPool
 - Instancers directly accept IModels
 - ModelPools are very WIP
2021-08-20 15:05:41 -07:00
Jozufozu
d41acf2bcf Storage clean-up
- Wrapper for sync objects
 - Compat layer for buffer storage
 - Don't get persistent buffers if they're not supported
2021-08-14 15:57:52 -07:00
Jozufozu
f82b9d2d23 Persistent buffers v1.5
- Add new sync function to GlBuffer
2021-08-14 13:33:17 -07:00
Jozufozu
5956fbfaa0 Merge branch 'dev' into shader-pipeline 2021-08-13 16:15:28 -07:00
Jozufozu
6374d6e369 Persistent buffers v1 2021-08-13 16:15:20 -07:00
Jozufozu
55537fb2af Better float array buffering 2021-08-13 13:35:18 -07:00
Jozufozu
550f567190 Random utilities from a messy workspace
- More documentation/clean up some old docs
 - isFirstLoad check on GatherContextEvent
 - Instancers no longer crash on empty model
 - setIdentity on MatrixTransformStack
 - more utilities for TransformStack
 - ModelData "nullification"
2021-08-13 11:23:09 -07:00
Jozufozu
9ac7a79d69 Final loader and temporary ShaderSources 2021-08-10 17:39:11 -07:00
Jozufozu
8f13097a40 Some decoupling
- New Loader class in charge of loading and compiling everything
 - ShaderSources now only loads sources
 - ShaderSources is immutable now
 - Resolver singleton in charge of managing name resolutions
 - ProgramSpecs go through Resolver
 - WorldShaderPipeline no longer needs reference to ShaderSources
2021-08-10 15:20:51 -07:00
Jozufozu
82ea5b1720 A heck of a lot
- Reorganize everything
 - Isolate SourceFile related things
 - Should consider decoupling ShaderLoader from resource loading
 - Document a lot of newer things
 - Index functions
 - Awkward WorldContext builder
 - Template responsible for providing shader inputs
 - Template is now an abstract class
 - Template provides GLSL version
 - ProgramSpecs now only accept one file
2021-08-10 02:06:22 -07:00
Jozufozu
3c24abe837 Reload
- Redo shader loading
 - Now loads an immutable SourceFile containing some metadata
 - Replace legacy compilation pipeline with improved new one using new api
 - Builtins are defined in one file, now "header"
 - New ErrorReporter/ErrorBuilder methods
 - Fancier shader loading errors
2021-08-08 22:33:32 -07:00
Jozufozu
a417b2944c Merge branch 'dev' into shader-pipeline 2021-08-08 17:07:33 -07:00
Jozufozu
ef512d8cf9 Almost there
- WorldContext sort of uses a shader pipeline interface
 - Smarter import resolution
 - Reorganize shader sources
 - Rewritten shader templating
 - Still need builtin support
2021-08-07 01:00:32 -07:00
Jozufozu
a9ae8ca68e More LightVolume guards
- Should fix odd crash
2021-08-06 12:55:56 -07:00
Jozufozu
935f8efc00 Merge branch 'dev' into shader-pipeline 2021-08-06 11:45:39 -07:00
Jozufozu
b266e6014c Whoops remove that import 2021-08-05 15:05:47 -07:00
Jozufozu
344ea74cab Event adjustments to work with optifine shadows 2021-08-05 14:53:22 -07:00
Jozufozu
c2d110e38f More steps towards actually using the new loader 2021-08-05 12:16:17 -07:00
Jozufozu
7bb38afda9 Merge branch 'dev' into shader-pipeline 2021-08-05 00:53:29 -07:00
Jozufozu
0e7a61cfcc Fix #23
- Clamp update divisor
2021-08-04 20:50:37 -07:00
Jozufozu
60c85ec4f6 Fix nullpointer in ModelRenderer
- Somehow managed to only do a check in a subclass
 - Add #empty() helper method to IModel
2021-08-04 14:35:16 -07:00
Jozufozu
e3b1172925 Miscellaneous documentation 2021-08-04 14:35:15 -07:00
Jozufozu
613640df52 Simplify synchronization
- Use `synchronized` on the queue sets in favor of explicit locks.
 - Updates and additions work the same now
 - Move updates processing to separate function
2021-08-03 02:06:41 -07:00
Jordan Ramsay
bf27108b18 Patch to stop the java.util.ConcurrentModificationException. 2021-08-03 16:52:00 +10:00
Jozufozu
94c5b4455d Switch to MIT Licence 2021-08-02 20:07:49 -07:00
Jozufozu
d21f2c73ee Wrong display value for chunk caching command 2021-08-02 14:22:21 -07:00
Jozufozu
7f4399c768 Fix chunk caching race condition add toggle
- /flywheel chunkCaching on|off
 - synchronized ftw
2021-08-02 00:06:26 -07:00
Jozufozu
5f7093fa0e Update changelog and remove dead QuaternionTransformStack.java 2021-07-30 14:34:04 -07:00
Jozufozu
e20612cd30 Fix issue with missing banner pattern textures
Fixes #12

What the heck

CrumblingRenderer gets classloaded early because of its event listener.

CrumblingRenderer had an innocent static reference to a member of ModelBakery.

This caused ModelBakery to classload before additional enums could be injected into BannerPattern.

¯\_(ツ)_/¯
2021-07-29 18:50:47 -07:00
Jozufozu
b47bd45510 Model changes
- Buffered models directly consume IModels
 - Document IModel more
 - Move contraption world render spoofing to flywheel
 - Miscellaneous new RenderMaths
 - Added WorldModel, renders many blocks given a world instance
 - Fix broken transparency on contraptions when using Flywheel
2021-07-29 01:37:47 -07:00
Jozufozu
21269e9dd5 Expose ClippingHelper in BeginFrameEvent 2021-07-28 18:13:47 -07:00
Jozufozu
eded055be8 More info in RenderLayerEvent 2021-07-28 14:18:24 -07:00
Jozufozu
7f58d51017 Documentation and organization
- Add a package-info.java to many packages.
 - Annotate the world parameter in Backend#canUseInstancing as nullable.
 - New utility constructor for BlockModel
 - Note that IDynamicInstance#beginFrame and ITickableInstance#tick are run in parallel.
 - Refactor internals of InstancedRenderDispatcher to group things by InstanceWorlds.
 - InstanceWorlds take over most responsibility for dispatching calls.
 - Simplify massive private call chains in InstanceMaterial.
 - Reorganize methods and add some documentation in MaterialManager, MaterialGroup, InstanceMaterial, and Instancer.
 - Remove unused field from MaterialSpec.
 - Remove unused fields from Instancer and InstanceMaterial
 - Document RenderLayer
 - Add RenderLayer field to RenderLayerEvent
2021-07-27 17:31:58 -07:00
Jozufozu
88241c2a58 Merge branch 'dev' into shader-pipeline
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/backend/ShaderSources.java
2021-07-26 21:58:53 -07:00
Jozufozu
e4bf7f715f Update LightVolume to use enum wrapper for glActiveTexture 2021-07-26 16:18:38 -07:00
Jozufozu
6786e11795 Consistent naming for normal debug mode 2021-07-26 13:42:38 -07:00
Jozufozu
0cdb0c1ff3 Optimize imports 2021-07-23 23:46:30 -07:00
Jozufozu
fd96df1abe MaterialManager and MaterialGroup refactor
- Material manager builder
 - No more overload render method/IProgramCallback
 - MaterialRenderers accept a Program consumer instead
2021-07-23 23:45:31 -07:00
Jozufozu
38418b2f91 Update forge
- but not to 36.2.0 because gradle hates me
2021-07-23 16:45:38 -07:00
Jozufozu
721b3b8633 Basic model abstraction
- Stop providing a buffered model supplier
 - Instead, provide an IModel supplier
 - IModel exposes basic properties of models
 - IModel exposes a method to copy the model to a VecBuffer
2021-07-23 12:26:32 -07:00
Jozufozu
7ad7512e7e Merge branch 'dev' into vanilla-opt
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/backend/instancing/Instancer.java
2021-07-22 14:09:28 -07:00
Jozufozu
1ca23c514f Instance stealing 2021-07-22 14:07:02 -07:00
Jozufozu
418676a0f0 MaterialGroups and massive refactors
- Move material stuff to its own package
 - The various render functions in the material tree now bind to specific render layers
 - Instancers can choose which layer to use
 - The layers are SOLID, CUTOUT, and TRANSPARENT
 - More layers are likely unnecessary, but we'll see
 - Deprecate functions in MaterialManager in favor of more builderesque ones using MaterialGroups
2021-07-21 20:28:20 -07:00
Jozufozu
fe836645aa Instancers like suppliers
- Instancers accept model suppliers instead of models directly
 - gpu resource allocation is deferred until render time
2021-07-19 15:45:00 -07:00
Jozufozu
90173360f4 Prime update divisors
- Smooths out load when ticking too many instances
2021-07-18 18:21:30 -07:00
Jozufozu
e5db27379e Parallel and caching
- NEEDS MORE TESTING
 - Tick and update instances in parallel
 - Mixin to cache chunk lookups
2021-07-18 18:00:09 -07:00
Jozufozu
0d474d0d04 Instanced Shulker boxes
- Preliminary concept of RenderStates
 - Vanilla has this too but it's bloated
2021-07-18 15:05:12 -07:00
Jozufozu
04b906d06f Utilities created during an attempt at signs
- Cuboids can be inverted across Y and Z
 - TransformStack scaling
 - VecBuffer coloring
2021-07-17 17:06:49 -07:00
Jozufozu
7a14827a7b Merge branch 'dev' into shader-pipeline 2021-07-15 12:00:40 -07:00
Jozufozu
f19444e271 Mojmixins 2021-07-15 11:51:57 -07:00
Jozufozu
09e52e974f Remap to Mojmap, update gradle 2021-07-15 11:36:24 -07:00
Jozufozu
30dad72cba Merge branch 'dev' into shader-pipeline 2021-07-14 17:23:47 -07:00
Jozufozu
dfbba8e3d0 Ready for 0.1.1 (finally)
- Might have bumped the version too early.
 - Fix crash rendering breaking overlay after reloading resource packs.
2021-07-14 16:52:35 -07:00
Jozufozu
28a3813652 Fix gl error spam
- CrumblingProgram was trying to upload a uniform before the location was queried.
 - Adjust WorldProgram init to mitigate this in the future.
2021-07-14 15:47:44 -07:00
Jozufozu
1da67aaf1a Fix crash on resource reload
- Backend wasn't properly cleaning up its state
 - Sneaky error in WorldAttached
2021-07-14 15:35:52 -07:00
Jozufozu
349ea33431 Better errors still
- Actually can print something that underlines a span
 - Resolve imports and use the resolutions during building
 - Doesn't actually make sense to have #checkErrors
 - Simplify some regexes
 - Parse structs
2021-07-14 15:20:49 -07:00
Jozufozu
b2a670d4de Merge branch 'dev' into shader-pipeline 2021-07-13 23:31:16 -07:00
Jozufozu
6ed59fb877 Hacky program link debug info
- Log which gl ids are assigned to different programs
 - Log name and basic state information
2021-07-13 15:57:14 -07:00
Jozufozu
a2b740f0d8 Merge branch 'dev' into shader-pipeline
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/core/WorldContext.java
2021-07-12 23:53:35 -07:00
Jozufozu
126cecd856 Protect against java versioning
- Cast ByteBuffers to Buffer before calling #rewind or #flip
2021-07-12 16:45:36 -07:00
Jozufozu
a2100dc758 Clean up
- Material managers should not be inside WorldContext
 - InstancedRenderDispatcher now stores the material managers
 - Delete crumbling material manager on renderer reload
 - CrumblingRenderer gets its own class
 - CrumblingRenderer is less jank overall
 - Defer InstancedRenderRegistry deprecated function removal until 0.3
2021-07-12 16:42:43 -07:00
Jozufozu
d2350667a2 Fix bell not stopping at the bottom of its swing 2021-07-12 15:19:20 -07:00
Jozufozu
3b288738ce Fix import ordering 2021-07-12 15:02:08 -07:00
Jozufozu
2a0757e867 Atlases, bells, breaking
- Bell instance
 - Fix some inconsistencies with PartBuilder
 - Store information on texture atlasses
 - Crumbling overlay fixes
2021-07-12 14:52:54 -07:00
Jozufozu
4a27fbd438 Correctly render chests
- Give up on quaternions
 - Lids lazily update transform matrices
 - MatrixTransformStack
2021-07-11 15:54:51 -07:00
Jozufozu
0a463da724 Actually backwards compat is important
- Reintroduce InstancedRenderRegistry#register methods
 - Deprecate the methods
2021-07-10 18:42:15 -07:00
Jozufozu
fd610d2b62 Rename builders
- *Registrater -> *Config
 - build -> register
2021-07-10 11:36:30 -07:00
Jozufozu
80e851a1f1 Lids everywhere
- Ender chests and trapped chests, too
 - Chests orient themselves correctly
 - Lids do not position themselves correctly
 - Some math, will probably replace with JOML
2021-07-10 11:33:01 -07:00
Jozufozu
9501d01494 Merge branch 'dev' into vanilla-opt
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/FlywheelClient.java
2021-07-09 13:45:52 -07:00
Jozufozu
18848b14e1 PartialModel gets called from the right place 2021-07-09 13:39:56 -07:00
Jozufozu
60d7ca6e91 4d chest
- Refactor InstancedRenderRegistry to allow for 3rd party TEs to have instances
 - Add ChestInstance, incomplete but there
 - Add basic api for building vanilla formatted models
 - Better instance factory registration
2021-07-09 13:24:26 -07:00
Jozufozu
8c470f3158 Sporadic work done in an airport
- Initial ErrorBuilder class
 - Random documentation
2021-07-07 22:08:33 -07:00
Jozufozu
865926e783 Common type and character positions
- Shader source abstractions now inherit from AbstractShaderElement
 - Spans keep track of line and column positions
2021-07-06 12:38:32 -07:00
Jozufozu
a5d282a0ef Load a single file
- Use the new immutable sources system to load a single file
 - It doesn't compile it yet
 - Slightly less verbose name
2021-07-05 12:09:13 -07:00
Jozsef
35ffef8d4b Merge branch 'dev' into shader-pipeline 2021-07-02 13:23:02 -07:00
Jozsef
c79c41c16f Crash fix and refactor
- Check that sectionY is within the bounds of the chunk's section array, fixes #2
 - Refactor usages of Tile and Entity InstanceManagers to refer to the base class InstanceManager<>
2021-07-02 13:12:33 -07:00
Jozsef
07b93e4ec5 More loading tweaks
- Immutable function map
 - Parse #use directives on load
 - Recursive include gathering
 - More sane spec loading in WorldContext
 - StateSensitiveMultiProgram builder
 - Rename confusing game state things
2021-07-02 12:34:12 -07:00
Jozsef
2874efc68e Merge branch 'dev' into shader-pipeline 2021-06-30 16:29:39 -07:00
Jozsef
04733e3d2d Even more AT culling 2021-06-30 15:50:23 -07:00
Jozsef
9561265c3b Cull AT 2021-06-30 15:43:38 -07:00
Jozsef
2c560d6f4e Merge branch 'dev' into shader-pipeline 2021-06-30 13:10:50 -07:00
Jozsef
8bf0b31039 Fix else formatting 2021-06-30 13:03:02 -07:00
Jozsef
8c161457f1 Merge branch 'dev' into shader-pipeline
# Conflicts:
#	src/main/java/com/jozufozu/flywheel/backend/ShaderSources.java
2021-06-30 12:58:21 -07:00
Jozsef
6817ddec45 Pre-port tasks I
- Rename Client to FlywheelClient
 - Remove Shadow plugin
 - Remove generated source set
 - Remove unused properties in gradle.properties
 - Organize all imports
 - Thanks for the list pepper!
2021-06-30 12:43:54 -07:00
Jozsef
cc063a37c5 More fun parsing stuff
- Start loading things via ShaderSources
 - More Span functionality
 - Parse function arguments
2021-06-30 11:42:33 -07:00
JozsefA
cd5b9b06b5 Merge branch 'dev' into shader-pipeline 2021-06-27 18:50:38 -07:00
JozsefA
f85fce3603 Reset StitchedSprites when the atlas is stitched
- Might fix simi's slime issue
2021-06-26 16:05:15 -07:00
JozsefA
5e59fa73b8 Merge branch 'dev' into shader-pipeline 2021-06-26 13:07:27 -07:00
JozsefA
2cad7233ef Always dispatch render layer events 2021-06-26 13:05:21 -07:00
JozsefA
469dec0a49 Start work on shader pipeline system
- Unbulit, untested so far
 - Will ultimately supersede shader contexts/templating
 - Laying framework for better compile errors via Span.java
2021-06-25 18:01:50 -07:00
JozsefA
3fb48d248a Instanced entities are compatible with optifine
- Fix mixin related crash on startup
 - Change defaultRequire to 0
2021-06-24 19:37:31 -07:00
JozsefA
c8152bd499 Comment out debug line 2021-06-24 14:21:19 -07:00
JozsefA
ae4455543a Change behavior of tagged struct parsing in shaders
- Explicit call to Shader#parseStructs is required before they can be read.
 - Fixes a startup crash on some drivers (apparently nvidia is cool with #[...], but other drivers fail)
2021-06-24 14:20:24 -07:00
JozsefA
a8ae0383aa Fix complaint about an unknown custom packet identifier 2021-06-24 10:42:25 -07:00
JozsefA
13c484d747 Fix crash on resource reload
- Properly delete MaterialManagers and ShaderContexts
 - Reload renderers on resource reload
 - More utility methods in WorldAttached
2021-06-24 01:20:03 -07:00
JozsefA
0bb85e4437 Cleanup flywheel event listeners, fix crash on server startup 2021-06-23 13:19:03 -07:00
JozsefA
c887d326c6 Print final shader source on compilation error 2021-06-23 09:08:34 -07:00
JozsefA
12748cc208 Add fabulous depth fix 2021-06-22 20:06:00 -07:00
JozsefA
7d6ec7d28f Little tweaks and add the logo to mods.toml 2021-06-19 16:52:23 -07:00
JozsefA
69cf9e9b21 Commands, config, and a logo
- Added /flywheel backend command to replace /create experimentalRendering
 - Added /flywheel normalOverlay command
 - Need to think more about a good way to do this in a client only way
 - Added basic config
 - Logo in README.md (thanks, dani!)
2021-06-18 22:52:33 -07:00
JozsefA
4af63c6fee Nuke mod class 2021-06-16 13:03:40 -07:00
JozsefA
6b0ce3115d Update mods.toml 2021-06-16 12:57:52 -07:00
JozsefA
5913d1aef1 Add licence 2021-06-16 11:58:17 -07:00
JozsefA
f460e229df Squish
- Squash all commits before separating flywheel from create
2024-03-07 19:08:15 -08:00