1#ifndef YAZE_APP_GFX_TYPES_SNES_PALETTE_LAYOUT_H_
2#define YAZE_APP_GFX_TYPES_SNES_PALETTE_LAYOUT_H_
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
17namespace palette_group_internal {
29 absl::StatusOr<uint32_t>
ColorAddress(
int color_index)
const;
31 int color_index)
const;
35 std::optional<uint32_t>, uint64_t,
size_t);
44 std::optional<uint32_t> snes_address, uint64_t color_count,
45 size_t normalized_rom_size);
54 absl::StatusOr<ResolvedPaletteRecord>
Resolve(
56 size_t normalized_rom_size)
const;
65 const std::vector<uint8_t>& normalized_rom_data,
PaletteGroup& group);
OverworldPaletteLayout(bool proposed)
static OverworldPaletteLayout ProposedUnbound()
absl::StatusOr< ResolvedPaletteRecord > Resolve(OverworldPaletteKind kind, int selector, size_t normalized_rom_size) const
int RecordCount(OverworldPaletteKind kind) const
static OverworldPaletteLayout Legacy()
ResolvedPaletteRecord(uint32_t pc, uint32_t snes, int colors)
friend absl::StatusOr< ResolvedPaletteRecord > ResolvePaletteRecord(std::optional< uint32_t >, uint64_t, size_t)
absl::StatusOr< std::pair< uint32_t, uint32_t > > ColorWriteRange(int color_index) const
uint32_t pc_address() const
uint32_t snes_address() const
absl::StatusOr< uint32_t > ColorAddress(int color_index) const
absl::Status LoadOverworldPaletteRecords(OverworldPaletteKind kind, const OverworldPaletteLayout &layout, const std::vector< uint8_t > &normalized_rom_data, PaletteGroup &group)
absl::StatusOr< ResolvedPaletteRecord > ResolvePaletteRecord(std::optional< uint32_t > snes_address, uint64_t color_count, size_t normalized_rom_size)
Contains classes for handling graphical data.
Represents a group of palettes.