On Tue, 21 Jan 2003, Andreas Beck wrote:
> > What has that to do with the matter we're discussing here?
>
> It is the same thing. If windows had backing store, it could redraw -
> right?

windows _has_ backing store, just not all apps request it.

> > Applications should lock the gfx mem when accessing it and unlock when non
> > accessing it anymore.
>
> O.K. - so I have an idiotic application that does that for a long time.
> Shall I thus inhibit VT-switching? Great DOS-Opportunity.

If the app doesn't respond in, say, 5 secs you could put it to sleep.

> > I'm not sure about this. By using locking and shared memory VT switching
> > could be put to wait until the gfx mem gets unlocked.
>
> That's what I am saying. You _have_ to schedule VT-switching. And if you
> already have to do that, why not just have the application acknowledge
> the request and all is easy and smooth.

uh? Because it's not the same thing and because it's NOT TRANSPARENT! The
whole point of kgi/ggi is that the app doesn't _know_ where it's running,
so tying it with a specific target is the dumbest thing to do.

> > Look, it could be implemented _exactly_ like in X: applications can
> > request backing store if they want, so let's do it with ggi/kgi too: if
> > apps request backing store, just let them go to background and provide
> > them with a backing store,
>
> Why make a big deal of it, if the app can just do that:
>
>       if (have_vtswitch_request()) {
>               backstore=ggiOpen("memory",...)
>               ggiSetMode(backstore,...);
>               ggiCrossBlit(currvis => backstore,...);
>               savedvis=currvis;
>               currvis=backstore;
>       }
>
> If that's too much to write, we can put it in a lib.
>
> But the _app_ knows when this can be called safely.

look there: "vtswitch_request". So, does any ggi app have to implement
that? Or will there be some ggi apps that run on kgi and other that don't?

> > It would be really annoying, for example, if I started my favourite
> > fractal application, then switched console to do some programming, and
> > after one hour I went back to the fractal app just to discover that it
> > didn't do _anything_ because it's been put to sleep.
>
> That would be a perfect example for a broken application.

lol :)

> If the app wants to run in BG, it should react nicely to being asked to
> stop using the graphics engine.

The app _doesn't_ have to care about where it runs, I should be able to
run it on X and on KGI without having to touch one line of code. Your
approach defeats the whole point of ggi.

> > see, that's a perfect example of an application that NEEDS backing store
> > and that NEEDS to NOT be put to sleep.
>
> Why does that need backing store? To avoid having to store its result
> somewhere else?

Yes, to avoid to implement a backing store itself: why do it when there's
such a nice feature already implemented in the framework?

Fabio Alemagna

Reply via email to