ive been making c++ drawing program , have part im drawing using gdi+ inside function need declare graphics object every time call function.. wrong , causes leak somewhere after calls gets slower , stops drawing ,as expected.
im trying clear objects every time finishes drawing doesnt seem solve issue. thought maybe pen objects part of issue insight helpful code:
void function() { dword pdwgdustartup; gdiplusstartupinput gdistartupinp; gdiplusstartup(&pdwgdustartup, &gdistartupinp, null); pen pnpen_blue(gdiplus::color(255, 0, 0, 255), 2.0f); pen pnpen_green(gdiplus::color(255, 255, 0, 255), 2.0f); lpcstr lgamewindow = "mywindow"; hwnd hgamewindow = findwindow(null, lgamewindow); graphics graphics(getdc(hgamewindow)); (int n=10; n>0; n--) graphics.drawline(&pnpen_green,0, 0, 0, n); gdiplusshutdown(pdwgdustartup); graphics.flush(); } thanks alot!
edit: added release dc did not anything!
dword pdwgdustartup; gdiplusstartupinput gdistartupinp; gdiplusstartup(&pdwgdustartup, &gdistartupinp, null); pen pnpen_blue(gdiplus::color(255, 0, 0, 255), 2.0f); pen pnpen_green(gdiplus::color(255, 255, 0, 255), 2.0f); lpcstr lgamewindow = "mywindow"; hwnd hgamewindow = findwindow(null, lgamewindow); hdc gdc = getdc(hgamewindow); graphics graphics(gdc); releasedc(hgamewindow, gdc); gdiplusshutdown(pdwgdustartup); graphics.flush(); my gdi objects still rises 10,000!
gdiplusshutdown must called after gdi+ objects removed. in code pen , graphics destructors called after gdiplusshutdown, when objects go out of scope.
Comments
Post a Comment