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