Eirik Byrkjeflot Anonsen
eirik at opera.com
Thu Jan 28 07:42:17 PST 2010
Russell Shaw <rjshaw at netspace.net.au> writes:
> Dirk De Becker wrote:
>> Thanks for the clarifying questions, since I had no clue what
>> information John needs.
>> The answers:
>> - I want my program to be dominating the entire display (i.e. to be on
>> top of all other graphics). Maybe later on, I will like to be able to
>> switch between being "inside a window" and being "on top of everything
>> else", but for now, being on top of everything else will do just fine.
>> - At present, I will not be changing the resolution (again, this will
>> probably be added in the future).
>> - I will not do 3D stuff, videos might be possible.
> To cover the whole screen, use the _NET_WM_STATE_FULLSCREEN state to
> maximize your X window.
> To have unlimited power in 2D and 3D drawing, use openGL direct
> with Xlib:
Wow, a Mark Kilgard example that doesn't use GLUT :)
(Of course, it is using an old, outdated OpenGL version.)
> Forget widget toolkits. They're totally lame wrappers that hide
> all the useful functionality from you, run like a waterlogged
> sheep, and otherwise assume you don't want to get anything really
> nontrivial running this month.
I think opinions are somewhat divided on that point.
A good toolkit lets you do pretty much anything you want with much less
work, and no significant performance cost. (Frequently with higher
performance, as someone has probably spent a fair bit of effort
investigating how to get optimal performance out of the underlying
A good toolkit will also often do the right thing on other people's
computers, whereas your own code tends to work correctly only on your
own computer. (One of the basic rules of programming: If it isn't
tested, it doesn't work.) And it will typically be updated to take
advantage of new features in the future, making your program still work
and sometimes work better.
The main problem (as with all abstractions) is that if you know exactly
what you want to do in the low-level layer (e.g. X11), it can be very
hard to figure out how to do that from higher up. And it can take some
time for interesting new features to be supported.
(That being said, I tend to favour using X11 and OpenGL directly
More information about the xorg