Commit Graph

8 Commits

Author SHA1 Message Date
0x0203
4de6d284a3 - Determine pixel layout at runtime instead of relying on compile-time flags
- Fix some potential null dereference bugs
2019-06-06 14:54:30 -04:00
0x0203
46031ccc5f Make x11_rawfb set_style() examples correct 2019-06-06 12:51:16 -04:00
0x0203
6d24023d98 - Implement text foreground color
- Be consistent about reading and writing pixel values to avoid casting/offset madness
- clean up function names for clarity/consistency
- Fix fence post errors preventing get/set pixels from operating on first row/column
- Enforce mutual exclusivity for pixel layout macros
2019-06-06 12:42:32 -04:00
Sergiy Kibrik
0a46238a44 demo/x11_rawfb: fix build errors
Like these:

   main.c: In function ‘main’:
   main.c:234:20: error: ‘ctx’ undeclared (first use in this function)
              overview(ctx);
                       ^
Signed-off-by: Sergiy Kibrik <sakib@darkstar.site>
2018-12-11 17:06:16 +02:00
vurtun
2891c6afbc Update demos to new color picker API 2018-01-05 13:09:27 +01:00
Patrick Rudolph
3705464605 demo/x11_rawfb: Change license to MIT
Relicense all x11_rawfb demo files under MIT license.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
2017-10-09 17:41:06 +02:00
vurtun
e5850a01b9 Fixed style issues in software renderer 2017-10-07 14:30:22 +02:00
Patrick Rudolph
2eb72b26e4 Add software rasterizer library and demo.
The software rasterizer is to be used with raw framebuffer
devices, where no GPU or X11 is available.
The demo emulates a raw framebuffer on X11 using XShmImage / XImage.

Features implemented:
* Drawing primitives
* Drawing polygons (using Darel Rex Finley algorithm)
* Drawing arcs and circles (using Bresenham's elipses algorithm)
* Drawing images using nearest filtering
* Bounds check on every operation
* Fastpath for lines
* Font rendering using nearest filtering
* Window resize
* Thread safe implementation by using a context
* Fixed lower and upper scissors on fast-path
* Adapted coding style to nuklear's style
* Implemented text scissors

Color formats:
Define one of them at compile time.
* RAWFB_RGBX_8888 (32bpp)
* RAWFB_XRGB_8888 (32bpp)

Tested:
The library has been tested on Lenovo Thinkpad T500 and is able to render
more than 30fps on a single core with no further optimizations and VSNYC enabled.

TODO:
* Improve font rendering by using filters.
* Account font foreground color.

Usage:
The raw framebuffer library needs a "texture" that holds the prerendered
font data. The texture is used at runtime to blit the letters onto screen.
You have to provide the framebuffer address, dimension and pitch.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
2017-10-07 12:08:24 +02:00