Index:
[thread]
[date]
[subject]
[author]
From: Steve Cheng <elmert@ipoline.com>
To : ggi-develop@eskimo.com
Date: Wed, 26 Aug 1998 11:29:00 -0400 (EDT)
Re: Some things that seem to be missing
On Wed, 26 Aug 1998, Olivier Galibert wrote:
> I'm reading the new documentation and some useful functionalities
> seems to be missing:
> - creating an "related" visual. This means creating a visual in a new
> display but on the same graphic device that a given visual. Under
> X, it would open a new window, under KGI it would create a new
> virtual terminal, etc... One on the targets is to be able to have a
> GUI application (under XGGI/Berlin/whatever) that opens a fullscreen
> visual in a new mode. Useful for games, slide shows, public
> interactive systems with touch-screens...
Simply open the same "display string" again.
> - the pixel storing order of rectangles should not be specified. This
> may prevent in some cases to use hardware acceleration for no
> particular gain.
I recall there is some flag for packed get/but buffers. Naturally this
would be the order that the hardware wants. By default, it is not packed to
provide a simpler interface to the application.
> - the library is not thread safe. This is bad bad bad bad bad bad
> bad. This is going back 5-10 years in time. It makes code using
> active threaded components a tremendous PITA to handle. It probably
> makes gwt next to useless for anything but X. Oh, and did I say it
> is bad?
Yes, I agree it's a sticky problem.
Here's what I've been thinking:
In the targets, driver libraries, etc., do _ggiLock() and _ggiUnlock().
We don't do it in stubs because e.g. in ggiEventPoll() you might want to
release the lock for periods of time. It might also depend on the target:
e.g. Xlib must lock, but simultaneous drawing on framebuffer should be ok.
ggiFlush should do a _ggiTryLock(), since that is the current behaviour
(albeit X locks on ints!), but the real problem is that pthread_mutex_t
isn't async signal safe, so if we do a _ggiLock() from mansync, we get
a deadlock.
Comments?
--
Steve Cheng
email: steve@ggi-project.org
www: <http://shell.ipoline.com/~elmert/>
Index:
[thread]
[date]
[subject]
[author]