![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Утечка памяти [D7, Win95/98, WinXP]
Proger © (2004-10-27 19:22:00)Вот игру делаю, c API только начинаю работать.Каждую
секунду потребление оперативки игрой растёт на 64 - 128 Кб(зависит от кол-ва созданных движком Bitmap'ов).
Если отключить блиттинг главного буфера в окно, тогда нормально
всё(???)
Вот кусок кода обновления кадра:
begin
...
PatBlt(GetDc(hWnd), 0, 0, W, H, BLACKNESS)
...
BitBlt(GetDc(hWnd), ... , Buf.canvas.handle, ... , SRCCOPY);
BitBlt(GetDc(hWnd), ... , ExBuf.canvas.handle, ..., SRCCOPY);
end;
Формат пиксела Buf = pfDevice, ExBuf = pf24bit;
Выручайте мастера!!Заранее всем спасибо.
марсианин (2004-10-28 18:15:00) [1]извини, в последнее время много на с++ приходится
первая строчка
var dc:HDC;
...
dc := GetDC(hWnd);
марсианин (2004-10-28 18:13:00) [2]
HDC dc = GetDC(hWnd);
PatBlt(dc, 0, 0, W, H, BLACKNESS)
...
BitBlt(dc, ... , Buf.canvas.handle, ... , SRCCOPY);
BitBlt(dc, ... , ExBuf.canvas.handle, ..., SRCCOPY);
...
ReleaseDC(hWnd, dc);
Proger (2004-10-28 17:14:00) [3]2 clickmaker ©.По подробней если можно...
2 tesseract.А есть другой способ?
tesseract (2004-10-28 09:38:00) [4]Да и зачем каждый раз GetDC? выделение памяти - задача тормозная.. очень тормозная...
clickmaker (2004-10-27 20:34:00) [5]
> PatBlt(GetDc(hWnd), 0, 0, W, H, BLACKNESS)
а ReleaseDC кто делать будет?