ogle and moods
Tomas Carnecky <[email protected]> Wed, 26 May 2004 14:15:24 +0200
| Newsgroups | gmane.linux.opengl |
|---|---|
| Organization | none |
| Message-ID | <[email protected]> |
Hi folks,
I'd like to present here my project ogle (opengl environemt) (I know
about the name conflict). Ogle is an attempt to create an environment
where every application can create an opengl drawable without the
xserver. Ogle is completely independent of any display servers (xserver)
and protocols (X11). The key feature of ogle is the ability to share a
drawable between several applications. Once a drawable is created, every
application with the appropriate rights can attach it to it's memory
space and work with it.
Each card in a system creates a character device in /dev. Ogle opens
that device and gets the name of the opengl library. That library has
an interface structure with function pointers. Using this interface, you
can create/destroy and attach/detach drawables (drawing surface) and
opengl contexts. The library can use the device to access the graphics
card. However, the interface between opengl library and device is not
defined, so everyone can create it's own interface there. One possible
interface could be the framebuffer device (/dev/fb).
Moods can be compared with xlib. Moods defines a protocol which is used
by applications and display servers to communicate with each other.
The moods protocol is very simple. Client applications send requests to
and recieve events from the display server. As the drawable is created
by the client application and not the display server, the application
can change the display server while running. A special case is when
the display server doesn't display anything, but only manages the
clients (I call it the 'application server'). You can redirect all
clients to a application server (which runs in the background) and
close the display server. Later you can start the display server and
redirect the clients from the application server to the dispaly server.
While this doesn't make much sense, it shows what you can do with it.
To give it a bit of sense, moods is fully network transparent. That
gives you a bunch of new options. One is that you applications run on
a server (24/7) and every morning, you start your personal computer
and redirect your applications to your local computer. Your applications
can run on different servers, that's no problem. Moods is similar to the
'screen' command. Moods uses ogle to manage the contexts and drawables.
Ogle is quite finished, What I need is a opengl implementation. I've
created my own simple implementation for test purposes, it can't do much
more tat draw lines (2D). I'd like to use mesa, but it is more difficult
that it seems to be. The drawable sharing is done using shared memory
(shm_open/mmap/shm_unlink) so it's very slow. If someone could write a
driver which manages the drawables in the graphics cards memory, it
would be much more faster.
I have a working sample of moods with a display server and a application
server where you can play with the 'redirect' packet and see how the
client disappears and shows up as you redirect it to/from the display
server.
The project is in my perforce depot, you can take a look at
http://62.65.141.13:5504 -> ogle->current and opengl->current
It's the web interface for perforce. I have a opensource license for
10 users, so anyone who wants to help can ask me for an account. I'm
currently the only developer.
Any comments are welcome.
--
wereHamster a.k.a. Tom Carnecky Emmen, Switzerland
(GC 3.1) GIT d+ s+: a--- C++ UL++ P L++ E- W++ N++ !o !K w ?O ?M
?V PS PE ?Y PGP t ?5 X R- tv b+ ?DI D+ G++ e-- h! !r !y+
-
To unsubscribe from this list: send the line "unsubscribe linux-opengl" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html