mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
78cde74d5a
* update readme deps * replace assert * bump timeout * fix memory corruption in kernel * use unknown if level name is invalid
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#include "TextureDB.h"
|
|
|
|
#include "third-party/fmt/core.h"
|
|
#include "common/util/Assert.h"
|
|
|
|
namespace decompiler {
|
|
|
|
void TextureDB::add_texture(u32 tpage,
|
|
u32 texid,
|
|
const std::vector<u32>& data,
|
|
u16 w,
|
|
u16 h,
|
|
const std::string& tex_name,
|
|
const std::string& tpage_name) {
|
|
auto existing_tpage_name = tpage_names.find(tpage);
|
|
if (existing_tpage_name == tpage_names.end()) {
|
|
tpage_names[tpage] = tpage_name;
|
|
} else {
|
|
ASSERT(existing_tpage_name->second == tpage_name);
|
|
}
|
|
|
|
u32 combo_id = (tpage << 16) | texid;
|
|
auto existing_tex = textures.find(combo_id);
|
|
if (existing_tex != textures.end()) {
|
|
ASSERT(existing_tex->second.name == tex_name);
|
|
ASSERT(existing_tex->second.w == w);
|
|
ASSERT(existing_tex->second.h == h);
|
|
ASSERT(existing_tex->second.rgba_bytes == data);
|
|
ASSERT(existing_tex->second.page == tpage);
|
|
} else {
|
|
auto& new_tex = textures[combo_id];
|
|
new_tex.rgba_bytes = data;
|
|
new_tex.name = tex_name;
|
|
new_tex.w = w;
|
|
new_tex.h = h;
|
|
new_tex.page = tpage;
|
|
}
|
|
}
|
|
|
|
} // namespace decompiler
|