I think when Linus refered to rendering I suspect he actually meant instantiating Figs.
I think his point is that if the graph is modelled in MDR, with x, y, width, height of everything stored there then why also have all the Figs instantiated. If and when we have the graph model in MDR then the GEF graph model should just be like a tree model, it only needs to be built when that model needs to be displayed. There should not currently be any painting of Figs going on outside of the viewport area. On 18/12/06, Tom Morris <[EMAIL PROTECTED]> wrote:
I don't understand how rendering is coupled to persistence format. Whether the format is XMI or PGML we'll still have separate representations for the visual aspects and the model data aspects. > ... then look at garbage collecting > GEF Figs and Diagrams when they're not in view. I think the big potential gain here is not in garbage collecting non-visible items after the fact, but in not rendering them in the first place. Here's how I'd expect things to work: - Until a diagram is opened, I'd only expect ArgoUML to know about the name of the diagram and perhaps that Figs/Model Elements it contains. - When the diagram is opened, I'd expect it to do the work to acquire (not compute) the saved bounding boxes for all top level Figs. - When a Fig's bounding box intersects the current viewport, I'd expect it to look at visibility, Z-depth and occlusion to figure out whether it's visible. - Only for visible Figs would I expect it to be going to query the model for things like the name string to render in text and the value of the isAbstract attribute to select the right typeface to render with, etc. Trying to initialize the entire known universe at load time is going to have serious scalability problems for any non-trivial project. Tom --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
