Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
microui
-
Immediate Mode GUI Programming
There is also microui, which I like[0].
Which I forked to work with SDL2[1], no guarantees. It's fun to hack on.
-
ImGui or text rendering libraries
For GUI, there are lots, most well-known of course being Dear Imgui, for which people have made auto-generated C bindings. Another mature but a lot simpler option is Nuklear, as others have mentioned. Even more minimalistic (it's just 1KLOC) is microui. There are a lot more, just google "imgui library c".
- A lightweight, simple, fast, feature-filled, text editor written in C, and Lua
-
Nuklear – A single-header ANSI C immediate mode cross-platform GUI library
The price for the 'lightest' UI toolkit probably goes to microui:
https://github.com/rxi/microui
Just around 1100 lines of C code.
You need to bring your own renderer, but that's the same for Nuklear or Dear ImGui.
I wrote a WASM wrapper for the microui demo too:
-
I made a shortlist of good libraries for my GUI C project and I want your thoughts and comments.
Good C library list: https://en.cppreference.com/w/c/links/libs https://github.com/Immediate-Mode-UI/Nuklear + C89, no dependencies, public license. 5/5 https://www.tecgraf.puc-rio.br/iup/ + good tutorial and wiki guides 5/5 https://libsdl.org/ + infinite possibilities - whole library for making games, forums, wiki - complicated, not many C tutorials, need to manage game states... 4/5 https://github.com/lvgl/lvgl + good docs - for embedded systems 4/5 https://github.com/ocornut/imgui + Popular, inspired Nuklear - for C++ 3/5 https://docs.enlightenment.org/api/imlib2/html/ + very efficient, used in Conky - uses X so only for Linux, just for displaying images and text and stuff 2/5 https://github.com/rxi/microui + simple, small - you need to handle your own drawing 2/5 GTK+ - no
- Best way to write a cross-platform graphical program in C while using only bare minimum third-party libraries?
- resources for making a gui library
-
Seeking your expert opinion and advice for an OpenGL client-server rendering framework
What about GUI like this: https://github.com/rxi/microui?
-
Easy to implement GUI for SDL 2
If you are using SDL with SDL_Renderer, try microui
-
What is your own favorite C project?
In terms of other people's projects: stb, microui, and nanovg come to mind
SDL
-
Revert "video: Prefer Wayland over X11 (take 2)"
Best comment:
> SDL is not your tool for "signaling to stakeholders" about what is important.
Zing. https://github.com/libsdl-org/SDL/pull/9345#issuecomment-201...
Correct. It's explained here:
https://github.com/libsdl-org/SDL/pull/9345#issuecomment-201...
XWayland has special hooks into the compositors that normal wayland clients don't get.
-
reflect-cpp - Now with compile time extraction of field names from structs and enums using C++-20.
https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_events.h
-
BBC Basic returns on multiple platforms, open sourced
If that app ran in a 640x480 mode, memory accesses would be just as fast as the VGA applications 25 years ago, correct?
I think there's a lot more going on than that. Here's SDL's current pixel access code:
https://github.com/libsdl-org/SDL/blob/main/src/video/SDL_su...
-
Chip8 emulator
It's not that difficult, I recently started learning to use graphics APIs myself. OpenGL is for linux, etc., directx for windows and vulkan for all platforms. I read through a bunch of forums yesterday and decided to go for vulkan (here is a link to the sdk) for my next small projects because it can run on all platforms. I would recommend to watch a basic tutorial series (like this one) for the graphics api itself to get an understanding of whats going on. And on top of that I use SDL2 for eventhandling and ImGui for the graphical user interface. Here is a link to a guide for setting up vulkan on your platform in case you would go for it.
-
Felt Cute, Might git rm --rf
SDL (which will be bumped to SDL3), straight from the authoritative https://github.com/libsdl-org/sdl
-
Why does Epic Games Store not have controller support for so many games when it's available on Steam???
If I have the the skills and expertise: I could theoretically build a simple input remapper none using SDL (Steam Input relies on it) or JoyShockLibrary as a way to handle much wider Controller Support (otherwise: it would've been far more difficult to get Input API working across major Controller Types without documentation or reverse engineering).
-
An update on MAME on macOS High Sierra 10.13
2)Get SDL into ~/Library/Frameworks/
-
Sharing Saturday #470
That is a weird one... I guess there could be an option to ignore the numpad - but I doubt anyone would find it. I raised an issue anyway https://github.com/libsdl-org/SDL/issues/7805
What are some alternatives?
GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
raylib - A simple and easy-to-use library to enjoy videogames programming
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Godot - Godot Engine – Multi-platform 2D and 3D game engine
olcPixelGameEngine - The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects
DS4Windows - Like those other ds4tools, but sexier
DualSenseSupport - Preliminar DualSense
learn-wgpu - Guide for using gfx-rs's wgpu library.
DS4Windows - Like those other ds4tools, but sexier
steam-for-linux - Issue tracking for the Steam for Linux beta client
vulkan-guide - Introductory guide to vulkan.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.