Утечки памяти SDL2 на SDL_DestroyRenderer

Этот код объяснит сюжет:

// on init:

m_mainWindow = SDL_CreateWindow("title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 480, 640, SDL_WINDOW_SHOWN);
m_mainRenderer = SDL_CreateRenderer(m_mainWindow, -1, 0); // + 8 Mb of memory

// on screen resize when my ios sends SDL_WINDOWRESIZED:
SDL_DestroyRenderer(m_mainRenderer); // - 1!!! Mb of memory

m_mainRenderer = SDL_CreateRenderer(m_mainWindow, -1, 0); // + 6 Mb of memory

Я не могу полностью уничтожить рендерер и очистить память о нем. Почему? а что я тут не так сделал?


person FertoVordalastr    schedule 29.12.2013    source источник
comment
Попробуйте вызвать его в цикле, увеличивается ли использование памяти?   -  person this    schedule 29.12.2013
comment
Название вопроса вводит в заблуждение, я не думаю, что это можно назвать утечкой памяти. Скорее всего, какие-то махинации с выделением системной (или SDL) памяти.   -  person pampeho    schedule 29.12.2013
comment
как вы измеряете изменения памяти ??   -  person UmNyobe    schedule 29.12.2013
comment
Вы используете C или C++? Судя по образцу кода, это C. Несмотря на это, не отмечайте вопрос как C, так и C++, для каждого языка есть очень разные ответы   -  person Mgetz    schedule 29.12.2013
comment
Я проделывал это несколько раз в сеансе, и он вырос с 38 Мб до 600+ только с этой операцией. Использовал диспетчер задач для просмотра активности памяти и записи с помощью С++. Извините за теги. Я новичок в stackoverflow, и он каким-то образом автоматически пометил мой вопрос.   -  person FertoVordalastr    schedule 29.12.2013
comment
@FertoVordalastr Опубликуйте sscce.   -  person this    schedule 29.12.2013
comment
Это на Windows или Linux, 32 или 64 бит?   -  person cup    schedule 30.12.2013


Ответы (1)


Вам не нужно создавать рендерер при каждом изменении размера, размер вашего рендерера будет обновляться автоматически... По сути, вы можете делать все в своем программном обеспечении ТОЛЬКО ОДНИМ рендерером. Кстати, SDL_Renderer не содержит атрибутов измерения, окна содержат его, и SDL_Renderer связан с этим окном.

person jordsti    schedule 06.01.2014