Давным-давно, в далёкой-далёкой галактике Художники подумали и решили, что слишком много времени они тратят на сборку текстурных атласов. А раз есть у них Программист, то пускай он мучается с этой проблемой. Почесал Программист репу и начал думать. Первой мыслью было использовать программы для автоматической генерации атласов. Мысль вроде хорошая, но Художники народ ленивый, не станут они марать свои творческие руки о прах бытия. Так что Программист решил ввести функцию сборки атласов в движок, дабы С++ отдувался и за него, и за художников :) Что для этого потребовалось: 1. Всего-лишь библиотека FreeLib и немного размышлений. Для начала, нам нужно загрузить PNG текстуру в оперативную память
void C_Texture_Loader::Add(std::wstring Name, std::wstring Path, int Width, int Height){
FIBITMAP *dib = FreeImage_LoadU(FIF_PNG, (wchar_t*)Path.c_str(), PNG_DEFAULT);
DraftTextures[Name].dib = dib;
DraftTextures[Name].Width = FreeImage_GetWidth(dib);
DraftTextures[Name].Height = FreeImage_GetHeight(dib);
DraftTextures[Name].Pitch = FreeImage_GetPitch(dib);
}
Тут в принципе всё должно быть понятно. В переменную dib загоняем указатель на текстуру, а в ассоциативный массив (std::map) загоняем данные, необходимые для дальнейшего построения атласа.