skelterjohn / go.wde

Windows, drawing and events for Go
217 stars 46 forks source link

Fix GDI handle leak. #12

Closed ajhager closed 12 years ago

ajhager commented 12 years ago

w32.BeginPaint() .. w32.EndPaint() was causing wde to leak a gdi handle each WM_PAINT event, which would cause w32.BeginPaint to fail (and so rendering to fail) after the gdi handle pool was exhausted (10k on windows 7 64bit.) I'll file an issue with w32 and see if they can figure it out.

Also, making the repaint immediate, instead of invalidating the entire screen and waiting for windows to trigger a WM_PAINT event (which is very low priority), increases fps by x2-x3 and makes the repaint less sporadic.

henkman commented 12 years ago

Looks pretty good. But please remove the lines you commented in FlushImage and the WM_PAINT case. In case we would need them again we could get them back via git :) By the way I am the guy who did the windows backend and I am relieved to see that the weird freezing issue is now fixed. Thanks!

ajhager commented 12 years ago

Ok, I've removed the comments. Thanks for doing the windows backend!

skelterjohn commented 12 years ago

Make sure to add yourself to the AUTHORS file - and if papplampe says it works I'll merge it in.

papplampe - testing on windows is a bit burdensome for me, I hope you don't mind that I'll just take your word for it :)

skelterjohn commented 12 years ago

Oh, and thanks for the good work!