Skip to content
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

GUI / GUI Framework #48

Open
WebFreak001 opened this issue Jul 21, 2016 · 10 comments
Open

GUI / GUI Framework #48

WebFreak001 opened this issue Jul 21, 2016 · 10 comments
Milestone

Comments

@WebFreak001
Copy link
Member

needs to be there in the future

@WebFreak001 WebFreak001 added this to the The Future™ milestone Jul 21, 2016
@Vild Vild added the userspace label Jul 21, 2016
@kamirr
Copy link

kamirr commented Aug 25, 2016

Maybe port some most important parts of Qt? Actually, it's developped enough to be part of system's standard library. What do you think? Imo it would save much effort.

@M4GNV5
Copy link
Member

M4GNV5 commented Aug 25, 2016

Qt? sounds like C++
gtk masterrace

@kamirr
Copy link

kamirr commented Aug 25, 2016

Gtk is mainly gui, Qt has… everything. And as it's OO D wrapper would be quite good.
//edit: Developpers of PowerNex would have to implement low-level operations and nice D wrapper but pretty much work would be done by other people. I mean – no need of implementing high-level stuff (it's hard in big projects), which is nice.
//edit2: Aaand Qt has epic Qt Creator, so Qt masterrace.

@Vild
Copy link
Member

Vild commented Aug 26, 2016

I don't see why I should use qt, it seems like it would be too big. I want just a gui library, not a alternative standard library.

My goal is also to have everything written in D, so if I would take a preexisting library I would take dlangui. But my current goal is to write one from scratch.

@rjmcguire
Copy link

dlangui is the right approach to get something up quick even if it doesn't quite fit your code style or whatever. ... I went and looked at the code now, and there is a lot of stuff in that library.

Perhaps it would be interesting to just port the console and dml parts to PowerNex for now? I think that would help UI people to start playing around with PowerNex.

Is there a equivalent to epoll / kqueue in PowerNex yet? Any pointer into the code for event driven programming?

@ZILtoid1991
Copy link

I wrote a GUI framework (which I named Concrete) for my game engine for various reasons (editor, etc.), if you want to then you can recycle those parts of the engine. Link
Things that might need to be changed and other issues:

  • Rewrite the draw functions to be 32bit natively instead of 16bit paletted. I can do that after my finals or just rewrite the blitter algorithms in the BitmapDrawer class to 32bit. You might want to port the code from Assembly to make use of the built-in SIMD commands of Phobos.

  • The skin is made to mimic old systems and thus are designed for low-DPI rasters. Either needs a new skin, or deal with it.

  • Drop-down menus are currently unimplemented, as the main goal for version 0.9.1 is to get the collision detection working again as I tried to optimize it. As I have to completely write it by myself (so I could use the engine for my thesis if I find a consultant), I cannot allow external people to make it work. Either wait for me to get it working or consult about me on changes.

  • There's no hardware acceleration at the time, my whole engine will need a custom code in OpenCL due to the emulation of fixed point rendering. Currently I cannot work on that.

  • Windows are handled as sprites. It can waste a lot of memory to store the prerendered windows, also I currently don't have any way to limit the rendering area to the places changed, thus wastes a lot of CPU time.

@ZILtoid1991
Copy link

My finals have ended, if needed I can work on the GUI (as well as some standard graphics drivers to make it work). I even came up with ideas for a DirectX-esque framework containing stuff for input handling, audio, and 2D graphics (3D should use a port of OpenGL and/or Vulkan).

@Vild
Copy link
Member

Vild commented Jan 29, 2017

Currently, I'm in the process of refactoring and planning big parts of the kernel, so I wouldn't really recommend working on a GUI framework yet.
I think it will take ½-1 year before it would be ready for one.

So you could work on one if you want, but I can't guarantee if it will be used, just because I want the framework to feel natural in the OS, both API wise and infrastructure wise.
I don't know how the kernel infrastructure will look when it is time due to the code is being changed a lot.

I will set up some sort of planning place for planning different parts of the OS, in the near future. But until then I can't really recommend that you plan too much stuff for PowerNex.

@ZILtoid1991
Copy link

How's the OS now? If those things are finished, I can start the development of Concrete for PowerNex.

@Vild
Copy link
Member

Vild commented Jan 4, 2018

Ehh, sadly school took a lot of time and energy from me. Can really been seen here https://github.com/PowerNex/PowerNex/graphs/commit-activity

I still have two reports I need to write before I have time to really work on PowerNex again.
But I have done a lot of the refactoring already, about 50-75% I would guess.
I mostly just need to move a few things, restore the functionality that the latest release had, and design a less shitty API for framebuffer access (and a few more userspace APIs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants