Refactor Renderer access and enhance graphics loading functionality

- Replaced instances of Renderer::GetInstance() with Renderer::Get() for consistency across the codebase.
- Updated various rendering methods to streamline bitmap updates and enhance performance.
- Removed unused includes and comments to improve code clarity and maintainability.
This commit is contained in:
scawful
2025-05-08 19:37:48 -04:00
parent fb015523dc
commit 11504ca4c1
18 changed files with 147 additions and 177 deletions

View File

@@ -609,7 +609,7 @@ absl::Status OverworldEditor::CheckForCurrentMap() {
ImGui::IsMouseClicked(ImGuiMouseButton_Right)) {
RefreshOverworldMap();
RETURN_IF_ERROR(RefreshTile16Blockset());
Renderer::GetInstance().UpdateBitmap(&maps_bmp_[current_map_]);
Renderer::Get().UpdateBitmap(&maps_bmp_[current_map_]);
maps_bmp_[current_map_].set_modified(false);
}
@@ -743,7 +743,7 @@ absl::Status OverworldEditor::DrawAreaGraphics() {
overworld_.set_current_map(current_map_);
palette_ = overworld_.current_area_palette();
gfx::Bitmap bmp;
Renderer::GetInstance().CreateAndRenderBitmap(0x80, kOverworldMapSize, 0x08,
Renderer::Get().CreateAndRenderBitmap(0x80, kOverworldMapSize, 0x08,
overworld_.current_graphics(),
bmp, palette_);
current_graphics_set_[current_map_] = bmp;
@@ -1038,13 +1038,13 @@ absl::Status OverworldEditor::LoadGraphics() {
util::logf("Loading overworld graphics.");
// Create the area graphics image
Renderer::GetInstance().CreateAndRenderBitmap(0x80, kOverworldMapSize, 0x40,
Renderer::Get().CreateAndRenderBitmap(0x80, kOverworldMapSize, 0x40,
overworld_.current_graphics(),
current_gfx_bmp_, palette_);
util::logf("Loading overworld tileset.");
// Create the tile16 blockset image
Renderer::GetInstance().CreateAndRenderBitmap(
Renderer::Get().CreateAndRenderBitmap(
0x80, 0x2000, 0x08, overworld_.tile16_blockset_data(),
tile16_blockset_bmp_, palette_);
map_blockset_loaded_ = true;
@@ -1063,7 +1063,7 @@ absl::Status OverworldEditor::LoadGraphics() {
overworld_.set_current_map(i);
auto palette = overworld_.current_area_palette();
try {
Renderer::GetInstance().CreateAndRenderBitmap(
Renderer::Get().CreateAndRenderBitmap(
kOverworldMapSize, kOverworldMapSize, 0x80,
overworld_.current_map_bitmap_data(), maps_bmp_[i], palette);
} catch (const std::bad_alloc &e) {
@@ -1095,7 +1095,7 @@ absl::Status OverworldEditor::LoadSpriteGraphics() {
sprite_previews_[sprite.id()].Create(width, height, depth,
*sprite.preview_graphics());
sprite_previews_[sprite.id()].SetPalette(palette_);
Renderer::GetInstance().RenderBitmap(&(sprite_previews_[sprite.id()]));
Renderer::Get().RenderBitmap(&(sprite_previews_[sprite.id()]));
}
return absl::OkStatus();
}
@@ -1147,7 +1147,7 @@ void OverworldEditor::RefreshOverworldMap() {
int n = is_large ? 4 : 1;
// We do texture updating on the main thread
for (int i = 0; i < n; ++i) {
Renderer::GetInstance().UpdateBitmap(&maps_bmp_[indices[i]]);
Renderer::Get().UpdateBitmap(&maps_bmp_[indices[i]]);
}
}

View File

@@ -28,20 +28,13 @@ absl::Status Tile16Editor::Initialize(
current_gfx_bmp_.Create(current_gfx_bmp.width(), current_gfx_bmp.height(),
current_gfx_bmp.depth(), current_gfx_bmp.vector());
current_gfx_bmp_.SetPalette(current_gfx_bmp.palette());
core::Renderer::GetInstance().RenderBitmap(&current_gfx_bmp_);
core::Renderer::Get().RenderBitmap(&current_gfx_bmp_);
tile16_blockset_bmp_.Create(
tile16_blockset_bmp.width(), tile16_blockset_bmp.height(),
tile16_blockset_bmp.depth(), tile16_blockset_bmp.vector());
tile16_blockset_bmp_.SetPalette(tile16_blockset_bmp.palette());
core::Renderer::GetInstance().RenderBitmap(&tile16_blockset_bmp_);
RETURN_IF_ERROR(LoadTile8());
// current_gfx_individual_ = gfx::ExtractTile8Bitmaps(
// current_gfx_bmp_, rom()->palette_group().overworld_main[0],
// current_palette_);
// for (auto &bmp : current_gfx_individual_) {
// core::Renderer::GetInstance().RenderBitmap(&bmp);
// }
// map_blockset_loaded_ = true;
core::Renderer::Get().RenderBitmap(&tile16_blockset_bmp_);
// RETURN_IF_ERROR(LoadTile8());
ImVector<std::string> tile16_names;
for (int i = 0; i < 0x200; ++i) {
std::string str = util::HexByte(all_tiles_types_[i]);
@@ -191,7 +184,7 @@ absl::Status Tile16Editor::UpdateBlockset() {
current_tile16_bmp_ = tile16_blockset_->tile_bitmaps[notify_tile16];
auto ow_main_pal_group = rom()->palette_group().overworld_main;
current_tile16_bmp_.SetPalette(ow_main_pal_group[current_palette_]);
Renderer::GetInstance().UpdateBitmap(&current_tile16_bmp_);
Renderer::Get().UpdateBitmap(&current_tile16_bmp_);
}
}
@@ -277,7 +270,7 @@ absl::Status Tile16Editor::UpdateTile16Edit() {
if (tile8_source_canvas_.DrawTileSelector(32)) {
current_gfx_individual_[current_tile8_].SetPaletteWithTransparent(
ow_main_pal_group[0], current_palette_);
Renderer::GetInstance().UpdateBitmap(
Renderer::Get().UpdateBitmap(
&current_gfx_individual_[current_tile8_]);
}
tile8_source_canvas_.DrawBitmap(current_gfx_bmp_, 0, 0, 4.0f);
@@ -297,7 +290,7 @@ absl::Status Tile16Editor::UpdateTile16Edit() {
current_gfx_individual_[current_tile8_], 16, 2.0f)) {
RETURN_IF_ERROR(DrawToCurrentTile16(
tile16_edit_canvas_.drawn_tile_position()));
Renderer::GetInstance().UpdateBitmap(&current_tile16_bmp_);
Renderer::Get().UpdateBitmap(&current_tile16_bmp_);
}
}
tile16_edit_canvas_.DrawGrid();
@@ -346,10 +339,10 @@ absl::Status Tile16Editor::UpdateTile16Edit() {
if (value > 0x00) {
current_gfx_bmp_.SetPaletteWithTransparent(palette, value);
Renderer::GetInstance().UpdateBitmap(&current_gfx_bmp_);
Renderer::Get().UpdateBitmap(&current_gfx_bmp_);
current_tile16_bmp_.SetPaletteWithTransparent(palette, value);
Renderer::GetInstance().UpdateBitmap(&current_tile16_bmp_);
Renderer::Get().UpdateBitmap(&current_tile16_bmp_);
}
}
@@ -426,8 +419,7 @@ absl::Status Tile16Editor::UpdateTile16Edit() {
current_tile8_ = x + (y * 8);
current_gfx_individual_[current_tile8_].SetPaletteWithTransparent(
ow_main_pal_group[0], current_palette_);
Renderer::GetInstance().UpdateBitmap(
&current_gfx_individual_[current_tile8_]);
Renderer::Get().UpdateBitmap(&current_gfx_individual_[current_tile8_]);
}
return absl::OkStatus();
@@ -478,7 +470,7 @@ absl::Status Tile16Editor::LoadTile8() {
tile_bitmap.Create(0x08, 0x08, 0x08, tile_data);
tile_bitmap.SetPaletteWithTransparent(ow_main_pal_group[0],
current_palette_);
Renderer::GetInstance().RenderBitmap(&tile_bitmap);
Renderer::Get().RenderBitmap(&tile_bitmap);
}
map_blockset_loaded_ = true;
@@ -492,7 +484,7 @@ absl::Status Tile16Editor::SetCurrentTile(int id) {
current_tile16_bmp_ = tile16_blockset_->tile_bitmaps[current_tile16_];
auto ow_main_pal_group = rom()->palette_group().overworld_main;
current_tile16_bmp_.SetPalette(ow_main_pal_group[current_palette_]);
Renderer::GetInstance().UpdateBitmap(&current_tile16_bmp_);
Renderer::Get().UpdateBitmap(&current_tile16_bmp_);
return absl::OkStatus();
}
@@ -543,7 +535,7 @@ absl::Status Tile16Editor::UpdateTransferTileCanvas() {
palette_ = transfer_overworld_.current_area_palette();
// Create the tile16 blockset image
Renderer::GetInstance().CreateAndRenderBitmap(
Renderer::Get().CreateAndRenderBitmap(
0x80, 0x2000, 0x80, transfer_overworld_.tile16_blockset_data(),
transfer_blockset_bmp_, palette_);
transfer_blockset_loaded_ = true;
@@ -565,10 +557,10 @@ absl::Status Tile16Editor::CopyTile16ToClipboard(int tile_id) {
// Create a copy of the tile16 bitmap
gfx::RenderTile(*tile16_blockset_, tile_id);
clipboard_tile16_.Create(16, 16, 8,
tile16_blockset_->tile_bitmaps[tile_id].vector());
tile16_blockset_->tile_bitmaps[tile_id].vector());
clipboard_tile16_.SetPalette(
tile16_blockset_->tile_bitmaps[tile_id].palette());
core::Renderer::GetInstance().RenderBitmap(&clipboard_tile16_);
core::Renderer::Get().RenderBitmap(&clipboard_tile16_);
clipboard_has_data_ = true;
return absl::OkStatus();
@@ -582,7 +574,7 @@ absl::Status Tile16Editor::PasteTile16FromClipboard() {
// Copy the clipboard data to the current tile16
current_tile16_bmp_.Create(16, 16, 8, clipboard_tile16_.vector());
current_tile16_bmp_.SetPalette(clipboard_tile16_.palette());
core::Renderer::GetInstance().RenderBitmap(&current_tile16_bmp_);
core::Renderer::Get().RenderBitmap(&current_tile16_bmp_);
return absl::OkStatus();
}
@@ -595,7 +587,7 @@ absl::Status Tile16Editor::SaveTile16ToScratchSpace(int slot) {
// Create a copy of the current tile16 bitmap
scratch_space_[slot].Create(16, 16, 8, current_tile16_bmp_.vector());
scratch_space_[slot].SetPalette(current_tile16_bmp_.palette());
core::Renderer::GetInstance().RenderBitmap(&scratch_space_[slot]);
core::Renderer::Get().RenderBitmap(&scratch_space_[slot]);
scratch_space_used_[slot] = true;
return absl::OkStatus();
@@ -613,7 +605,7 @@ absl::Status Tile16Editor::LoadTile16FromScratchSpace(int slot) {
// Copy the scratch space data to the current tile16
current_tile16_bmp_.Create(16, 16, 8, scratch_space_[slot].vector());
current_tile16_bmp_.SetPalette(scratch_space_[slot].palette());
core::Renderer::GetInstance().RenderBitmap(&current_tile16_bmp_);
core::Renderer::Get().RenderBitmap(&current_tile16_bmp_);
return absl::OkStatus();
}