Re: commit: re 2313


Subject: Re: commit: re 2313
From: Martin Sevior (msevior@mccubbin.ph.unimelb.edu.au)
Date: Mon Jan 14 2002 - 06:08:12 CST


Hi Tomas,
        I just recently had a chance to try out all these cool
things. Performance is much better and the flicker is basically gone on
justfied paragraphs. These are substantial improvements.

There remains a bug in justified paragraphs with tabs in the the middle of
text. The text starts well past the tab marker.

Cheers

Martin
  

On Sat, 12 Jan 2002, Tomas Frydrych wrote:

>
> In order to remove the secondary causes of 2313 (unnecessary
> split of text into multiple runs), I have moved into the non-bidi build
> some code used previously only in the bidi build, namely:
>
> * added call to coalesceRuns() into fl_BlockLayout::format(). The
> result of this is that at any given time our document is represented
> by the smallest number of runs required. This not only saves
> memory usage (previously if you started a new paragraph every
> single character lived in a run of its own until you hit enter), but
> also, and more importantly, speeds up drawing since any uniformly
> formatted line gets drawn by a single call to the OS text drawing
> routine. The down side is that we do extra run spliting/merging if
> you edit in a middle of a pragraph, but that is negligeable in terms
> of performance since at worst it impacts only a single line (the one
> being edited) and because that line is in the end drawn by a
> smaller number of calls to the OS, at the end of the day we should
> still be better off than we were before.
>
> * removed some unecessary and time consuming width calculation
> code from fp_TextRun::mergeWithNext().
>
> * moved the fp_TextRun::_addupCharWidths() function out of the
> bidi-only section
>
> * replaced the simpleRecalcWidth() calls in fp_TextRun::split() with
> calls to _addupCharWidths(), saving a multitude of unnecessary
> calls to the OS character measuring routine.
>
> * removed a clearScreen() call from fp_TextRun::recalcWidth()
> which was the source of bad, non-bidi-specific flicker when editing
> a justified paragraph.
>
> Tomas
>
>



This archive was generated by hypermail 2b25 : Mon Jan 14 2002 - 06:08:21 CST