Fix TilemapGPULayer rendering at double its position#7335
Open
moufmouf wants to merge 1 commit into
Open
Conversation
A TilemapGPULayer placed at (x, y) was rendered at (2x, 2y). The layer's position is already baked into the transform via applyITRS(x, y, ...), but setQuad() was then called with the absolute x/y again, applying the offset twice. Build the quad from local (0, 0)-(width, height) coordinates instead. The existing GPU tilemap examples only place layers at (0, 0), so the doubling (2*0 = 0) was never visible. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
This PR (delete as applicable)
A
TilemapGPULayerplaced at (x, y) was rendered at (2x, 2y). The layer's position is already baked into the transform viaapplyITRS(x, y, ...), butsetQuad()was then called with the absolute x/y again, applying the offset twice.The existing GPU tilemap examples only place layers at (0, 0), so the doubling (2*0 = 0) was never visible and the bug went unnoticed.
A full repro is available in this fork of the examples repository: moufmouf/examples@4e831f6
Result before the fix:
Result after the fix: