Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
прогаю
 Аватар для rkc137
2 / 2 / 0
Регистрация: 22.04.2019
Сообщений: 36

Копирование sf::Texture

25.07.2024, 01:34. Показов 2893. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть вот такой метод загрузки, где я пытаюсь заменить поломанные или недоступные текстуры плейсхолдеорм, но что то идёт не так и в итоге у текстуры просто белые квадраты. Но что самое странное если непосредственно руками заменить текстуру(как в последней строке) то всё нормально работает.

Чё же я проглядел?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//res.hpp
struct Texture : public sf::Texture
{
    std::vector<int> animations_lengths;
    int frame_size;
};
Texture default_texture, grass, cow;
 
//res.cpp
void res::load()
{
    for(auto &[path, texture] : textures)
    {
        if(!texture.loadFromFile(res_path + path) || path == "grass/grass.png")
        {
            // ничего ниже не работает 
            // texture.loadFromImage(default_texture.copyToImage()); 
            // texture.create(default_texture.getSize().x, default_texture.getSize().y);
            // texture.update(default_texture);
            // texture = default_texture; 
            debug() << "load err!!!";
        }
        else
            texture.setSmooth(false);
    }
    grass = default_texture;//тут всё нормально
}
возможно проблема в том что textures это std::map<std::string, Texture&> но в чём именно я не понимаю

Добавлено через 29 минут
Окей я понял в чём была проблема.
дело в том что как я уже сказал textures это std::map с ссылками на текстуры, где default_texture стоит первым что бы все последующие смогли быть им заменены в случае чего(ситуацию с тем что сам default_texture не сможет загрузиться я не рассматриваю). И как уже можно было догадаться std::map плевать хотел чё я там куда первым пихаю потому что он является деревом где ключи сортируются или типо того, в следствие чего default_texture уже не первый.
Наверное какой нибудь std::unordered_map решит мою проблему но это уже другая история.

Но как я понимаю просто с самого начала загрузить отдельно default_texture было бы самым верным решением.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2024, 01:34
Ответы с готовыми решениями:

Sf::Texture::GetMaximumSize()
Как правильно воспользоваться этой командой ? Где и как её написать чтоб у меня загрузилась текстура ( ошибка failed to create texture,...

Рандом и тип Texture*
Здравствуйте. Сразу хочу отметить, что в Visual C++ я не знаю вообще ничего, поэтому пишу сюда. У меня есть исходники open-source...

Копирование одного текстового файла в другой, используя посимвольное, построчное и поблочное копирование
Здраствуйте, у меня такая проблемма мне надо обеспечить копирование одного текстового файла в другой, используя посимвольное, построчное...

2
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
27.07.2024, 11:27
Цитата Сообщение от rkc137 Посмотреть сообщение
Наверное какой нибудь std::unordered_map решит мою проблему но это уже другая история.
Он тоже там не будет первым.
Вам нужен линейный контейнер.

Хотя смысла пока во всём вашем водовороте не замечено.
0
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,084
Записей в блоге: 3
31.07.2024, 09:57
Лучший ответ Сообщение было отмечено rkc137 как решение

Решение

Цитата Сообщение от rkc137 Посмотреть сообщение
std::map<std::string, Texture&>
переделайте на:
C++
1
std::map<std::string, Texture*>
и будет вам счастье.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2024, 09:57
Помогаю со студенческими работами здесь

Заменить texture buffer на texture
Здравствуйте. Никак не удается простенький вывод матрицы наладить. Похоже проблема с barrier и тому подобным. Использовал texture buffer...

Assimp texture
Здравствуйте уважаемые форумчане for (unsigned int i = 0; i &lt; scene-&gt;mNumMeshes; ++i) { aiMesh *mesh = scene-&gt;mMeshes; ...

Из Texture в Image
Можно ли как-нибудь из Image сделать Texture?

Не обновляется RawImage.texture
Привет! Недавно приступил к освоению Unity. Встала задача отображения прицела. Создал Canvas, на него повесил RawImage. К RawImage...

Upscale Render Texture
Есть у юнитеков превью пакет PixelPerfectCamera, знаете наверное. Накладывается на стандартную камеру и делает то же, что и любой другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru