Can someone explain how it is possible to reduce or remove screen flickering when bitblting a large area? Is there a way to buffer it or create a seperate thread?
Of course plu...there is a tutorial somewhere..i just cant find it now... It goes like this: Make a backbuffer from a memory DC...do all your BitBlt in that buffer and on WM_Paint just BitBlt that big backbuffer on the Screen DC you get from BeginPaint/EndPaint Dont froget to do the BitBlt outside the WM_paint Also..but do create the whole image into Memory DC first and them BitBlt :) If you do a game, or some continouse animations you can Blit on PeekMessage() driven game loop or on a separated Thread...but Threads are tricky :) That shoud do it....our GDI version of the game worked like that ...never had any flicker... Bogdan
how do you back buffer something?
Double (or back) buffering just needs one area to draw on, and one area to show. Like you paint on the back side of your canvas, and when it's all finished flip it over so the world can see. Use CreateCompatibleDC to make a place to draw, also CreateCompatibleBitmap it big enough to draw on. Do all your screen updates on this seperate bitmap, and when they are all complete blit the entire bitmap to the display window.
i made a nice proggie with backbuffering. it's not very complicated. it hasn't got any comments but try if you understand it. if not, e-mail me. you can download it at www.fly.to/safcon it's a new site.
sorry, the site ist down, try www.surf.to/safcon