Subject: Commit: Fix bug 119, 106 and major improvements to scrolling speed.
From: Martin Sevior (msevior@mccubbin.ph.unimelb.edu.au)
Date: Tue Jun 05 2001 - 01:50:19 CDT
Fix bug 1056, Fixed bug 119, major improvements in scrolling speed.
This checkin gives major enhacements to our drawing speed on all platforms
and even more for gtk.
In the draw method of fp_Column we used to draw all lines to the screen
and just rely on the clip rectangle the graphics context toto limit
drawing to the the clip. I added code to only draw lines that fall within
the clip ractangle. This gives a substantial improvement in speed to the
point where I can scroll in real time by holding down my down arrow key we
repeat set to 10 per second.
Redraw performance has been substanitally improved from this change and
also by setting up a background redraw thread invoked using the
gtk_idle_add function. Expose events report their area's to this which if
it is currently doing a redraw will perform a union with the currently
saved exposed area.
Bug 119 was fixed by recording the the amount of the scroll step, and
increasing the repaint area accordingly before the scroll is actaully
made.
The combination of all these is a substantial improvement in Abi's speed.
To do all this stuff required changes to xp defintions ofvirtual
functions. I tried to make the required changes to the platform
implementations but since I can't compile on other platfroms I made have
made a mistake.
Other platform devlopers should check and if there's problem you can't fix
please send me an email.
Next I plan to cache pt_DocPostions in the Piece Table fragments. This
will substantially improve the Piece Table performance.
Enjoy!
Martin
CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: src/af/gr/beos/gr_BeOSGraphics.cpp
CVS: src/af/gr/beos/gr_BeOSGraphics.h
CVS: src/af/gr/mac/gr_MacGraphics.cpp
CVS: src/af/gr/mac/gr_MacGraphics.h
CVS: src/af/gr/qnx/gr_QNXGraphics.cpp
CVS: src/af/gr/qnx/gr_QNXGraphics.h
CVS: src/af/gr/unix/gr_UnixGraphics.cpp
CVS: src/af/gr/unix/gr_UnixGraphics.h
CVS: src/af/gr/win/gr_Win32Graphics.cpp
CVS: src/af/gr/win/gr_Win32Graphics.h src/af/gr/xp/gr_Graphics.cpp
CVS: src/af/gr/xp/gr_Graphics.h src/af/util/xp/ut_misc.cpp
CVS: src/af/util/xp/ut_misc.h src/af/xap/unix/xap_UnixFrame.cpp
CVS: src/af/xap/unix/xap_UnixFrame.h
CVS: src/af/xap/unix/xap_UnixPSGraphics.cpp
CVS: src/af/xap/unix/xap_UnixPSGraphics.h src/af/xap/xp/xap_App.h
CVS: src/af/xap/xp/xap_Frame.cpp src/af/xap/xp/xap_Frame.h
CVS: src/text/fmt/xp/fp_Column.cpp src/text/fmt/xp/fv_View.cpp
CVS: src/wp/ap/xp/ap_TopRuler.cpp
CVS: ----------------------------------------------------------------------
This archive was generated by hypermail 2b25 : Tue Jun 05 2001 - 01:50:37 CDT