[nostalgia/core] Add AssetManager
This commit is contained in:
@@ -32,22 +32,22 @@ ox::Error loadBgTileSheet(Context *ctx,
|
||||
const ox::FileAddress &tilesheetPath,
|
||||
const ox::FileAddress &palettePath) noexcept {
|
||||
oxRequire(tilesheet, readObj<NostalgiaGraphic>(ctx, tilesheetPath));
|
||||
oxRequire(palette, readObj<NostalgiaPalette>(ctx, palettePath ? palettePath : tilesheet.defaultPalette));
|
||||
const unsigned bytesPerTile = tilesheet.bpp == 8 ? 64 : 32;
|
||||
const auto tiles = tilesheet.pixels.size() / bytesPerTile;
|
||||
oxRequire(palette, readObj<NostalgiaPalette>(ctx, palettePath ? palettePath : tilesheet->defaultPalette));
|
||||
const unsigned bytesPerTile = tilesheet->bpp == 8 ? 64 : 32;
|
||||
const auto tiles = tilesheet->pixels.size() / bytesPerTile;
|
||||
constexpr int width = 8;
|
||||
const int height = 8 * static_cast<int>(tiles);
|
||||
ox::Vector<uint32_t> pixels;
|
||||
if (bytesPerTile == 64) { // 8 BPP
|
||||
pixels.resize(tilesheet.pixels.size());
|
||||
for (std::size_t i = 0; i < tilesheet.pixels.size(); ++i) {
|
||||
pixels[i] = toColor32(palette.colors[tilesheet.pixels[i]]);
|
||||
pixels.resize(tilesheet->pixels.size());
|
||||
for (std::size_t i = 0; i < tilesheet->pixels.size(); ++i) {
|
||||
pixels[i] = toColor32(palette->colors[tilesheet->pixels[i]]);
|
||||
}
|
||||
} else { // 4 BPP
|
||||
pixels.resize(tilesheet.pixels.size() * 2);
|
||||
for (std::size_t i = 0; i < tilesheet.pixels.size(); ++i) {
|
||||
pixels[i * 2 + 0] = toColor32(palette.colors[tilesheet.pixels[i] & 0xF]);
|
||||
pixels[i * 2 + 1] = toColor32(palette.colors[tilesheet.pixels[i] >> 4]);
|
||||
pixels.resize(tilesheet->pixels.size() * 2);
|
||||
for (std::size_t i = 0; i < tilesheet->pixels.size(); ++i) {
|
||||
pixels[i * 2 + 0] = toColor32(palette->colors[tilesheet->pixels[i] & 0xF]);
|
||||
pixels[i * 2 + 1] = toColor32(palette->colors[tilesheet->pixels[i] >> 4]);
|
||||
}
|
||||
}
|
||||
return renderer::loadBgTexture(ctx, section, pixels.data(), width, height);
|
||||
|
||||
Reference in New Issue
Block a user