You're welcome. I hope it is useful.
The fastest way is to draw a TBGRABitmap is to draw it on a canvas like this :
bgraBmp.Draw(Canvas,0,0);
As far as I know, the surface does not matter (TForm, TPanel or TPaintBox).
Using a TImage is slower, because it is copies on a TBitmap which is then drawn to the screen.
If you want to use a surface and keep what you are drawing, you can use TBGRAVirtualScreen. It handles the changes of the size and avoids flickering.
So basically you have two ways :
- creating your own TBGRABitmap and draw it on a TForm in the OnPaint event. When you want to update the image, modify TBGRABitmap content and call TForm.Invalidate
- use a TBGRAVirtualScreen and update the content in the OnRedraw event. When you want to update the image, just call TBGRAVirtualScreen.RedrawBitmap