Seintian
d4a48a07fc
feat(ncurses): overhaul renderer with UTF-8, 256-colors, and visual improvements
...
Significantly enhances the Ncurses renderer capabilities and updates the example application.
Renderer Changes:
- Unicode Support:
- Implemented automatic UTF-8 locale detection and initialization.
- Switched to wide-character handling (`wchar_t`, `mvaddnwstr`) for correct rendering of multi-byte characters (e.g., Emojis).
- Used `wcwidth` for accurate string width measurement.
- Color Support:
- Upgraded from 3-bit (8 colors) to 256-color support (xterm-256color).
- Added `Clay_Ncurses_MatchColor` to map arbitrary RGB values to the nearest color in the standard 6x6x6 color cube.
- Added capability detection to fallback gracefully on simpler terminals.
- Visual Fidelity:
- Implemented background color inheritance (`Clay_Ncurses_GetBackgroundAt`) to simulate transparency.
- Text and borders now render on top of existing background colors instead of resetting to the terminal default.
- Build & POSIX:
- Added `_XOPEN_SOURCE_EXTENDED` and `_XOPEN_SOURCE=700` definitions for standard compliance.
Example Application (clay-ncurses-example):
- Theme:
- Updated to a modern dark theme (Uniform `{20, 20, 20}` background).
- Switched to saturated/bright foreground colors for better contrast.
- Fixes:
- Replaced obsolete `usleep` with POSIX-compliant `nanosleep`.
- Build:
- Updated CMakeLists.txt to enforce linking against `ncursesw` (wide version).
Verified with `clay-ncurses-example` on Linux (xterm-256color).
2025-12-28 15:19:37 +01:00
Seintian
840606d0c1
feat: Add ncurses renderer and example
...
- **Renderer**: Implemented `clay_renderer_ncurses.c` supporting rectangles, text, borders, and clipping using standard ncurses plotting.
- **Example**: Added `examples/ncurses-example` demonstrating a scrollable "Social Feed" UI with keyboard navigation.
- **Build**: Added `CLAY_INCLUDE_NCURSES_EXAMPLES` option to root `CMakeLists.txt` and integrated the new example.
- **CompConfig**: Updated `.gitignore` to strictly exclude `build/`, `_deps/`, and other standard CMake artifacts.
2025-12-28 14:01:41 +01:00
Daniel Mayovskiy
fd97d8179e
[Renderers/termbox] fixed horizontal text culling bug ( #525 )
CMake on multiple platforms / build (Release, cl, cl, windows-latest) (push) Has been cancelled
CMake on multiple platforms / build (Release, clang, clang++, ubuntu-latest) (push) Has been cancelled
CMake on multiple platforms / build (Release, gcc, g++, ubuntu-latest) (push) Has been cancelled
Odin Bindings Update / check_changes (push) Has been cancelled
Odin Bindings Update / build (macos-latest) (push) Has been cancelled
Odin Bindings Update / build (ubuntu-latest) (push) Has been cancelled
Odin Bindings Update / commit (push) Has been cancelled
2025-10-23 12:58:39 +11:00
rivten
5a0d301c60
[Renderers/Sokol] allow usage of images with sokol renderer ( #489 )
...
Co-authored-by: Hugo Viala <h.viala@ganacos.com>
Co-authored-by: Andrew Sampson <1297077+andrewmd5@users.noreply.github.com>
2025-09-08 11:35:18 +10:00
Andrew Sampson
1bc5105272
[Renderers/Sokol] Text measurement/rendering width mismatch in sokol_clay ( #480 )
2025-08-19 12:14:13 +10:00
Mivirl
a9c1f9a8a7
[Renderers/termbox2] Termbox2 renderer & examples ( #419 )
2025-06-27 08:26:38 +10:00
wolfee
4a91cac1b2
[Renderers/SDL3] Fix border position calculated incorrectly ( #446 )
2025-06-23 10:43:08 +10:00
wolfee
f97cb9ea10
[Renderers/SDL] Font sizing is ignored ( #444 )
2025-06-23 09:30:14 +10:00
Alan
58491394ca
[Renderers/Raylib] Fix element float distortion ( #430 )
2025-06-05 10:49:26 +10:00
Nic Barker
87575cb7c3
[Core] Fix handling of letter spacing
2025-06-05 10:38:53 +10:00
Nic Barker
0431f862f4
[Core] Improve handling of aspect ratio scaling
2025-06-02 12:14:09 +10:00
Emmanuel
65e813d4df
[Renderers/Terminal] Add initial implementation of terminal renderer ( #91 )
2025-05-22 12:45:52 +12:00
Matt Jennings
e2f94f17f6
[Renderers/Playdate] Playdate console example ( #404 )
2025-05-19 11:46:39 +12:00
Zordan
eb1d85f2a6
[Renderers/Cairo] Fix cairo renderer and example ( #416 )
2025-05-19 11:36:08 +12:00
David Delassus
fb4eec93b2
[Renderers/SDL3] Use SDL_Texture instead of SDL_Surface for images ( #402 )
2025-05-05 12:27:41 +12:00
Tim Lügger
5391a259f3
[Renderers/Raylib] Fix raylib renderer border bottom left corner radius ( #378 )
2025-04-14 14:26:12 +12:00
Lily Nikitin
fe2d44a888
[Renderers/Raylib] Add explicit type cast for malloc ( #379 )
2025-04-14 14:23:13 +12:00
Nathan Korth
eb46688b82
[Renderers/Sokol] Sokol renderer & examples ( #373 )
2025-04-09 13:40:22 +12:00
Philosoph228
87efc49f52
[Renderers/WinGDI] Working on Win32 GDI renderer and example ( #344 )
2025-04-09 11:31:33 +12:00
Emerald-Ruby
6186596b41
math.h include missing cause lots of warning logs
2025-03-15 21:51:36 +00:00
Nic Barker
a7d46629b1
[Renderers/SDL2] Fix rounded corner border index
2025-03-13 09:52:16 +13:00
Nic Barker
bee93bc7ba
[Renderers/Raylib] Reuse memory in raylib renderer for temporary string allocations
2025-03-13 09:51:44 +13:00
Nic Barker
3e39e444db
Update README
2025-03-13 09:21:09 +13:00
hailey
6567f85eb3
Updated rectangle border rendering
2025-03-10 10:29:55 -05:00
hailey
a92ec772e1
[Renderers/Win32_GDI] first pass, fixed build errors and added build script
2025-03-10 09:33:12 -05:00
__hexmaster111
a782df73a1
Added win32 samples (first pass)
2025-03-10 09:23:36 -05:00
__hexmaster111
3a9172ec4c
Merge branch 'nicbarker:main' into main
2025-03-10 09:12:52 -05:00
__hexmaster111
12319fc240
Updated measure text to support the defualt raylib font if the user spesfied font failed to load. ( #305 )
2025-03-05 10:13:42 +13:00
__hexmaster111
ad363f986c
Added missing CloseWindow() call for raylib as well
2025-03-03 16:08:34 -06:00
__hexmaster111
3612431e82
[Raylib Render] Dont call malloc and Free every frame so much
2025-03-03 16:04:07 -06:00
mizmar
375501fb89
[Renderers/SDL2] Fix rounded corner border index
2025-03-03 18:36:04 +01:00
Timothy Hoyt
47c8e9178e
[Renderers/SDL2] Make SDL_RenderCornerBorder static ( #263 )
2025-02-17 08:49:05 +13:00
irfan-zahir
a62ee15758
[Renderers/SDL3] Enable sdl3 alpha blending ( #261 )
2025-02-17 08:48:19 +13:00
Timothy Hoyt
eb553962e8
[Renderers/SDL2] Added rounded corner borders and fixed other issues ( #258 )
2025-02-14 10:14:11 +13:00
tomat
bc2548e3ec
[Renderers/SDL3] Add image rendering and scissor support to SDL3 renderer ( #246 )
2025-02-13 10:02:06 +13:00
Julio Ernesto Rodríguez Cabañas
eeb4520f48
[Renderers/SDL3] Use text engine to render text on the SDL3 renderer ( #256 )
2025-02-13 09:19:36 +13:00
Nic Barker
72af2a4020
[Compilers] Fix missing initializer warnings under -Wextra
2025-02-12 09:12:11 +13:00
tomat
e7bc3869f7
[Renderers/SDL2] Add rounded rectangle support to sdl2 renderer; feature-completes sdl2 renderer ( #245 )
2025-02-07 11:26:49 +13:00
Nic Barker
9d940c1f8e
[Core] Replace config macros with a single unified configuration struct ( #240 )
2025-02-04 17:00:19 +13:00
Nic Barker
1bcf256e4d
[Core] Replace generated arrays with macro declarations, align cache lines to 64 bytes ( #235 )
2025-01-29 17:14:01 +13:00
Martin Evald
e9f2e6c4f1
[Renderers/SDL2] Don't take addresses of temporaries. ( #232 )
2025-01-29 13:09:41 +13:00
Nic Barker
0a703de69a
[Core] Add z-index and string base to Render Commands ( #227 )
2025-01-26 15:28:35 +13:00
arnauNau
c0dac38c87
[Renderers/SDL3] Add borders and rounded borders functionality. ( #220 )
2025-01-26 14:39:34 +13:00
arnauNau
aba846a446
[Renderers/SDL3] Add rounded corners rectangle functionality ( #219 )
2025-01-23 09:30:24 +13:00
Nic Barker
ec2b3b35ff
[Renderers/Raylib] Early return 0 rather than segfault when Raylib fonts fail to load
2025-01-21 21:26:57 +13:00
Nic Barker
326325ffaf
[Core] Convert measureText pointer to value string slice ( #214 )
2025-01-20 11:27:22 +13:00
Daniel Collin
e8025cc254
SetMesureText and SetQueryScrollOffset takes userData ( #212 )
2025-01-20 10:59:02 +13:00
Linus Probert
8e7e30dda6
[Renderers/SDL3] Adds an example using SDL3 as a renderer ( #107 )
...
Co-authored-by: Nic Barker <contact+github@nicbarker.com>
2025-01-19 14:35:41 +13:00
ppeb
4961f2153e
Extend SDL2 Renderer and SDL2-video-demo ( #208 )
2025-01-18 21:42:18 +13:00
Funto
e11a394c25
[Compilers] Fix MSVC compilation with CMake ( #178 )
...
Co-authored-by: Nic Barker <contact+github@nicbarker.com>
2025-01-10 20:59:13 +13:00