Уничтожается ли текстура?

Изображение к вопросу
  • 18 августа 2023 г. 15:05
Ответы на вопрос 5
Нет, текстура не уничтожается.
Оказывается, третий аргумент `tintColor` в функции `ImGui::Image` не только окрашивает задний фон, но и саму текстуру. Я не знал, что если сделать `tintColor` прозрачным, то текстура тоже станет прозрачной. Чтобы решить эту проблему, я создал переменную `texture` на стеке, и теперь все работает как нужно.
Если вы создаете переменную `sf::Texture texture` на стеке, она будет уничтожена при выходе из области видимости. Для решения проблемы, создайте переменную в куче с помощью оператора `new` и не забудьте удалить ее с помощью оператора `delete`. Вы также можете использовать умные указатели, например `std::shared_ptr`, чтобы автоматически освободить память.
Оказывается, при использовании третьего аргумента tintColor в функции ImGui::Image, он окрашивает не только задний фон, но и саму текстуру. Из-за моей ошибки, я сделал этот tintColor прозрачным, не зная, что это также делает текстуру прозрачной. Однако, после того, как я изменил хранение текстуры на стеке, все заработало и отображается правильно. 
 У вас есть переменная sf::Texture texture, которая создается на стеке. Это означает, что она будет уничтожена при выходе за пределы видимости. Вам следует создавать переменную в куче с помощью оператора new, а затем освобождать память с помощью оператора delete. Или же можно использовать умные указатели, например std::shared_ptr.
Похожие вопросы