--- Finn Bock <[EMAIL PROTECTED]> wrote:
>
> The layout dimension that is stored in the FO tree
> is constantly updated 
> during discovery of BreakPoss'es and is never
> reused, not even when a 
> block is split over a break where new values are
> assigned.
> 

I don't know enough to comment too much on which
implementation would be better here, but the spec does
not appear to have much problem (see [1], also Finn's
earlier reference to the spec's conceptual procedure
[2]) with back-and-forth processes, updates, etc.
between the FO Tree and Area Tree.  Indeed, it seems
to indicate that this kind of interaction does need to
occur for the process to work correctly.

Now if would be faster or more efficient to do so,
that may be another issue.  But Finn's ideas seem to
be sufficiently in agreement with the spec.

[1]
http://marc.theaimsgroup.com/?l=fop-dev&m=107503563018878&w=2
[2]
http://marc.theaimsgroup.com/?l=fop-dev&m=107688130007968&w=2


> The solution I propose makes it impossible to run
> two different 
> renderers concurrently, but it does not in any way
> prevent the FO tree 
> from being reused with another renderer after the
> first rendering is 
> finished.
> 
> > This is another argument
> > to separate FO tree and layout information.
> 
> No, not really IMO.
> 

I think I agree with Finn on this issue.  Reuse of the
FOT/AT, i.e., re-rendering from the same input FO, but
with a different output type, would probably be only a
few percent of all usages of FOP.  It is trivial
enough that it should not weigh into the architectural
decision, especially if doing so would (1) create a
messier, hard-to-perfect design, or (2) slow things
down for bulk of users not requiring this
functionality.  

Stated another way, if those wanting both PCL and PDF
for the same input FO would have to have the FOT & AT
regenerated from scratch, we can live with that.  For
one thing, that's probably the current situation with
the commercial renderers anyway.  Also, a requirement
for the FOT and AT to stay-in-memory and be
reenterable may end up resulting in a rather buggy
implementation.

Glen

Reply via email to