- 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
- Check for errors immediately after loading shaders
- Done through FileResolution
- Add class SourceChecks to
- Throw away GatherContextEvent, do everything on client init
- Unify FileResolution and Resolver, PartialModel style
- Pass around error reporter to detect errors during load
- Rename MaterialManager -> InstancerManager and Material ->
InstancerFactory
- Create Material class consisting of RenderType and shader files
- Make ModelSuppliers use Materials as keys instead of RenderTypes
- Move diffuse calculation from context shaders to material/shaded.vert
- Merge used templates directly into compilers and remove template
classes
- Overhaul shader pipeline
- Remove VertexType#getShaderHeader in favor of vertex-only "layout
shaders"
- Remove program specs in favor of vertex-only "instance shaders"
- Add API GLSL headers for vertex and fragment shaders that store
common values
- Separate context shaders into vertex and fragment shader files
- Improve import handling
- Ensure imports are not added more than once
- Change regex for import directives to be more in line with C-style
directives
- Move some classes and GLSL files
- Respect fog shape and type
- Add uFogShape uniform
- Add macro for current FogType
- Respect dimension constant ambient light when calculating diffuse
- Add uConstantAmbientLight uniform
- Redirect diffuse calculation to FLWDiffuse
- Do not automatically include diffuse.glsl
- Fill CoreShaderInfoMap with info for vanilla and Forge core shaders
- Use try-with-resources when querying ResourceManager
- Move WorldProgram uniform uploading from bind to uploadUniforms
- Use correct layer when rendering bells (cutout -> solid)
- Update Starlight
- Remove OnlyIn annotations
- Replace JSR305 Nullable and Nonnull with Jetbrains Nullable and
NotNull
- Fix indentation in flywheel.mixins.json
- Organize imports
- 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
- 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
- Simplify game state system
- Need some way to re-add errors on load.
- Streamline shader compilation, reduce map lookups
- Move pipeline package from backend to core
- Simplify interfaces and remove unnecessary classes
- Drastically lower shader boilerplate for instance materials
- Somewhat lower boilerplate for contexts
- VertexTypes are responsible for shader headers
- Better shader compiler errors (at least on nvidia)
- Simplify template classes
- Begin work on lazy shader compilation
- 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
- 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
- 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
- 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
- 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