Although we are trying hard to make PixelLive SDK faster, it is indeed slow in some situations. SmoothScale is far slower than Scale. PhotometricTransform is also slow if it is used with color profiles. But there're many techniques that virtually get rid of the slowness and delayed drawing is one of them.
There're two rendering modes for ImageLock::lock, rmDefault and rmPreview. rmDefault is to render the image for the final output. Although it may take long time but the image quality is best. rmPreview does not assure any image quality. With some Image classes, it does not output any actual image but just all black (white); if the Image instance judges it could not load the image of requested area immediately, it can return the image of all black (white). So you should not use the mode for output purpose.
You should wrap your Image instance with ImageCache to maximize the drawing performance. And prepares a time counter (on Windows, WM_TIMER is good enough).
Everytime the application is required to paint a portion of an Image instance, it should not use rmDefault but rmPreview with ImageLock::read function and reset a time counter to 0 and start the timer.
The time counter reached some appropriate value (for example, a value corresponding to 500ms.), the application redraw the whole area exposed to the user with rmDefault.
This document is automatically generated using doxygen 1.5.4 at Fri Jun 27 18:22:54 2008.