[CORE,RLGL] Fix scale issues when ending a mode (#3746)

* Only restore GL scale back to screen scale if we are returning to a screen, not a render texture.

* blankspace

* reset back to default screen scale when ending a render texture since we are back on the default fbo
This commit is contained in:
Jeffery Myers
2024-01-29 12:10:23 -08:00
committed by GitHub
parent 812645b077
commit bebf9547bd
2 changed files with 22 additions and 5 deletions

View File

@@ -621,6 +621,7 @@ RLAPI void rlDisableShader(void); // Disable shader progra
// Framebuffer state
RLAPI void rlEnableFramebuffer(unsigned int id); // Enable render texture (fbo)
RLAPI void rlDisableFramebuffer(void); // Disable render texture (fbo), return to default framebuffer
RLAPI unsigned int rlGetActiveFramebuffer(void); // Returns the active render texture (fbo), 0 for default framebuffer
RLAPI void rlActiveDrawBuffers(int count); // Activate multiple draw color buffers
RLAPI void rlBlitFramebuffer(int srcX, int srcY, int srcWidth, int srcHeight, int dstX, int dstY, int dstWidth, int dstHeight, int bufferMask); // Blit active framebuffer to main framebuffer
RLAPI void rlBindFramebuffer(unsigned int target, unsigned int framebuffer); // Bind framebuffer (FBO)
@@ -1725,6 +1726,17 @@ void rlEnableFramebuffer(unsigned int id)
#endif
}
// return the active render texture (fbo)
unsigned int rlGetActiveFramebuffer(void)
{
#if (defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES3)) && defined(RLGL_RENDER_TEXTURES_HINT)
GLint fboId = 0;
glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fboId);
return fboId;
#endif
return 0;
}
// Disable rendering to texture
void rlDisableFramebuffer(void)
{