[CORE,RLGL] Fix scale issues when ending a mode #3746
Merged
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.
There are 3 places in raylib that set the OpenGL modelview matrix scale to the screen scale (for HighDPI).
1 of these is incorrect, BeginMode2d, as the camera is going to do it's own scale.
The other two assume that when we end 2d and 3d mode that we are going back to the screen. That is not always true. BeginMode2d/3d can be used with a render texture and a render texture can be any size and doesn't have to match the screen DPI scale (it's not a screen).
This PR exposes the GL function to get the active draw FBO, and then has raylib use that to know what render target it is restoring to, and if it needs to apply the scale.
This change should make using a render texture more consistent.