part-cw / lambdanative

LambdaNative is a cross-platform development environment written in Scheme, supporting Android, iOS, BlackBerry 10, OS X, Linux, Windows, OpenBSD, NetBSD, FreeBSD and OpenWrt.
http://www.lambdanative.org
Other
1.39k stars 85 forks source link

GUI Programming Nuklear #412

Open gassechen opened 3 years ago

gassechen commented 3 years ago

Hi. It could be incorporated as a GUI?

Nuklear is a minimal-state, immediate-mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window/input handling but instead provides a highly modular, library-based approach, with simple input state for input and draw commands describing primitive shapes as output. So instead of providing a layered library that tries to abstract over a number of platform and render backends, it focuses only on the actual UI.

https://github.com/Immediate-Mode-UI/Nuklear

mgorges commented 3 years ago

Sorry, but I am not quite sure why we would want to add this as in how would this advance our platform? There were similar suggestions in #126. In the end, we barely have enough resources to support the current framework, so unless you wanted to contribute this as a fully integrated implementation via a pull request for consideration, I don't think this is feasible.

To make this work, we would not only have to add Scheme to C bindings for all functions, add out input handler bindings, and from their documentation, also write platform-specific drawing code, as "To draw all draw commands accumulated over a frame you need your own render backend able to draw a number of 2D primitives. This includes at least filled and stroked rectangles, circles, text, lines, triangles and scissors." - if I were to add new drawing code, I'd focus on adding Metal for iOS as eventually, we'll lose OpenGL support there.

gassechen commented 3 years ago

Okay. Okay I understand.