Refactor graphics handling to utilize Arena for graphics sheets management

Update various editors to replace instances of GraphicsSheetManager with gfx::Arena for accessing graphics sheets. This change enhances memory management and performance by centralizing graphics data handling within the Arena class. Clean up related code for improved clarity and maintainability.
This commit is contained in:
scawful
2025-05-02 12:06:46 -04:00
parent 4f8d765c48
commit d6551f84d2
7 changed files with 35 additions and 58 deletions

View File

@@ -1,30 +1,10 @@
#ifndef YAZE_SNES_H_
#define YAZE_SNES_H_
#include <array>
#include <cstdint>
#include "app/gfx/bitmap.h"
namespace yaze {
class GraphicsSheetManager {
public:
static GraphicsSheetManager& GetInstance() {
static GraphicsSheetManager instance;
return instance;
}
GraphicsSheetManager() = default;
virtual ~GraphicsSheetManager() = default;
std::array<gfx::Bitmap, 223>& gfx_sheets() { return gfx_sheets_; }
auto gfx_sheet(int i) { return gfx_sheets_[i]; }
auto mutable_gfx_sheet(int i) { return &gfx_sheets_[i]; }
auto mutable_gfx_sheets() { return &gfx_sheets_; }
private:
std::array<gfx::Bitmap, 223> gfx_sheets_;
};
inline uint32_t SnesToPc(uint32_t addr) noexcept {
constexpr uint32_t kFastRomRegion = 0x808000;
if (addr >= kFastRomRegion) {