Commit Graph

563 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
Micha Mettke
ed57400644 Merge pull request #529 from DeXP/gdip-fonts
GDI+ multiple fonts support
2017-10-04 21:41:41 +02:00
Dmitry Hrabrov
49c3bcd0c6 nk_ prefix 2017-10-04 20:05:47 +03:00
vurtun
af216a1be4 Merge branch 'gles2' of https://github.com/DeXP/nuklear into DeXP--gles2 2017-10-04 15:10:05 +02:00
Micha Mettke
c582959eea Merge pull request #527 from DeXP/gdip
GDI+ nk_gdip_fill_rect background fix
2017-10-04 15:08:07 +02:00
Dmitry Hrabrov
02e6a81625 GDI+ multiple fonts support
Each custom loaded font requires own `GpFontCollection`. So there is array of font collections now.
2017-10-01 18:38:08 +03:00
Dmitry Hrabrov
a01977264c Revert X11 changes 2017-10-01 18:36:40 +03:00
DeXP
cc8556533f Open GL ES 2 demo
Can be used on: Linux, Mac OS X, Android, Emscripten
2017-10-01 14:10:57 +02:00
Dmitry Hrabrov
49f6b1134e Revert X11 changes 2017-10-01 14:08:06 +02:00
Dmitry Hrabrov
ecee5816d5 Revert X11 changes 2017-10-01 13:42:41 +03:00
Dmitry Hrabrov
d0ed8bc3cf GDI+ nk_gdip_fill_rect background fix
1. Main background area was filled by 2 big overlapping rectangles. It works good on solid but not on semi-transparent themes. Just replaced 2 big rectangles with 1 big and 2 small.
2. There is no need in [nk_gdip_fill_rect filled pies fix](7ab7327fa4) anymore. It disturbs semi-transparent themes too.
2017-10-01 13:33:52 +03:00
Micha Mettke
48f659abd8 Merge pull request #497 from jwdeitch/master
fix compiling error on OSX (-lglfw3 not found)
2017-09-18 17:41:54 +02:00
Dmitry Hrabrov
708a7ebbc3 Xlib: remove text BG rectangle
It's already window or BGcolor on background.
2017-09-11 15:15:38 +03:00
Dmitry Hrabrov
f72dd6239d Optional stb_image defines 2017-09-11 14:00:20 +03:00
Dmitry Hrabrov
5de84dc310 Fix stb_image path 2017-09-04 12:38:04 +03:00
Dmitry Hrabrov
5fc8a250aa stb_image with bit transparency
X11 do not support transparent images itself. So the clip mask is calculating in this code. X11 ClipMask support only bit transparency.
2017-09-04 12:35:32 +03:00
lieff
039afa80ae fix asan error (out-of-scope variable access) 2017-09-01 13:06:49 +03:00
jwdeitch
52f24d4e67 fix compiling error on OSX
error: ld: library not found for -lglfw3
2017-08-17 00:58:08 -04:00
cascade256
f7137ec0f1 Fix GLFW double clicking 2017-08-13 00:55:07 -07:00
Micha Mettke
27603d5b97 Merge pull request #449 from Fra-Ktus/master
allowing touch event to work on iOS and Android
2017-06-06 20:40:00 +02:00
Micha Mettke
3b8d66a57c Merge pull request #450 from Fra-Ktus/gdi_nk_image
Implemented nk_create_image and nk_delete_image for the win32 gdi
2017-06-06 20:39:16 +02:00
Martins Mozeiko
e14dd1cb1b Demo using Direct3D 9 for rendering 2017-06-05 21:09:16 -07:00
FraKtus
9c3ab8ed60 implemented nk_create_image and nk_delete_image 2017-06-04 15:29:42 +02:00
FraKtus
042cd078ec implemented nk_create_image and nk_delete_image 2017-06-04 11:34:42 +02:00
FraKtus
3debbd2104 allowing touch event to work on iOS and Android 2017-06-04 11:20:25 +02:00
Martins Mozeiko
edac63b81e double click support in demo code for Windows platforms 2017-05-16 22:29:43 -07:00
vurtun
9dc7323b74 Added platform double click support #412 2017-05-06 18:50:32 +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
Micha Mettke
21f406f848 Merge pull request #306 from juliuszint/master
fixed relative path of demo fonts in d3d11 sample
2016-12-31 14:00:22 +01:00
seibelj
e2c48555d4 Added initial work for allegro5 backend 2016-12-31 01:29:45 -05:00
Dmitry Hrabrov
d6ac1e4d3f nk_gdip_fill_rect coordinates fix
Fix incorrect button drawing (wrong stroke, empty spaces in stroke line near the corners). Since there are quarters of circle in the angles then lines must be moved to R, not to D.
2016-12-29 21:34:58 +03:00
Julius Zint
13834901bb fixed relative path of demo fonts in d3d11 sample 2016-12-26 16:37:47 +01:00
Naoyuki Sawa
43b05749d2 fix for readability 2016-11-15 23:26:57 +09:00
Naoyuki Sawa
2849cdf8cd fix: In the windows demos, the key reaction is occured at the timing of the control keys are released. 2016-11-15 19:49:24 +09:00
vurtun
c61d4f063c Fixed edit multiline widget width calculation 2016-11-14 19:21:49 +01:00
vurtun
4a4fdf1976 Added missing X11 key up and down event handling 2016-11-14 19:10:36 +01:00
vurtun
34b12bd402 Added missing up and down event key to SDL demo 2016-11-14 19:06:10 +01:00
vurtun
9f9591c18d Removed SDL1.2 version to ease development 2016-11-06 11:37:17 +01:00
Micha Mettke
a24f3f6bca Merge pull request #254 from coderobe/patch-1
Fix segfault in sdl1_2 demo
2016-11-06 11:36:25 +01:00
vurtun
d8688c623f Fixed clipping rectangle bug 2016-10-30 14:12:30 +01:00
vurtun
bd3fd8300f Pulled panel memory managment into nuklear
I simplified a lot of API calls by pulling panel memory management
inside the library. All API calls which previously required a panel
as parameter are now handling their panel themself.
2016-10-29 23:28:47 +02:00
vurtun
534b14a2a9 Fixed X11 stroke rect drawing 2016-10-29 21:15:16 +02:00
Robin B
fe785e590e Fix segfault
calling nk_init_default stores the address to the font (which is on stack) into the nk_context
but when it returns that stack memory is effectively undefined, thus making the program segfault
2016-10-08 19:58:11 +02:00
vurtun
e4623c7f8a Upgraded demos to new non-block popup APIs 2016-09-15 20:18:41 +02:00
vurtun
85d109e351 Fixed non-blocking popup closing behavior
This is a breaking change which fixes bad closing behavior in
non-blocking popups. If the maximum size of a non-blocking popup was
not reached and you clicked to close the popup under it could happen
that it wouldn't be closed. This is now fixed in combination with
more popup control by allowing to set both the maximum height as
well as popup width.
2016-09-15 18:20:07 +02:00
vurtun
cc9d6f374c Updated d3d11 to use vertex layout format 2016-09-10 13:11:12 +02:00
vurtun
9e6b4f67cc Changes to fix #233 and #238
For more informatio please look inside the issues and for the
actual changes overview please look inside `CHANGELOG.md`
2016-09-08 20:20:02 +02:00
vurtun
1b9779ce51 Nuklear now allows custom vertex layouts
I removed the default vertex type and instead create an API to allow the
user to specify the vertex struct layout. Of course you are still
bound on what the library actual has on vertex data but the type and
sequence of the data is now configurable. This commit is quite
experiental and could introduce some bugs, but so far it look fine.
2016-09-02 15:33:49 +02:00
vurtun
550a2b03d3 Fixed some bug introduced by last commit and more
This commit fixed some bugs from the last commit as well as some general
changes and fixes of some old bugs. For overview of all changes please
look inside `CHANGELOG.md`.
2016-08-31 19:19:06 +02:00
vurtun
ad821dc808 Added additional height parameter to combo box
Added a max height parameter to very retain mode combo box to allow
a fixed height.
2016-08-29 19:40:27 +02:00
Martins Mozeiko
cda38a853c Fixed issues with GDI+ demo - font handling and typo for VK_END handling. 2016-08-24 19:16:34 -07:00
vurtun
ef835f7afc Fixed some C++ errors and styling in windows demos 2016-08-17 08:00:38 +02:00