raylib does not support multiple Windows by default, it was designed with simplicity in main and multi-window option was not considered as a core feature.
raylib does not support multiple Windows by default, it was designed with simplicity in mmind and multi-window option was not considered as a core feature. Multiple windows break some of the core concepts and APIs in raylib.
Multiple windows are possible with modifications to raylib and the understanding that some simple things may not work in as simple of a way as they did before.
# support for raylib 5.0+
Adding support for multiple windows is somewhat complicated to support in raylib versions 5.0+. The platform split means that each platform needs to have information about all the windows. Also the older instructions did not handle events properly on multiple windows.
@ -7,12 +9,12 @@ Adding support for multiple windows is somewhat complicated to support in raylib
The branch of raylib has been modified to support multiple windows
The changes are similar to what is listed below, but more detailed and go into a lot of different platform code.
# Old info for raylib V4.5 and below.
**These instructions will not work for Raylib 5.0 or above, they are here for historical purposes only.**
Fortunately raylib's current design allows adding multi-window support in an easy way, in case some user requires this functionality.
the steps to follow to modify the raylib source code and add multi-window support are as follows:
The rough steps to follow to modify the raylib source code and add multi-window support are as follows:
- [raylib.h] A `MAX_CONTEXTS` constant is defined to give the size of `RLGL[]` and `CoreData.Window[]`
- [core] Change the `CoreData.Window` struct into `CoreData.Window[MAX_CONTEXTS]` and add a `currentWindow` variable as global index to switch between the structures, as well as a `numWindows` variable to keep count of the total number of windows