Add gfx::PaletteSet type

This commit is contained in:
scawful
2024-01-28 12:04:00 -05:00
parent e086f12ade
commit 4463e6be32
4 changed files with 28 additions and 35 deletions

View File

@@ -4,8 +4,6 @@
#include <cmath> #include <cmath>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "app/core/editor.h" #include "app/core/editor.h"
#include "app/gui/pipeline.h" #include "app/gui/pipeline.h"
#include "app/editor/modules/palette_editor.h" #include "app/editor/modules/palette_editor.h"
@@ -15,20 +13,13 @@
#include "app/gui/canvas.h" #include "app/gui/canvas.h"
#include "app/gui/icons.h" #include "app/gui/icons.h"
#include "app/rom.h" #include "app/rom.h"
#include "app/zelda3/overworld.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
namespace editor { namespace editor {
absl::Status GfxContext::Update() { return absl::OkStatus(); }
gfx::Bitmap GfxContext::current_ow_gfx_bmp_; std::unordered_map<uint8_t, gfx::Paletteset> GfxContext::palettesets_;
gfx::SNESPalette GfxContext::current_ow_palette_;
gfx::Bitmap GfxContext::tile16_blockset_bmp_;
gfx::Bitmap GfxContext::tile8_blockset_bmp_;
std::vector<gfx::Bitmap> GfxContext::tile16_individual_bmp_;
std::vector<gfx::Bitmap> GfxContext::tile8_individual_bmp_;
} // namespace editor } // namespace editor
} // namespace app } // namespace app

View File

@@ -6,24 +6,15 @@
#include <cmath> #include <cmath>
#include <vector> #include <vector>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "app/core/editor.h" #include "app/core/editor.h"
#include "app/gui/pipeline.h"
#include "app/editor/modules/palette_editor.h" #include "app/editor/modules/palette_editor.h"
#include "app/gfx/bitmap.h" #include "app/gfx/bitmap.h"
#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/icons.h" #include "app/gui/icons.h"
#include "app/gui/pipeline.h"
#include "app/rom.h" #include "app/rom.h"
#include "app/zelda3/overworld.h"
// Create a class which manages the current VRAM state of Link to the Past,
// including static members for the Bitmaps and Palettes as well as the current
// blockset as to update all of the overworld maps with the new blockset when it
// is changed. This class will also manage the current tile16 and tile8
// selection, as well as the current palette selection.
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -34,19 +25,8 @@ class GfxContext {
absl::Status Update(); absl::Status Update();
protected: protected:
static gfx::Bitmap current_ow_gfx_bmp_; // Palettesets for the tile16 individual tiles
static std::unordered_map<uint8_t, gfx::Paletteset> palettesets_;
static gfx::SNESPalette current_ow_palette_;
static gfx::Bitmap tile16_blockset_bmp_;
static gfx::Bitmap tile8_blockset_bmp_;
// Bitmaps for the tile16 individual tiles
static std::vector<gfx::Bitmap> tile16_individual_bmp_;
// Bitmaps for the tile8 individual tiles
static std::vector<gfx::Bitmap> tile8_individual_bmp_;
}; };
} // namespace editor } // namespace editor

View File

@@ -278,8 +278,6 @@ PaletteGroup CreatePaletteGroupFromColFile(
PaletteGroup CreatePaletteGroupFromLargePalette(SNESPalette& palette) { PaletteGroup CreatePaletteGroupFromLargePalette(SNESPalette& palette) {
PaletteGroup toret; PaletteGroup toret;
std::cout << "Palette size is " << palette.size() << std::endl;
for (int i = 0; i < palette.size(); i += 8) { for (int i = 0; i < palette.size(); i += 8) {
SNESPalette new_palette; SNESPalette new_palette;
if (i + 8 < palette.size()) { if (i + 8 < palette.size()) {

View File

@@ -276,6 +276,30 @@ PaletteGroup CreatePaletteGroupFromColFile(std::vector<SNESColor>& colors);
PaletteGroup CreatePaletteGroupFromLargePalette(SNESPalette& palette); PaletteGroup CreatePaletteGroupFromLargePalette(SNESPalette& palette);
struct Paletteset {
Paletteset() = default;
Paletteset(gfx::SNESPalette main, gfx::SNESPalette animated,
gfx::SNESPalette aux1, gfx::SNESPalette aux2,
gfx::SNESColor background, gfx::SNESPalette hud,
gfx::SNESPalette spr, gfx::SNESPalette spr2)
: main(main),
animated(animated),
aux1(aux1),
aux2(aux2),
background(background),
hud(hud),
spr(spr),
spr2(spr2) {}
gfx::SNESPalette main;
gfx::SNESPalette animated;
gfx::SNESPalette aux1;
gfx::SNESPalette aux2;
gfx::SNESColor background;
gfx::SNESPalette hud;
gfx::SNESPalette spr;
gfx::SNESPalette spr2;
};
} // namespace gfx } // namespace gfx
} // namespace app } // namespace app
} // namespace yaze } // namespace yaze