Le 10/03/2015 02:25, karl a écrit :
Please don't use SDL2 and such as basis, or OpenGL with
glBegin+glReadPixels without FBOs and PBOs (not Pbuffers). I'm a GL
driver dev (userspace) for a smaller company, and I see too much gore in
popular software like that (gnome3 is the most-horrific). A
fully-featured GUI with GL needs only a thin wrapper for
glXGetProcAddress, GL context creation, BitBlt-like things and
font-glyph cache (or better yet, signed-distance-field text rendering).
Something like this:

Base (sans clipping, I haven't ported it from asm yet):
https://github.com/idinev/pub_toys/tree/master/Blitters/oDraw

SDF text:
https://www.mapbox.com/blog/text-signed-distance-fields/

Also, GL should be optional, just like with Qt; it introduces noticeable
lag of 16 to 48ms while being a resource hog unnecessary for most apps.
I could help with implementing the abstraction layer and create a
software blitter (I was professionally doing such stuff before, for GUI
toolkits and stuff; but then again this stuff is trivial).

A 32-bit backing-store is always vital (DDB+GDI dibsection, GL texture
and such). Qt has it (and implemented really-well) and that's the first
pixel-related thing we should implement. BGRA8 will be the best format
(blue in LSB).
A 9-cell blit will also be vital functionality.

That the way we choose with DQuick. I use SDL2 under linux only cause I was unable to set up a window with xcb. Under Windows the window is created by native win32 functions.

For glyph I use fontconfig + freetype and I generate atlases,...

I started a DirectX renderer, but it doesn't work for the moment. So pluggin a software renderer would be possible too.

DQuick is just like QtQuick, a simple render coupled to a language that support property bindings, if you want more advanced GUI components like widgets the user have to create them based on primitives (images, border images,...).

But just like Qt do, advanced components can be added after to the library as an extension (QtQuick.Controls).

A such GUI library is in theory simpler to do, cause there is no tricky things to implement in it to follow native UI of platforms,...

Reply via email to