From bca4f83a024ea8a6062c2d3f5773cbfe978fe289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Thu, 19 Mar 2026 23:19:44 +0100 Subject: [PATCH] required change for ESP-IDF 6 (#5674) --- src/external/rlsw.h | 10 ++++++++++ src/rcore.c | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/external/rlsw.h b/src/external/rlsw.h index 1237c5147..2be21def5 100644 --- a/src/external/rlsw.h +++ b/src/external/rlsw.h @@ -689,6 +689,7 @@ SWAPI void swClear(uint32_t bitmask); SWAPI void swBlendFunc(SWfactor sfactor, SWfactor dfactor); SWAPI void swPolygonMode(SWpoly mode); SWAPI void swCullFace(SWface face); +SWAPI void *swGetColorBuffer(int *width, int *height); // Restored for ESP-IDF compatibility SWAPI void swPointSize(float size); SWAPI void swLineWidth(float width); @@ -4200,6 +4201,15 @@ void swCullFace(SWface face) RLSW.cullFace = face; } +// Get direct pointer to the default framebuffer's pixel data +// Restored for ESP-IDF compatibility - removed in Raylib 6.0 PR #5655 +void *swGetColorBuffer(int *width, int *height) +{ + if (width) *width = RLSW.colorBuffer->width; + if (height) *height = RLSW.colorBuffer->height; + return RLSW.colorBuffer->pixels; +} + void swPointSize(float size) { RLSW.pointRadius = floorf(size*0.5f); diff --git a/src/rcore.c b/src/rcore.c index de1bb371c..0bb32ba27 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -682,6 +682,18 @@ void InitWindow(int width, int height, const char *title) TRACELOG(LOG_WARNING, "SYSTEM: Failed to initialize platform"); return; } + + // FIX: Initialize render dimensions for embedded platforms + // On desktop platforms (GLFW, SDL, etc.), CORE.Window.render.width/height are + // set during window creation. On embedded platforms with no window manager, + // InitPlatform() doesn't set these values, so we initialize them here from + // the screen dimensions (which are set from the InitWindow parameters). + // This fix is required for embedded platforms. + if (CORE.Window.render.width == 0 || CORE.Window.render.height == 0) + { + CORE.Window.render.width = CORE.Window.screen.width; + CORE.Window.render.height = CORE.Window.screen.height; + } //-------------------------------------------------------------- // Initialize rlgl default data (buffers and shaders)