Updated GraphicsEditor and Tile16Editor to use std::array instead of std::vector for better performance.

This commit is contained in:
Justin Scofield
2025-01-05 20:54:19 -05:00
parent 02a86c41da
commit f625fc94b3
4 changed files with 8 additions and 8 deletions

View File

@@ -154,7 +154,7 @@ void GraphicsEditor::DrawGfxEditToolset() {
TableNextColumn(); TableNextColumn();
auto bitmap = GraphicsSheetManager::GetInstance().gfx_sheets()[current_sheet_]; auto bitmap = GraphicsSheetManager::GetInstance().gfx_sheets()[current_sheet_];
auto palette = bitmap.palette(); auto palette = bitmap.palette();
for (int i = 0; i < 8; i++) { for (int i = 0; i < palette.size(); i++) {
ImGui::SameLine(); ImGui::SameLine();
auto color = auto color =
ImVec4(palette[i].rgb().x / 255.0f, palette[i].rgb().y / 255.0f, ImVec4(palette[i].rgb().x / 255.0f, palette[i].rgb().y / 255.0f,

View File

@@ -159,7 +159,7 @@ class GraphicsEditor : public SharedRom, public Editor {
Rom temp_rom_; Rom temp_rom_;
Rom tilemap_rom_; Rom tilemap_rom_;
zelda3::Overworld overworld_; zelda3::Overworld overworld_{ temp_rom_ };
MemoryEditor cgx_memory_editor_; MemoryEditor cgx_memory_editor_;
MemoryEditor col_memory_editor_; MemoryEditor col_memory_editor_;
PaletteEditor palette_editor_; PaletteEditor palette_editor_;

View File

@@ -43,11 +43,9 @@ using ImGui::Text;
absl::Status Tile16Editor::InitBlockset( absl::Status Tile16Editor::InitBlockset(
const gfx::Bitmap &tile16_blockset_bmp, const gfx::Bitmap &current_gfx_bmp, const gfx::Bitmap &tile16_blockset_bmp, const gfx::Bitmap &current_gfx_bmp,
const std::vector<gfx::Bitmap> &tile16_individual,
std::array<uint8_t, 0x200> &all_tiles_types) { std::array<uint8_t, 0x200> &all_tiles_types) {
all_tiles_types_ = all_tiles_types; all_tiles_types_ = all_tiles_types;
tile16_blockset_bmp_ = tile16_blockset_bmp; tile16_blockset_bmp_ = tile16_blockset_bmp;
tile16_individual_ = tile16_individual;
current_gfx_bmp_.Create(current_gfx_bmp.width(), current_gfx_bmp.height(), current_gfx_bmp_.Create(current_gfx_bmp.width(), current_gfx_bmp.height(),
current_gfx_bmp.depth(), current_gfx_bmp.vector()); current_gfx_bmp.depth(), current_gfx_bmp.vector());
core::Renderer::GetInstance().RenderBitmap(&tile16_blockset_bmp_); core::Renderer::GetInstance().RenderBitmap(&tile16_blockset_bmp_);

View File

@@ -1,6 +1,9 @@
#ifndef YAZE_APP_EDITOR_TILE16EDITOR_H #ifndef YAZE_APP_EDITOR_TILE16EDITOR_H
#define YAZE_APP_EDITOR_TILE16EDITOR_H #define YAZE_APP_EDITOR_TILE16EDITOR_H
#include <array>
#include <vector>
#include "absl/status/status.h" #include "absl/status/status.h"
#include "app/core/common.h" #include "app/core/common.h"
#include "app/editor/graphics/palette_editor.h" #include "app/editor/graphics/palette_editor.h"
@@ -20,9 +23,9 @@ namespace editor {
*/ */
class Tile16Editor : public gfx::GfxContext, public SharedRom { class Tile16Editor : public gfx::GfxContext, public SharedRom {
public: public:
Tile16Editor(std::array<gfx::Bitmap, zelda3::kNumTile16Individual>& tile16_individual) : tile16_individual_(tile16_individual) {}
absl::Status InitBlockset(const gfx::Bitmap &tile16_blockset_bmp, absl::Status InitBlockset(const gfx::Bitmap &tile16_blockset_bmp,
const gfx::Bitmap &current_gfx_bmp, const gfx::Bitmap &current_gfx_bmp,
const std::vector<gfx::Bitmap> &tile16_individual,
std::array<uint8_t, 0x200> &all_tiles_types); std::array<uint8_t, 0x200> &all_tiles_types);
absl::Status Update(); absl::Status Update();
@@ -82,17 +85,16 @@ class Tile16Editor : public gfx::GfxContext, public SharedRom {
gui::Canvas transfer_canvas_; gui::Canvas transfer_canvas_;
gfx::Bitmap transfer_blockset_bmp_; gfx::Bitmap transfer_blockset_bmp_;
std::vector<gfx::Bitmap> tile16_individual_; std::array<gfx::Bitmap, zelda3::kNumTile16Individual>& tile16_individual_;
std::vector<gfx::Bitmap> current_gfx_individual_; std::vector<gfx::Bitmap> current_gfx_individual_;
PaletteEditor palette_editor_; PaletteEditor palette_editor_;
gfx::SnesPalette palette_; gfx::SnesPalette palette_;
zelda3::Overworld transfer_overworld_;
absl::Status status_; absl::Status status_;
Rom transfer_rom_; Rom transfer_rom_;
zelda3::Overworld transfer_overworld_{ transfer_rom_ };
std::array<gfx::Bitmap, kNumGfxSheets> transfer_gfx_; std::array<gfx::Bitmap, kNumGfxSheets> transfer_gfx_;
absl::Status transfer_status_; absl::Status transfer_status_;
}; };