From 138ef838d91b567a31fe782f2221a77d9076eeb6 Mon Sep 17 00:00:00 2001 From: Le Juez Victor <90587919+Bigfoot71@users.noreply.github.com> Date: Sat, 4 Apr 2026 16:47:33 +0200 Subject: [PATCH] [rlsw] Some platform fixes (#5720) * fix drm with rlsw * fix window resizing with sdl * fix window resizing with win32 --- src/platforms/rcore_desktop_sdl.c | 4 ++++ src/platforms/rcore_desktop_win32.c | 4 ++++ src/platforms/rcore_drm.c | 8 +------- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/platforms/rcore_desktop_sdl.c b/src/platforms/rcore_desktop_sdl.c index 92c1979b3..dd845131e 100644 --- a/src/platforms/rcore_desktop_sdl.c +++ b/src/platforms/rcore_desktop_sdl.c @@ -1528,6 +1528,10 @@ void PollInputEvents(void) if ((width + borderLeft + borderRight != usableBounds.w) && (height + borderTop + borderBottom != usableBounds.h)) FLAG_CLEAR(CORE.Window.flags, FLAG_WINDOW_MAXIMIZED); } #endif + + #if defined(GRAPHICS_API_OPENGL_SOFTWARE) + swResize(width, height); + #endif } break; case SDL_WINDOWEVENT_ENTER: CORE.Input.Mouse.cursorOnScreen = true; break; diff --git a/src/platforms/rcore_desktop_win32.c b/src/platforms/rcore_desktop_win32.c index afbbedffc..5b19cd41a 100644 --- a/src/platforms/rcore_desktop_win32.c +++ b/src/platforms/rcore_desktop_win32.c @@ -2091,6 +2091,10 @@ static void HandleWindowResize(HWND hwnd, int *width, int *height) CORE.Window.screenScale = MatrixScale( (float)CORE.Window.render.width/CORE.Window.screen.width, (float)CORE.Window.render.height/CORE.Window.screen.height, 1.0f); + + #if defined(GRAPHICS_API_OPENGL_SOFTWARE) + swResize(clientSize.cx, clientSize.cy); + #endif } // Update window style diff --git a/src/platforms/rcore_drm.c b/src/platforms/rcore_drm.c index faba8956a..e742cb625 100644 --- a/src/platforms/rcore_drm.c +++ b/src/platforms/rcore_drm.c @@ -837,14 +837,8 @@ void SwapScreenBuffer(void) uint32_t height = mode->vdisplay; // Dumb buffers use a fixed format based on bpp -#if SW_COLOR_BUFFER_BITS == 24 const uint32_t bpp = 32; // 32 bits per pixel (XRGB8888 format) const uint32_t depth = 24; // Color depth, here only 24 bits, alpha is not used -#else - // REVIEW: Not sure how it will be interpreted (RGB or RGBA?) - const uint32_t bpp = SW_COLOR_BUFFER_BITS; - const uint32_t depth = SW_COLOR_BUFFER_BITS; -#endif // Create a dumb buffer for software rendering struct drm_mode_create_dumb creq = { 0 }; @@ -899,7 +893,7 @@ void SwapScreenBuffer(void) // Copy the software rendered buffer to the dumb buffer with scaling if needed // NOTE: RLSW will make a simple copy if the dimensions match - swBlitFramebuffer(0, 0, width, height, 0, 0, width, height, SW_RGBA, SW_UNSIGNED_BYTE, dumbBuffer); + swBlitPixels(0, 0, width, height, 0, 0, width, height, SW_RGBA, SW_UNSIGNED_BYTE, dumbBuffer); // Unmap the buffer munmap(dumbBuffer, creq.size);