Sign in to follow this  

double buffering GDI+

This topic is 1802 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi there.

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?

Edited by ArgusMaker

Share this post


Link to post
Share on other sites
Sign in to follow this