- Replace ModelTransformer with modular pipeline that closely resembles
the instancing pipeline
- StructTypes and Materials now provide a VertexTransformer that
mutates a MutableVertexList
- Rewrite all model building to make it cleaner, more flexible, and
easier to use
- Add SimpleMaterial.GlStateShard for easier control over GL state
- Rename and move some classes
- Materials are given the opportunity to setup/clear render state
- Materials bind textures
- Compile all combinations of shader components at load
- Drastically simplify compilation context objects
- Material shaders control cutout and fog
- Remove all GameState related classes
- Remove CoreShaderInfoMap
- Sneaky optimization to instance storage
- Simplify RenderLists
- Give material fragment shaders a use
- Add new variables to api/fragment.glsl
- Add flw_initFragment to context shaders
- Add flw_vertexOverlay
- Normalize flw_vertexLight
- Values are now [0, 1] where 0 is no light and 1 is max light
- All light values sent to layout shaders and instance shaders are now
[0, 15] and not normalized
- Remove util/light.glsl
- Rename program samplers
- Add FileResolution.isWeak()
- Add BackendType.getShortName()
- Tweak default material
- Move ShaderField to parse package
- Organize imports
- Initial work on uniform buffer registry
- Setup skeleton for ComponentRegistry
- InstancingEngine is no longer generic about the program
- ProgramCompiler considers ContextShaders as input
- Support weak file resolutions
- Temporary GLSL version bump to ease UniformProvider growing pains
- Centralize component shaders to Components
- Fix Resources not being closed properly
- Change versioning scheme to match Create
- Add LICENSE to built jar
- Fix mods.toml version sync
- Move JOML code to non-src directory
- Update Gradle
- Organize imports
- Re-implement batching under new api topology
- Lots of duplicated code between instancing and batching, room for abstraction
- StructTypes now require their type argument to extend InstancedPart
- Fix crash when re-allocating drawbuffers
- Disable crumbling pending refactor
- Separate RenderDispatcher#beginFrame from RenderDispatcher#maintainOriginCoordinate
- Inline OriginShiftListener
- Refactor InstancedRenderDispatcher hooks
- Rename InstanceData -> InstancedPart, and subclasses
- Burger Fences
- Fix GlStateTracker nuking vao element buffer bindings
- GlVertexArray tracks element buffer bindings
- Use vertexAttribPointer offset instead of ..BaseVertex
- Setup code for better crumbling rendering
- Move some logic into CoreShaderInfoMap
- Simplify VertexWriter/VertexList
- Prefer IEventBus#addListener to @SubscribeEvent
- Stop using persistent buffers... for now
- Fix and improve crumbling rendering
- Rename Batched to BatchedStructType and Instanced to
InstancedStructType
- Normalize flw_vertexNormal in context/common.vert
- Add TODO and FIXME comments
- Remove OnlyIn annotations
- Replace JSR305 Nullable and Nonnull with Jetbrains Nullable and
NotNull
- Fix indentation in flywheel.mixins.json
- Organize imports
- Slight simplification to model allocation
- RenderLayers are no more
- Add basically empty RenderTypeRegistry, to be filled out as I go
- Move content of RenderLayerEvent into RenderContext
- BlockModels have PartialModel names now
- Futz around with InstancingEngine's render logic
- Fix invisibility bug caused by not unbinding vaos
- Inline all the things
- Now MaterialManager -> Material -> Instancer
- ModelSuppliers store RenderType
- Currently broken, it only renders chunk layers so vanilla instances are invisible
- User no longer needs to supply a key object to get an instancer
- Move memoization logic outside of MaterialManager
- Provide utility class for memoizing models
- Vanilla instances use static objects for their models
- PartialModels don't actually need reference states, use air instead
- Move RenderLayer to api package
- Kill lazy killable
- Add ShadeSeparatedBufferBuilder and other code to allow separating all
non-shaded vertices to the end of the buffer
- Add ShadedVertexList to allow defining if a certain vertex is shaded
or not
- Add new methods to ModelUtil with arguments for more flexibility
- Refactor VirtualEmptyBlockGetter to allow defining arbitrary light
values
- Add shaded argument to DiffuseLightCalculator
- Fix entitiesForRendering redirect to be compatible with carpet.
- Use more reflection for dealing with optifine
- Fixes issue where flywheel would still be on immediately after enabling optifine shaders
- 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
- Use VirtualEmptyBlockGetter instead of mc.level
- Move getBufferBuilder from BlockModel to ModelUtil
- Add static .is method to VirtualEmptyModelData
- Transform interface for grouping traits and combined behavior
- Move transforms to params, impl Transform
- Pass Params object to BatchingTransformers instead of SBB
- MappedBuffer no longer abstract
- Mappable interface used within MappedBuffer
- MappedBuffer is mapped before ctor
- No more subclasses, no more thin wrapping overrides
- Use try with resources for buffer mapping
- Better error handling with mapped buffers
- Unimplemented exception as a procrastination method
- 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
- 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
- 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
- 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
- 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