Armel Asselin:

> ... generally, a painting system is transaction oriented, i.e., open a
> transaction, do all the job (computing the bound box of things to update and
> accumulate draw related updates somewhere, or bailing out if too many,
> noting that with a 'redraw everything' flag), close the transaction: if
> something was to be updated, do it

   The case where this does not work well is scrolling. When you
scroll the window, all the lines on the screen need to change so the
bounding box is the whole window. Redrawing the whole window is quite
slow and the window already contains many correct pixels that are just
in the wrong position. So the scrolling code performs a *synchronous*
blit to move those pixels to where they should be and then fixes up
the newly scrolled in pixels. This has to be synchronous as otherwise
multiple scrolls occurring before a paint become very confusing as you
don't know which pixels are still valid.

   Edit widgets that do not do this are generally too slow to use. For
an example, the C# version of SinkWorld/Tentacle does not perform
synchronous scrolling as Windows.Forms has no equivalent to
ScrollWindow.

   Neil

_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to