I would like to optimize the double buffer rendering system I made in win32 c++ programming with gdi+.
So far I created an offscreen static bitmap surface and a global Graphics object to draw onto it.
The problem is, every time I want to update the HDC of my window i need to create a new Graphic object and destroy it at the end of the event, like this:
... case WM_PAINT: hdc = BeginPaint(hWnd,&ps); graphics = Graphics(hdc); graphics.DrawImage(backbuffer,0,0,width,height); EndPaint(hWnd,&ps); break; ... //graphics gets destroyed at the end of WndProc
Since this operation is repeated almost 40 times per second, i was wondering wether creating and destroying every time that object would somehow slow down my program.
Maybe this solution would be better:
- using a new compatible HDC as the backbuffer instead of the BMP
- inside WM_PAINT, copy that with BitBlt instead of creating a Graphics object
What do you think?