I found this topic and although genrally an advice has been given to synchronize drawing onto Canvas, I really think this is only walking away from the problem. I am writing a simple game, and drawing a frame out of background and sprites. It is generally a lot of computation, just compoziting the final frame. I would like all of that to happen in the thread, I would only ever draw on a memory TBitmap, that would never go to the screen. Then, once I have the frame ready, I would Synchronize a method that prints it as one single Cavas.Draw(x,y,MyFrame);
Why I cannot do this on Linux? While I aparently can do this on Windows. I know I can synchronize all the Canvas.something calls, but that defeats the purpose, it would cause a delay in my main thread every time a heavy bitmap compoziting operation is happening, which happens a lot for every frame.
How to go about this? Does anyone know?