diff --git a/src/app/editor/graphics/graphics_editor.cc b/src/app/editor/graphics/graphics_editor.cc index 210fd81d..e46e6a9c 100644 --- a/src/app/editor/graphics/graphics_editor.cc +++ b/src/app/editor/graphics/graphics_editor.cc @@ -49,12 +49,13 @@ absl::Status GraphicsEditor::Load() { return absl::OkStatus(); } absl::Status GraphicsEditor::Update() { if (ImGui::BeginTabBar("##TabBar")) { status_ = UpdateGfxEdit(); - TAB_ITEM("Sheet Browser") - if (asset_browser_.Initialized == false) { - asset_browser_.Initialize(gfx::Arena::Get().gfx_sheets()); + if (ImGui::BeginTabItem("Sheet Browser")) { + if (asset_browser_.Initialized == false) { + asset_browser_.Initialize(gfx::Arena::Get().gfx_sheets()); + } + asset_browser_.Draw(gfx::Arena::Get().gfx_sheets()); + ImGui::EndTabItem(); } - asset_browser_.Draw(gfx::Arena::Get().gfx_sheets()); - END_TAB_ITEM() status_ = UpdateScadView(); status_ = UpdateLinkGfxView(); ImGui::EndTabBar(); @@ -72,17 +73,16 @@ absl::Status GraphicsEditor::UpdateGfxEdit() { ImGui::TableSetupColumn(name); ImGui::TableHeadersRow(); - - NEXT_COLUMN(); + ImGui::TableNextColumn(); status_ = UpdateGfxSheetList(); - NEXT_COLUMN(); + ImGui::TableNextColumn(); if (rom()->is_loaded()) { DrawGfxEditToolset(); status_ = UpdateGfxTabView(); } - NEXT_COLUMN(); + ImGui::TableNextColumn(); if (rom()->is_loaded()) { status_ = UpdatePaletteColumn(); } @@ -387,7 +387,7 @@ absl::Status GraphicsEditor::UpdateLinkGfxView() { ImGui::TableHeadersRow(); - NEXT_COLUMN(); + ImGui::TableNextColumn(); link_canvas_.DrawBackground(); link_canvas_.DrawGrid(16.0f); @@ -402,10 +402,10 @@ absl::Status GraphicsEditor::UpdateLinkGfxView() { link_canvas_.DrawOverlay(); link_canvas_.DrawGrid(); - NEXT_COLUMN(); + ImGui::TableNextColumn(); ImGui::Text("Placeholder"); - NEXT_COLUMN(); + ImGui::TableNextColumn(); if (ImGui::Button("Load Link Graphics (Experimental)")) { if (rom()->is_loaded()) { // Load Links graphics from the ROM diff --git a/src/app/editor/graphics/screen_editor.cc b/src/app/editor/graphics/screen_editor.cc index 32b3f7d3..684b6338 100644 --- a/src/app/editor/graphics/screen_editor.cc +++ b/src/app/editor/graphics/screen_editor.cc @@ -73,44 +73,44 @@ absl::Status ScreenEditor::Update() { } void ScreenEditor::DrawInventoryMenuEditor() { - TAB_ITEM("Inventory Menu") + if (ImGui::BeginTabItem("Inventory Menu")) { + static bool create = false; + if (!create && rom()->is_loaded()) { + status_ = inventory_.Create(); + palette_ = inventory_.palette(); + create = true; + } - static bool create = false; - if (!create && rom()->is_loaded()) { - status_ = inventory_.Create(); - palette_ = inventory_.palette(); - create = true; + DrawInventoryToolset(); + + if (ImGui::BeginTable("InventoryScreen", 3, ImGuiTableFlags_Resizable)) { + ImGui::TableSetupColumn("Canvas"); + ImGui::TableSetupColumn("Tiles"); + ImGui::TableSetupColumn("Palette"); + ImGui::TableHeadersRow(); + + ImGui::TableNextColumn(); + screen_canvas_.DrawBackground(); + screen_canvas_.DrawContextMenu(); + screen_canvas_.DrawBitmap(inventory_.bitmap(), 2, create); + screen_canvas_.DrawGrid(32.0f); + screen_canvas_.DrawOverlay(); + + ImGui::TableNextColumn(); + tilesheet_canvas_.DrawBackground(ImVec2(128 * 2 + 2, (192 * 2) + 4)); + tilesheet_canvas_.DrawContextMenu(); + tilesheet_canvas_.DrawBitmap(inventory_.tilesheet(), 2, create); + tilesheet_canvas_.DrawGrid(16.0f); + tilesheet_canvas_.DrawOverlay(); + + ImGui::TableNextColumn(); + gui::DisplayPalette(palette_, create); + + ImGui::EndTable(); + } + ImGui::Separator(); + ImGui::EndTabItem(); } - - DrawInventoryToolset(); - - if (ImGui::BeginTable("InventoryScreen", 3, ImGuiTableFlags_Resizable)) { - ImGui::TableSetupColumn("Canvas"); - ImGui::TableSetupColumn("Tiles"); - ImGui::TableSetupColumn("Palette"); - ImGui::TableHeadersRow(); - - ImGui::TableNextColumn(); - screen_canvas_.DrawBackground(); - screen_canvas_.DrawContextMenu(); - screen_canvas_.DrawBitmap(inventory_.bitmap(), 2, create); - screen_canvas_.DrawGrid(32.0f); - screen_canvas_.DrawOverlay(); - - ImGui::TableNextColumn(); - tilesheet_canvas_.DrawBackground(ImVec2(128 * 2 + 2, (192 * 2) + 4)); - tilesheet_canvas_.DrawContextMenu(); - tilesheet_canvas_.DrawBitmap(inventory_.tilesheet(), 2, create); - tilesheet_canvas_.DrawGrid(16.0f); - tilesheet_canvas_.DrawOverlay(); - - ImGui::TableNextColumn(); - status_ = gui::DisplayPalette(palette_, create); - - ImGui::EndTable(); - } - ImGui::Separator(); - END_TAB_ITEM() } void ScreenEditor::DrawInventoryToolset() { diff --git a/src/app/editor/overworld/overworld_editor.cc b/src/app/editor/overworld/overworld_editor.cc index 65afb7d4..9fc4420f 100644 --- a/src/app/editor/overworld/overworld_editor.cc +++ b/src/app/editor/overworld/overworld_editor.cc @@ -687,7 +687,7 @@ absl::Status OverworldEditor::DrawTile16Selector() { { blockset_canvas_.DrawContextMenu(); blockset_canvas_.DrawBitmap(tile16_blockset_.atlas, /*border_offset=*/2, - map_blockset_loaded_); + map_blockset_loaded_, /*scale=*/2); if (blockset_canvas_.DrawTileSelector(32.0f)) { // Open the tile16 editor to the tile diff --git a/src/app/gui/color.cc b/src/app/gui/color.cc index 4fc2d6d0..bf5c8afd 100644 --- a/src/app/gui/color.cc +++ b/src/app/gui/color.cc @@ -51,7 +51,7 @@ IMGUI_API bool SnesColorEdit4(absl::string_view label, gfx::SnesColor* color, return pressed; } -absl::Status DisplayPalette(gfx::SnesPalette& palette, bool loaded) { +IMGUI_API bool DisplayPalette(gfx::SnesPalette& palette, bool loaded) { static ImVec4 color = ImVec4(0, 0, 0, 255.f); ImGuiColorEditFlags misc_flags = ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_NoDragDrop | @@ -121,7 +121,7 @@ absl::Status DisplayPalette(gfx::SnesPalette& palette, bool loaded) { ImGui::ColorPicker4("##picker", (float*)&color, misc_flags | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_NoSmallPreview); - return absl::OkStatus(); + return true; } void SelectablePalettePipeline(uint64_t& palette_id, bool& refresh_graphics, diff --git a/src/app/gui/color.h b/src/app/gui/color.h index 554ba968..1abb55dd 100644 --- a/src/app/gui/color.h +++ b/src/app/gui/color.h @@ -53,13 +53,13 @@ IMGUI_API bool SnesColorButton(absl::string_view id, gfx::SnesColor &color, IMGUI_API bool SnesColorEdit4(absl::string_view label, gfx::SnesColor *color, ImGuiColorEditFlags flags = 0); -absl::Status DisplayPalette(gfx::SnesPalette &palette, bool loaded); +IMGUI_API bool DisplayPalette(gfx::SnesPalette &palette, bool loaded); -absl::Status DisplayEditablePalette(gfx::SnesPalette &palette, - const std::string &title = "", - bool show_color_picker = false, - int colors_per_row = 8, - ImGuiColorEditFlags flags = 0); +IMGUI_API absl::Status DisplayEditablePalette(gfx::SnesPalette &palette, + const std::string &title = "", + bool show_color_picker = false, + int colors_per_row = 8, + ImGuiColorEditFlags flags = 0); void SelectablePalettePipeline(uint64_t &palette_id, bool &refresh_graphics, gfx::SnesPalette &palette);