Re: [Fresco-devel] cache graphics
[email protected] Sun, 4 Jan 2004 07:06:23 +0100
| Newsgroups | gmane.comp.video.fresco.devel |
|---|---|
| Message-ID | <20040104060623.GA488@balthasar> |
On Sun, Jan 04, 2004 at 12:18:10AM -0500, Nick Lewycky wrote: > Caching in Fresco is a very simple trick. Whenever a Graphic wants its > rasterization to be updated, it must call need_redraw(). Anything is > implicitly cached; it's still on the screen! Unlike, say, an FPS, we > don't continually rerender the display. > > As for the potentially-evil-Graphic issue, your CacheGraphic::traverse() > method has a pretty comment on the top claiming that it will never > block. It then procedes to call into the Graphic--a method which may > never return. it calls into itself... and it trust itself... the point is that it only calls into the untrusted child-graphic from its thread... > Sorry to fork the mail-thread on you like this, cinap, but I've also > been thinking a lot about this issue. I don't think it's anything we can > currently fix in our implementation. :( > I don't believe Fresco was designed properly. Look at these Fresco > design requirements: > > * Fresco must be entirely ignorant of the underlying pixel grid yet > render perfectly on a given display. Instead, I propose that UI widget > and text layout be aligned to the current pixel grid (if one exists). > Yes, this means that Graphics will have different picking/drawing on a > per-display basis. > > * Fresco must be robust against all possible user or programmer errors > even though we rely on potentially hostile code to do work for us. There > are a few options. For example, Java is a technology that allows someone > to run untrusted code. (Bad because we want to be language agnostic.) > Alternately, we can move the Graphics into the server and only provide > the client with a mechanism for modifying the composition of Graphics. > > * Fresco should work with all programming languages. We employ CORBA for > this. (In other words, it's protected by an SEP-shield.) > > * Fresco must work transparently over a network. Again, we use CORBA. > > * Fresco defines the scene graph to be a DAG, but there's nothing > preventing it from becoming cyclic (to our detriment). this only can be done if the structure of the scenegraph is managed by trusted code in the server. > > Gosh, did I miss any? > > Historically, vintage Fresco never had the "protection against others' > mistakes" issue, because it was a toolkit, not a server, so if you could > crash it you were only crashing yourself. This issue, and whether the > design is still appropriate hasn't been properly addressed. > > If this is a full waterfall designed project then I'm asking to see us > back in the requirements phase. What is Fresco supposed to achieve? What > do we require from it? you mean the current architecture of fresco is a dead end (for this issue)... and we should go back together on the big-round-table... ok... lets do it ;) > And please, please, can we learn from what we got > wrong the first time? (the whole "fresco separates device from look > rather that separating presentation from content" problem still rings in > my ears.) > > Nick Lewycky many thanks for this fast answer! > _______________________________________________ > Fresco-devel mailing list > [email protected] > http://lists.fresco.org/cgi-bin/listinfo/fresco-devel cinap_lenrek