Make DrawPaletteGroup public
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include "app/gfx/snes_palette.h"
|
#include "app/gfx/snes_palette.h"
|
||||||
#include "app/gfx/snes_tile.h"
|
#include "app/gfx/snes_tile.h"
|
||||||
#include "app/gui/canvas.h"
|
#include "app/gui/canvas.h"
|
||||||
|
#include "app/gui/color.h"
|
||||||
#include "app/gui/icons.h"
|
#include "app/gui/icons.h"
|
||||||
#include "app/gui/input.h"
|
#include "app/gui/input.h"
|
||||||
#include "app/gui/pipeline.h"
|
#include "app/gui/pipeline.h"
|
||||||
@@ -54,6 +55,7 @@ absl::Status GfxGroupEditor::Update() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::BeginTabItem("Palettes")) {
|
if (ImGui::BeginTabItem("Palettes")) {
|
||||||
|
DrawPaletteViewer();
|
||||||
ImGui::EndTabItem();
|
ImGui::EndTabItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +86,7 @@ void GfxGroupEditor::DrawBlocksetViewer(bool sheet_only) {
|
|||||||
ImGui::BeginGroup();
|
ImGui::BeginGroup();
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
ImGui::SetNextItemWidth(100.f);
|
ImGui::SetNextItemWidth(100.f);
|
||||||
gui::InputHexByte(("##blockset0" + std::to_string(i)).c_str(),
|
gui::InputHexByte(("0x" + std::to_string(i)).c_str(),
|
||||||
&rom()->main_blockset_ids[selected_blockset_][i]);
|
&rom()->main_blockset_ids[selected_blockset_][i]);
|
||||||
if (i != 3 && i != 7) {
|
if (i != 3 && i != 7) {
|
||||||
SameLine();
|
SameLine();
|
||||||
@@ -129,7 +131,7 @@ void GfxGroupEditor::DrawRoomsetViewer() {
|
|||||||
ImGui::BeginGroup();
|
ImGui::BeginGroup();
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
ImGui::SetNextItemWidth(100.f);
|
ImGui::SetNextItemWidth(100.f);
|
||||||
gui::InputHexByte(("##roomset0" + std::to_string(i)).c_str(),
|
gui::InputHexByte(("0x" + std::to_string(i)).c_str(),
|
||||||
&rom()->room_blockset_ids[selected_roomset_][i]);
|
&rom()->room_blockset_ids[selected_roomset_][i]);
|
||||||
if (i != 3 && i != 7) {
|
if (i != 3 && i != 7) {
|
||||||
SameLine();
|
SameLine();
|
||||||
@@ -168,7 +170,7 @@ void GfxGroupEditor::DrawSpritesetViewer(bool sheet_only) {
|
|||||||
ImGui::BeginGroup();
|
ImGui::BeginGroup();
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
ImGui::SetNextItemWidth(100.f);
|
ImGui::SetNextItemWidth(100.f);
|
||||||
gui::InputHexByte(("##spriteset0" + std::to_string(i)).c_str(),
|
gui::InputHexByte(("0x" + std::to_string(i)).c_str(),
|
||||||
&rom()->spriteset_ids[selected_spriteset_][i]);
|
&rom()->spriteset_ids[selected_spriteset_][i]);
|
||||||
if (i != 3 && i != 7) {
|
if (i != 3 && i != 7) {
|
||||||
SameLine();
|
SameLine();
|
||||||
@@ -192,8 +194,66 @@ void GfxGroupEditor::DrawSpritesetViewer(bool sheet_only) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void DrawPaletteFromPaletteGroup(gfx::SNESPalette &palette) {
|
||||||
|
for (int n = 0; n < palette.size(); n++) {
|
||||||
|
ImGui::PushID(n);
|
||||||
|
if ((n % 8) != 0) ImGui::SameLine(0.0f, ImGui::GetStyle().ItemSpacing.y);
|
||||||
|
|
||||||
|
auto popup_id = absl::StrCat("Palette", n);
|
||||||
|
|
||||||
|
// Small icon of the color in the palette
|
||||||
|
if (gui::SNESColorButton(popup_id, palette[n],
|
||||||
|
ImGuiColorEditFlags_NoAlpha |
|
||||||
|
ImGuiColorEditFlags_NoPicker |
|
||||||
|
ImGuiColorEditFlags_NoTooltip)) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
void GfxGroupEditor::DrawPaletteViewer() {
|
void GfxGroupEditor::DrawPaletteViewer() {
|
||||||
// TODO: Implement palette viewer
|
// TODO: Implement palette viewer
|
||||||
|
static PaletteEditor palette_editor;
|
||||||
|
static uint8_t selected_paletteset = 0;
|
||||||
|
|
||||||
|
gui::InputHexByte("Selected Paletteset", &selected_paletteset);
|
||||||
|
|
||||||
|
gui::InputHexByte("Dungeon Main",
|
||||||
|
&rom()->paletteset_ids[selected_paletteset][0]);
|
||||||
|
gui::InputHexByte("Dungeon Spr Pal 1",
|
||||||
|
&rom()->paletteset_ids[selected_paletteset][1]);
|
||||||
|
gui::InputHexByte("Dungeon Spr Pal 2",
|
||||||
|
&rom()->paletteset_ids[selected_paletteset][2]);
|
||||||
|
gui::InputHexByte("Dungeon Spr Pal 3",
|
||||||
|
&rom()->paletteset_ids[selected_paletteset][3]);
|
||||||
|
|
||||||
|
auto &palette =
|
||||||
|
*rom()
|
||||||
|
->mutable_palette_group(
|
||||||
|
"dungeon_main")[rom()->paletteset_ids[selected_paletteset][0]]
|
||||||
|
.mutable_palette(0);
|
||||||
|
DrawPaletteFromPaletteGroup(palette);
|
||||||
|
// auto &spr_aux_pal1 =
|
||||||
|
// *rom()
|
||||||
|
// ->mutable_palette_group(
|
||||||
|
// "sprites_aux1")[rom()->paletteset_ids[selected_paletteset][1]]
|
||||||
|
// .mutable_palette(0);
|
||||||
|
// DrawPaletteFromPaletteGroup(spr_aux_pal1);
|
||||||
|
// auto &spr_aux_pal2 =
|
||||||
|
// *rom()
|
||||||
|
// ->mutable_palette_group(
|
||||||
|
// "sprites_aux2")[rom()->paletteset_ids[selected_paletteset][2]]
|
||||||
|
// .mutable_palette(0);
|
||||||
|
// DrawPaletteFromPaletteGroup(spr_aux_pal2);
|
||||||
|
// auto &spr_aux_pal3 =
|
||||||
|
// *rom()
|
||||||
|
// ->mutable_palette_group(
|
||||||
|
// "sprites_aux3")[rom()->paletteset_ids[selected_paletteset][3]]
|
||||||
|
// .mutable_palette(0);
|
||||||
|
// DrawPaletteFromPaletteGroup(spr_aux_pal3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GfxGroupEditor::InitBlockset(gfx::Bitmap tile16_blockset) {
|
void GfxGroupEditor::InitBlockset(gfx::Bitmap tile16_blockset) {
|
||||||
|
|||||||
@@ -85,9 +85,9 @@ class PaletteEditor : public SharedROM {
|
|||||||
const gfx::SNESPalette& originalPalette);
|
const gfx::SNESPalette& originalPalette);
|
||||||
void DisplayPalette(gfx::SNESPalette& palette, bool loaded);
|
void DisplayPalette(gfx::SNESPalette& palette, bool loaded);
|
||||||
void DrawPortablePalette(gfx::SNESPalette& palette);
|
void DrawPortablePalette(gfx::SNESPalette& palette);
|
||||||
|
absl::Status DrawPaletteGroup(int category);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
absl::Status DrawPaletteGroup(int category);
|
|
||||||
absl::Status HandleColorPopup(gfx::SNESPalette& palette, int i, int j, int n);
|
absl::Status HandleColorPopup(gfx::SNESPalette& palette, int i, int j, int n);
|
||||||
|
|
||||||
void InitializeSavedPalette(const gfx::SNESPalette& palette) {
|
void InitializeSavedPalette(const gfx::SNESPalette& palette) {
|
||||||
|
|||||||
Reference in New Issue
Block a user