Fix SEGV crash: Initialize window and font in stateInit()

- Move window initialization and font loading to stateInit()
- Window now opens before splash screens (required for rendering)
- Custom font loaded in stateInit for splash screen use
- Remove RL.config() call from luaCallMain() (window already initialized)
- Remove stateContextInit() call (initialization now done in stateInit)
- Add hasWindow, customFontLoaded, resolution fields to State
- Fix memory management for custom font in stateFree()

This matches the ReiLua-JamVersion architecture where the window
is opened early so splash screens can render properly.
This commit is contained in:
2025-11-03 18:04:54 +05:30
parent 737214b71b
commit f185f2c31a
80 changed files with 20297 additions and 32 deletions

View File

@@ -1683,27 +1683,6 @@ bool luaCallMain() {
/* Apply custom callback here. */
SetTraceLogCallback( logCustom );
lua_getglobal( L, "RL" );
lua_getfield( L, -1, "config" );
if ( lua_isfunction( L, -1 ) ) {
if ( lua_pcall( L, 0, 0, tracebackidx ) != 0 ) {
TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) );
return false;
}
}
lua_pop( L, -1 );
/* If InitWindow is not called in RL.config, call it here. */
if ( !IsWindowReady() ) {
InitWindow( 800, 600, "ReiLua" );
}
if ( IsWindowReady() ) {
stateContextInit();
}
else {
return false;
}
lua_getglobal( L, "RL" );
lua_getfield( L, -1, "init" );