refactor(renderer): retire legacy Renderer/BatchRenderer2D (RC5 Batch 5)#45
Merged
Conversation
…Draw on TransientBufferPool (RC5 Batch 5)
The dead Renderer class and the BatchRenderer2D it shared a file with are gone.
ImmediateDraw — the only BatchRenderer2D user — is rebased onto the same
TransientBufferPool + StateTracker + GfxDevice path RenderFrame uses, so the
engine now has a single batch-rendering implementation.
- Delete renderer/Renderer.{hpp,cpp} (~1000 lines); remove from CMakeLists and
the ESEngine.hpp umbrella (Buffer/Shader/Texture stay).
- ImmediateDraw owns a TransientBufferPool, generates BatchVertex geometry,
batches per texture, and draws via StateTracker.useProgram/bindTexture +
device.drawElements. It now takes the shared per-App StateTracker.
- EstellaContext passes the StateTracker into ImmediateDraw.
ImmediateDraw.cpp has zero raw gl; full build validated in CI (web).
Follow-up (Batch 5b/6): flip the transitional Shader/Texture/Buffer bind() to
StateTracker; trim RenderContext's now-dead quad/shaders; route the last
RendererBindings gl* through the device; fix TilemapRenderPlugin's collect-time
dirty mutation; add the CI gl* guard.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes the second batch renderer. The dead
Rendererclass and theBatchRenderer2Dit shared a file with are deleted;ImmediateDraw(the onlyBatchRenderer2Duser) is rebased onto the sameTransientBufferPool+StateTracker+GfxDevicepathRenderFrameuses — one batch-rendering implementation, single GPU path.renderer/Renderer.{hpp,cpp}(~1,000 lines); drop fromCMakeLists.txtand theESEngine.hppumbrella (Buffer/Shader/Texture stay).ImmediateDrawowns aTransientBufferPool, generatesBatchVertexgeometry, batches per texture, and draws viaStateTracker.useProgram/bindTexture+device.drawElements. Takes the shared per-AppStateTracker.EstellaContextpasses theStateTrackerintoImmediateDraw.Net −1,027 lines.
ImmediateDraw.cpphas zero rawgl.Verification
Full build via CI (web).
ImmediateDrawdepends on RenderContext/ResourceManager so it isn't mock-harnessable; the Emscripten job is the gate.Follow-up (Batch 5b / 6)
Flip the transitional
Shader/Texture/Bufferbind()toStateTracker; trim RenderContext's now-dead quad/shaders; route the last RendererBindingsgl*(glClearStencil+ diagnostics) through the device; fixTilemapRenderPlugin's collect-time dirty mutation; then the CI guard failing the build on anygl*outsideGLDevice.