-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The future of Nuklear - brainstorming ideas #1
Comments
@dumblob wrote on 2021-12-20: Will reply later (hopefully at the latest in a few days but ... anything can happen). Btw. could this be made public? I think we shouldn't hide such discussions 😉. |
@BieHDC wrote on 2021-12-20: I dont know, i am literally using this interface first time too. But i am busy the next days anyway, so... |
@RobLoach wrote on 2021-12-25: One thing I'd love to see revamped is the gamepad/keyboard-only support. While you can accomplish it, it takes some work. Would be nice to have it just work. |
With my
One other thing I have as a wishlist item is a better allocator interface. The current one has the same interface as malloc/free, but this kind of interface requires the allocator keeps track of the allocation length, which can be extra unnecessary overhead for some allocation schemes. |
Another one: A very low level API for
The idea here being that the string will be built in place on the |
Just saw this and find it interesting - especially if extended to allow for custom string "type" - e.g. https://github.com/josephg/librope (or its "successor" https://github.com/josephg/jumprope-rs ). |
Hi guys. |
@iperov yes, that's one of the few things I myself had in mind - but didn't have time to write a concise description of what I think. I'll get to it at some point. Feel free to take a look at traffaillac/traffaillac.github.io#1 and Pauan/rust-signals#31 in the meantime. If you have any ideas, speak out - the more feedback the better 😉. |
I have an idea, but I don't know how relevant it is because I don't design GUI engines. the engine should automatically build internal layout/widget objects/structures? also can user get access to such structures to define additional logic?
so it is ok when some widget sequences are changed and do not match internal representation, they will just recreated, and all animation will reset. also I would like to have a library for python as well. Because machine learning requires visualization, and QT is too redundant for that purpose. |
Hi, Nuklear is very cool project, I will use it surely. My request is : will be it as 100% full customization with 100% visual for my C++ project ? |
The current Nuklear is very customizable. If you can specify technical shortcomings you experience, then please describe them in detail here. Otherwise please use the Nuklear issue tracker to discuss everything else. Thanks! |
To keep in mind the other side of the spectrum: https://wiki.csswg.org/ideas/mistakes (it's missing some - e.g. |
Ok cool ! Thank you too and keep it up ^^ |
Some very interesting thoughts about "command" drawing (Nuklear currently also uses commands) and different kinds of such commands etc. from a highly experienced person: red/REP#103 (comment) . |
Sorry for the long silence, but i finally got time again. Here are some of the keypoints i would like to have:
Thats what i remember right now, please give feedback. |
Images (incl. icons, buttons, etc.) shall be better dealt with - see e.g. Immediate-Mode-UI/Nuklear#444 . |
Transparency - masks etc. could be useful... |
Tiling images (as background etc.) could be desirable for some use cases (neo)Nuklear tries to cover. See Immediate-Mode-UI/Nuklear#444 . |
@dumblob do you have any resources to read about internal UI implentations and architectures? |
@iperov not much as of now. But if you have anything potentially related, please speak up - if not for me, then it's guaranteed valuable for others. |
My suggestions:
|
So over the last months i tried to get something to show multiple times, but eventually it becomes overwhelming. IRL work probably did not help ether dealing with that. |
I for myself did not code any examples yet - I am still in the brainstorming phase looking for proper abstractions. I am especially focused on dynamic behavior as over the years I started to realize that having solved the dynamic behavior (i.e. anything coming and changing over time), everything else is suddenly much easier to find abstractions for (layouting, styling, customizing, etc.). But if you have anything (even non-functional), feel free to post a link to your repo so that we can take a look at your ideas to distil your thoughts 😉. |
have you seen any new UI related projects? |
Add an Apple macOS backend |
@iperov I am trying to incrementally keep up with UI & UX development all over the world. So yes and no to your question 😉. I have seen new projects/repos but unfortunately no new approaches. |
@dumblob What new approaches are you suggesting? |
not in my lib. |
@iperov where is your lib hosted? Let us move the discussion about "error prone" etc. of signals/slots/events APIs to your repository. |
But you started this discussion |
I was a bit surprised that you were talking about errors at all, discussing abstract concepts. |
How far shall neonuklear go with its API abstractions? There is https://github.com/linebender/glazier and similar projects which strive to make it easier to focus only on one thing in UI libs. |
how is glazier relevant? nuklear should remain non bloatware, keep it simple, fast, extensible and portable renderer agnostic IMGUI library, nothing else |
@ryuukk sure, Nuklear will stay as it is. But here we discuss neonuklear - i.e. some form of a successor (if any). If we find out there is no need for more disruptive APIs/ideas than the current Nuklear offers, then neonuklear will not take off and thus will not exist at all 😉. |
Something else. |
@Googler1 could you elaborate? Nuklear and Dear ImGui are most probably the only most portable (supporting most platforms) medium-capable (feature-wise) GUI libs in the world. Do you mean neonuklear shall continue in this league or do you mean something else? |
Brainstorming ideas? On a GUI library? In 21st century?
|
Especially in the 21st century! I am currently writing a layer on top of Qt, because there is NO gui library that meets my requirements for new software.
|
By the way, does anyone know if there are GUI projects where the rendering is done entirely on GLSL shaders? |
@iperov I am only aware of the following: https://github.com/zauonlok/renderer They use shaders to varying degrees, but I am not sure if for everything. |
What's the idea? |
@Googler1 we are brainstorming them here 😉. The reason is that we know Nuklear, we know how it is being used, we know its pros, but we are also very much aware of many (most?) of its cons. Here we try to gather potential "requirements" for a modern GUI library which would tackle most (all?) of the Nuklear flaws while not sacrificing many (any?) of Nuklear's major advantages. Feel free to bring your own ideas here! |
I think when you are brainstorming ideas, you are limited by the language you think in. |
Just to make it clear as sky - this brainstorming has no constraints. Thus there is no limit on which language(s)/notations/... to use for neonuklear's design. If we will later find out it is difficult to implement the design for lack of features in certain languages or whatsoever, then we will have another separate discussion but for now let us not consider any such constraints. |
that's bullshit and so wrong in many levels.. If you guys go with a different language, then it's gonna be the death of Nuklear The advantage of NK is: portability and efficiency, C is king at portability and is very fast |
it is obvious that you have not programmed in other languages.
what is dead cannot die |
I did, you just fail to understand the scope and purpose of Nuklear |
What's your problem friend? you can keep using nuklear. Obviously the author has outgrown his project and is ready to move on. This is a normal process of self-development. |
iperov commented 2 days ago
I disagree, C is definitely not limiting at all. It is the most flexible language I know. But I understand your perception: it takes a lot of work to implement the most sophisticated features. ryuukk commented 2 days ago
I disagree. Let me explain: I've been using the Lua language in my main project (with Nuklear) and I'm loving it.
I'm more and more convinced that Nuklear and Lua were made for each other, because their philosophies are the same. What I propose by using the Lua platform is not merely a binding or a language migration, but a renewal of the Nuklear API. For example, the following functionality can be incorporated into Nuklear:
This is all using C! And with the option to use Lua too, together and mixed. This paves the way for rapid interface development without the need for traditional code compilation. Finally, the name "neonuklear" reminds me of a project that is following this path: it is NeoVim, a reimplementation of the classic Vim editor, incorporating Lua. |
It is flexible in terms of direct data manipulation on CPU. |
I guess these terms are all new to you, because you are as old as the C language. |
I feel the discussion is getting heated.I think all the raised points here in our discussion are relevant. Please just do not point fingers at each other, but rather at the specific features/ideas/proposals. We need less "human context" (like Btw. @zecruel you are one of the top users of Nuklear when measured by app complexity and size. Thank you for taking some of your precious time and chiming in - I welcome your input! |
what do you think about the concept of a GUI engine where it would be easy for the user to create new widgets of any complexity |
Hi all, please dont kill the project, help could be on its way if theories comes together. I also encourage people here to have more out of the box thinking from most classical design and architecture you are used to. In one case, Ive come up with a new potential graphics standard called UIP (user inter phase) and UXP (user experiential design) which can fit more better in immediate design. If its not self-explanatory, I apologize because the spec is in early stages and requires me to delve deep in many topics which is overwhelming. If you can, it would be nice to shift focus on more to Vulkan. As for C's limits, its limited by the classical paradigm we are in and it is the fastest classical language. The last great thing we've had in software was C99 and the worst thing to happen to software was JS. If there's a chat channel for this project, please put it here. |
Hello 👋 Also I don't think the choice of language holds much weight because, each language now has its player e.g. Rust has egui, C++ has Dear ImGui, so Nuklear was/is very much so the C man's de facto portable UI library |
your first gui app and you don't think 🤣 I am working 4 years in guis. Language solves EVERYTHING. Language is not only how convenient you markup gui elements, also how it is bug proof, logically correct, and more importantly how it will work with the new async era. My conclusion at the time of 2024: in a logical system, everything is logical. |
@BieHDC wrote on 2021-12-20:
This should be the discussion place of what should be done and etc as the discussion started in this issue.
This is also my first time directly working with others together and figuring out this new interface.
The text was updated successfully, but these errors were encountered: