Я пытаюсь создать простую игру, но не могу найти утечку памяти. Каждую секунду или около того программа, кажется, использует на 3 МБ больше памяти.
Проблема с этим методом рисования. Если я не вызываю этот метод, все работает нормально. Я пытаюсь нарисовать спрайт на нескольких частях экрана:
void Map::draw(HDC hBackBufferDC)
{
for(int i = 0; i < 24; i++)
{
for(int j = 0; j < 27; j++)
{
if(mapState[i][j] == 'm')
{
blueWall->draw(hBackBufferDC, new Position(j, i));
}
}
}
}
Если я удалю вызов метода draw, проблем не будет, поэтому проблема в этом методе:
void StaticSprite::draw(HDC hBackBufferDC, Position* pos)
{
int x = (int)pos->x * 22;
int y = (int)pos->y * 22;
HGDIOBJ oldObj = SelectObject(this->hSpriteDC, this->hMask);
BitBlt(hBackBufferDC, x, y, 22, 22, this->hSpriteDC, 0, 0, SRCAND);
SelectObject(this->hSpriteDC, this->hImage);
BitBlt(hBackBufferDC, x, y, 22, 22, this->hSpriteDC, 0, 0, SRCPAINT);
SelectObject(this->hSpriteDC, oldObj);
}
Есть идеи, что вызывает утечку памяти? Я думаю, что это связано с этой частью, но я могу опубликовать другие части кода, если это необходимо.
Спасибо