Refactor bitmap palette management across various components to streamline palette setting and improve error handling; remove unnecessary status checks and enhance consistency in palette application methods.

This commit is contained in:
scawful
2025-04-17 21:49:47 -04:00
parent eeab477e72
commit 44e13cf4bb
17 changed files with 253 additions and 316 deletions

View File

@@ -253,15 +253,14 @@ absl::Status ScreenEditor::LoadDungeonMapTile16(
tile16_sheet_.ComposeTile16(gfx_data, t1, t2, t3, t4, sheet_offset);
}
RETURN_IF_ERROR(tile16_sheet_.mutable_bitmap()->SetPalette(
*rom()->mutable_dungeon_palette(3)));
tile16_sheet_.mutable_bitmap()->SetPalette(
*rom()->mutable_dungeon_palette(3));
Renderer::GetInstance().RenderBitmap(&*tile16_sheet_.mutable_bitmap().get());
for (int i = 0; i < tile16_sheet_.num_tiles(); ++i) {
auto tile = tile16_sheet_.GetTile16(i);
tile16_individual_[i] = tile;
RETURN_IF_ERROR(
tile16_individual_[i].SetPalette(*rom()->mutable_dungeon_palette(3)));
tile16_individual_[i].SetPalette(*rom()->mutable_dungeon_palette(3));
Renderer::GetInstance().RenderBitmap(&tile16_individual_[i]);
}
@@ -447,8 +446,8 @@ void ScreenEditor::DrawDungeonMapsRoomGfx() {
current_tile16_info.tiles[3], selected_tile16_, 212);
tile16_individual_[selected_tile16_] =
tile16_sheet_.GetTile16(selected_tile16_);
RETURN_VOID_IF_ERROR(tile16_individual_[selected_tile16_].SetPalette(
*rom()->mutable_dungeon_palette(3)));
tile16_individual_[selected_tile16_].SetPalette(
*rom()->mutable_dungeon_palette(3));
Renderer::GetInstance().RenderBitmap(
&tile16_individual_[selected_tile16_]);
}
@@ -478,8 +477,8 @@ void ScreenEditor::DrawDungeonMapsEditor() {
int y = (j / 8) * 8;
sheets_[i].Get8x8Tile(tile_index, 0, 0, tile_data, tile_data_offset);
tile8_individual_.emplace_back(gfx::Bitmap(8, 8, 4, tile_data));
RETURN_VOID_IF_ERROR(tile8_individual_.back().SetPalette(
*rom()->mutable_dungeon_palette(3)));
tile8_individual_.back().SetPalette(
*rom()->mutable_dungeon_palette(3));
Renderer::GetInstance().RenderBitmap(&tile8_individual_.back());
}
tile_data_offset = 0;
@@ -579,10 +578,8 @@ void ScreenEditor::LoadBinaryGfx() {
gfx_sheets.emplace_back(converted_bin.begin() + (i * 0x1000),
converted_bin.begin() + ((i + 1) * 0x1000));
sheets_.emplace(i, gfx::Bitmap(128, 32, 8, gfx_sheets[i]));
status_ = sheets_[i].SetPalette(*rom()->mutable_dungeon_palette(3));
if (status_.ok()) {
Renderer::GetInstance().RenderBitmap(&sheets_[i]);
}
sheets_[i].SetPalette(*rom()->mutable_dungeon_palette(3));
Renderer::GetInstance().RenderBitmap(&sheets_[i]);
}
binary_gfx_loaded_ = true;
} else {