I think i should explain here very briefly what it is, so you would get some idea. There is immediate GUI, which you may prefer if you want a simpler and easily changeable GUI toolkit. It is also straightforward to use, so doesn’t mostly in practice make the code that uses it more complex, may make it even simpler. The original immediate GUI is imgui (also used in the OGRE game engine), the other is nuklear. kiss_sdl is what i call principal GUI, going further from immediate GUI, written only for SDL (SDL2), which makes it much simpler, it’s generic but it’s less than 2500 lines of easily changeable code.
No other generic GUI toolkit in C or C++ as much as it is known, is so simple. How much more complex are the others, is a matter of dispute, the only quantifiable measure is the number of lines of code, and they have at least 10 times more lines of code, though lines of code is certainly not the only parameter of complexity, and it can only be a parameter of complexity when there is a need to more easily change or understand the code. There are other parameters, it is also made to be easily changeable, with parts of the code also abstracted into different files, so it’s easy to change the libraries used or such.
In spite it’s the simplest though, every GUI toolkit has some considerable learning curve. It evidently depends on one’s experience as a programmer, like some experienced programmers have learned kiss_sdl in a few hours or even in an hour. It has been made easy to learn, but it still takes some effort for a beginner. Although it is not a typical retained GUI, it is still very similar to a usual GUI toolkit what concerns the general features. Most of what you will learn though, will be general things about programming, that are important to know anyway, so learning kiss_sdl will not be a waste of time, even if you later want to use some more advanced GUI toolkit. Which you though may not need for any games, simulators, system tools or other software, that you may make, but it depends on what you want to do. For games at that you most likely need some very flexible and easily changeable GUI, whatever it may be.
Every effort has been made to make it high quality and reliable, and to eliminate all bugs or faults in the code and in compiling. For more than a year, no issue has been found, except one had a problem compiling it 64 bit in Visual Studio, it works faultlessly with 32 bit and in 64 bit Linux and macOS. I have only 32 bit Windows though, so testing it 64 bit in Visual Studio would be very welcome, and i would especially be thankful for 64 bit project files for Visual Studio, which can then be added to the repository. There is also a branch for high DPI displays and for Android, but for Android it is using ndk-build only.
Then also, is it a “niche product”, as some say? It is open source, so not a product, but it is not a niche thing, why did i need it then? No, it is a general software for its purpose. By some estimations it has more than 2000 users now, there are 1600 downloads in FreewareFiles only, so not “less than 1000” as some here have said. GitHub doesn’t show the downloads, all i know by now is 73 stars and in average 10 unique views in a day during two years. If a GUI toolkit is a “niche product”, then it has failed completely, different from other software or games, as some may not understand. Because GUI has a considerable learning curve, it thus cannot be just “tried”, and if not widely used, everyone would make a decision not to use it before trying it. But it can be said that kiss_sdl is widely used as a GUI toolkit, as GUI toolkits are not used by so many, at least for games. Which is exactly what i want to change, GUI toolkits are too complex, so that some evidently prefer to use not so good options such as command consoles instead, there is a need for a simple generic GUI toolkit.
All that said above, there is no need for such talk for multimedia libraries likely, as they are straightforward, important only that they perform their functions well, and the functions that they have to perform are often self-evident. GUI toolkits are different, as all there depends on how the things are tied together, they are not usable if all that is not done right, more than implementing a separate functions correctly. So a call again for a separate forum for GUI development, as the things discussed here are so different from SDL core development, and thus look unnecessary in SDL development mailing list. Any feedback from any of you is welcome.
kiss_sdl - Simple generic GUI widget toolkit for SDL2 https://github.com/actsl/kiss_sdl