Updating direct draw
Some mass operation as filling rectangular region could be optimized using Move and Fill Char functions.
This is native way to express two dimensional array in pascal.
There four ways to access pixel data and its internal structure defined by this type: Bitmap class should provide direct pixel access given by X, Y coordinate.
But some graphic operation could be further optimized by not doing coordinate calculations for every pixel and rather do pixel pointer shifting by simple memory pointer addition.
If code is notably smaller like Set Pixel and Get Pixel methods it is better to inline instructions rather than do push and pop operations on stact with execution of call and ret instruction.
This optimization will be even significant if such operation is executed many times as pixel operations do.
Thanks to delayed draw execution with calling Redraw method drawing of frames could be skipped. I can store transparency and 16-bit values for each channel.Image have to be copied repeatedly if motion image is generated. Then our aim is to do as low as possible copy operations and rather copy our bitmap to screen directly if possible.You can draw image as fast as possible in simple loop: Or draw image for example using Timer with defined drawing interval.Here you can found some known ways to define pixel type.We can use simple integer pixels which would be faster on 32-bit platform: Another situation is use of polymorphism of classes.