https://github.com/superzazu/sdl_dbgp
A C99 library to display UTF-8 text in SDL3 programs (in a VGA-like text mode)
https://github.com/superzazu/sdl_dbgp
c sdl sdl2
Last synced: 8 months ago
JSON representation
A C99 library to display UTF-8 text in SDL3 programs (in a VGA-like text mode)
- Host: GitHub
- URL: https://github.com/superzazu/sdl_dbgp
- Owner: superzazu
- License: zlib
- Created: 2020-05-01T09:16:10.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-09-26T15:27:24.000Z (9 months ago)
- Last Synced: 2025-10-07T03:00:42.225Z (9 months ago)
- Topics: c, sdl, sdl2
- Language: C
- Homepage:
- Size: 136 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SDL_DBGP
SDL_DBGP (DeBuG Print) is a C99 library to display UTF-8 text in SDL3 programs (in a VGA-like text mode), greatly inspired by [bgfx](https://github.com/bkaradzic/bgfx) debug text API. To install, copy DBGP.c/.h and a font file (SDL_DBGP_unscii8.h or SDL_DBGP_unscii16.h) in your project.
Two fonts are provided for convenience: [UNSCII-8](https://github.com/viznut/unscii) (8x8px) and UNSCII-16 (8x16px). They both are in the public domain ; and include glyphs for the first 256 Unicode codepoints. The Python script used to generate C header files from UNSCII `.hex` files is also available (unscii2raw.py).

Example:
```c
#include
#include
#include "SDL_DBGP.h"
#include "SDL_DBGP_unscii16.h"
int main(void) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
SDL_CreateWindowAndRenderer("SDL_DBGP", 800, 600, 0, &window, &renderer);
DBGP_Font font;
if (!DBGP_CreateFont(
&font, renderer, DBGP_UNSCII16, sizeof(DBGP_UNSCII16),
DBGP_UNSCII16_HEIGHT)) {
SDL_Log("Unable to initialise DBGP_UNSCII16: %s", SDL_GetError());
return 1;
}
int should_quit = 0;
SDL_Event event;
while (!should_quit) {
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_EVENT_QUIT: should_quit = 1; break;
}
}
SDL_SetRenderDrawColor(renderer, 0x30, 0x30, 0x30, 0xff);
SDL_RenderClear(renderer);
DBGP_ColorPrint(&font, renderer, 0, 0, DBGP_DEFAULT_COLORS, "Hello world!");
DBGP_ColorPrintf(&font, renderer, 32, 32, 0x3f, "Hello %s", "Bobby");
DBGP_ColorPrint(
&font, renderer, 0, 64, 0x0f,
"Color can be changed with\n"
"$09e$0As$0Bc$0Ca$0Dp$0Ee$0F"
" codes too.");
SDL_RenderPresent(renderer);
}
DBGP_DestroyFont(&font);
SDL_Quit();
return 0;
}
```
Checkout the example program `example.c`, and build the docs by running `doxygen Doxyfile` in this directory.