Commit Graph

487 Commits

Author SHA1 Message Date
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
vurtun
5cf6f204b7 Removed wrong nk_window_is_closed in demos 2017-04-06 09:51:50 +02:00
vurtun
1a87c13d84 Fixed multiline commment in commented out code 2017-03-25 23:29:42 +01:00
vurtun
23eea231d8 Added horizontal scrolling 2017-03-21 21:21:58 +01:00
vurtun
6bb00890fb Fixed PR styling issues 2017-03-18 18:09:54 +01:00
Silas Parker
0073110c9b Xlib: Add font stack push function and copy/paste support 2017-03-16 15:39:12 +00:00
vurtun
e77b723d98 Removed unused defines and parameters 2017-03-15 18:19:21 +01:00
vurtun
7c7e15e5c3 Fixed some styling issues in sfml demos 2017-03-12 13:30:14 +01:00
vurtun
220c314df4 Merge branch 'master' of https://github.com/ricanteja/nuklear into ricanteja-master 2017-03-12 13:02:55 +01:00
Ricardo Antonio Tejada
3d77394bd2 Forgot to edit link to point to SFML webpage and not Allegro.. 2017-03-01 22:25:42 -05:00
Ricardo Antonio Tejada
1574367121 Makefiles done. 2017-03-01 22:23:21 -05:00
Ricardo Antonio Tejada
c6bfe1c157 Finally! I fixed that bug that I had. sf::Mouse::setPosition was setting the position of the cursor to desktop coordinates not window coordinates. 2017-03-01 17:17:43 -05:00
Ricardo Antonio Tejada
63e98d90bd Almost ready for merge. Need to fix bug with mouse movement. Need to implement clipboard support. Lastly need to write ReadMe on instructions for building. 2017-02-28 19:32:55 -05:00
Ricardo Antonio Tejada
5007519ae7 Dumped the pure SFML folder. Got it working enough to realize that it just ran too slow to continue wasting time on it. SFML creates a OpenGL context anyway so users can drop in the nk_sfml_gl2.h and not need anything else. I'll have to add this in the readme. Tried to make my code as similar to other demos for sake of consistency. 2017-02-23 02:02:59 -05:00
Ricardo Antonio Tejada
73b0b945b4 Added OpenGL3 for SFML and also working on "pure" SFML renderer. 2017-02-17 17:54:24 -05:00
Ricardo Antonio Tejada
2babe51576 Fixed the clipping glitch (bug that caused the window borders and backgrounds to not be rendered).
Fixed text input bug that could cause the program to crash.
2017-02-13 01:59:32 -05:00
Martins Mozeiko
aa3ffd6917 GDI+ simplified image loading, added error checking and image freeing 2017-02-10 00:41:31 -08:00
Ricardo Antonio Tejada
2d1ea95600 Adding SFML backends for Nuklear. Working on porting over the OpenGL 2 renderer from the GLFW and SDL examples.
Still some rendering bugs I would like some help on.
2017-02-09 20:54:28 -05:00
Dmitry Hrabrov
35e8558be4 GDI+ split rendering GUI and clear surface
For example, I draw something via GDI+. Now I can call `nk_gdip_render_gui(AA)` and it will not erase my drawings, just will draw on top. 
Previos API was not changed.
2017-02-04 18:24:49 +03:00
Dmitry Hrabrov
4442697ee0 GDI+ set text color only once 2017-02-04 12:53:19 +03:00
Dmitry Hrabrov
5d98939a2d GDI+ text transparent background fix
There is no need do draw filled rectangle behind of any text
2017-02-04 12:52:02 +03:00
Micha Mettke
3123ba0167 Merge pull request #330 from DeXP/master
Remove warning: 'nk_to_upper' defined but not used
2017-01-24 22:28:13 +01:00
vurtun
6b27c20231 Fixed #331 with graceful x11 window closing 2017-01-23 19:33:58 +01:00
Dmitry Hrabrov
16c2dddae4 Fix typo 2017-01-23 11:19:27 +03:00
Micha Mettke
431e67597c Merge pull request #327 from DeXP/master
GDI+: loading TTF font from file
2017-01-21 19:55:16 +01:00
Dmitry Hrabrov
8033c400b4 Added loading TTF font from file
Also font API rename to be the same with images.
2017-01-20 15:09:27 +03:00
Micha Mettke
b544d616e3 Merge pull request #324 from DeXP/master
Define IStream interface
2017-01-19 20:35:03 +01:00
Dmitry Hrabrov
4d957de4a1 Define IStream interface 2017-01-19 22:14:56 +03:00
vurtun
5011a36529 Updated CHANGELOG format and versioning 2017-01-15 21:13:38 +01:00
vurtun
34d0fcd43d Merged #198 with bottom-left corner scaler 2017-01-14 15:22:22 +01:00
vurtun
be7ac9b903 Updated Makefile as of #256 2017-01-14 09:46:13 +01:00
vurtun
aa1f516fa3 Added row template layout example to demo/overview 2017-01-12 20:49:52 +01:00
Micha Mettke
14f107b0ab Merge pull request #318 from DeXP/master
GDI+ load font from memory
2017-01-10 14:58:27 +01:00
Dmitry Hrabrov
24f4e3f288 GDI+ load font from memory added
There is new user function: `nk_gdipfont_create_mem`. Added `fontCollection` member to `gdip` structure to automatically clean it up at execution end.
2017-01-07 16:16:03 +03:00
Dmitry Hrabrov
7ab7327fa4 nk_gdip_fill_rect filled pies fix
Added 1px overlap near filled pies. There is no empty space between pie and rectangle now. It was especially conspicuous on red theme.
2017-01-07 14:26:26 +03:00
Micha Mettke
24c756c264 Merge pull request #315 from seibelj/allegro5_impl
Allegro5 nuklear backend and touchscreen support
2017-01-07 11:01:22 +01:00
Micha Mettke
5ad19783c3 Merge pull request #316 from DeXP/master
GDI+ images support
2017-01-07 10:12:40 +01:00
seibelj
7dbd9f910e PR fixes. Removed all keyboard callback code as it can be accomplished with nk_edit flags 2017-01-06 14:09:44 -05:00
Dmitry Hrabrov
5aeddddd74 Added GDI+ images support 2017-01-06 15:40:01 +03:00
Dmitry Hrabrov
840f539eab Added OLE32 to dependencies list 2017-01-06 15:33:37 +03:00
seibelj
bc6c9c7093 Added readme and keyboard handler example files 2017-01-05 16:00:11 -05:00
seibelj
6d5fba0cbb Removed display checkers because they appear not to work for custom events. Also fixed up whitespace and changed a variable name from nil to none because of objective-c conflicting 2017-01-05 15:24:19 -05:00
seibelj
1cf83d258e Improved soft keyboard support 2017-01-03 13:05:17 -05:00
seibelj
bde7c3c4e9 Fix for multitouch causing issues 2017-01-03 11:13:46 -05:00
seibelj
73e58012ef Fixes for touch events 2017-01-02 23:12:39 -05:00
seibelj
63e2cbafb6 initial touch support 2017-01-02 21:48:48 -05:00
vurtun
e63ae83349 Extended 16-bit scrollbar offsets to 32-bit #312 2016-12-31 20:05:17 +01:00
seibelj
eb58042b1a Merge branch 'master' into allegro5_impl 2016-12-31 14:00:58 -05:00
seibelj
533d5d28ef Much progress on allegro5 impl. Also added SELCT_ALL command 2016-12-31 13:58:57 -05:00
vurtun
a835309973 Fixed typo inside GLFW demo #311 2016-12-31 19:14:47 +01:00