1#ifndef YAZE_APP_EDITOR_GRAPHICS_PIXEL_INDEX_COMMAND_H_
2#define YAZE_APP_EDITOR_GRAPHICS_PIXEL_INDEX_COMMAND_H_
13#include "absl/status/statusor.h"
40 uint16_t sheet_id,
int x,
int y,
int width,
int height);
60 std::optional<GraphicsEditContext>
source;
68 const std::vector<PixelIndexTarget>& targets,
76 const std::vector<PixelIndexTarget>& targets,
77 const std::map<uint16_t, std::vector<uint8_t>>& after_sheets,
78 std::string description =
"Apply art to object source");
89 GraphicsEditorState& state,
const PixelIndexPlan& plan,
91 const std::function<absl::Status(
size_t)>& after_sheet_write = {});
97 const PixelIndexPlan& plan);
100 GraphicsEditorState& state, UndoManager& history,
101 const std::vector<PixelIndexTarget>& targets,
108 const GraphicsEditorState& state,
109 const std::vector<PixelIndexTarget>& targets,
110 const ColorIdPermutation& permutation);
113 GraphicsEditorState& state, UndoManager& history,
114 const std::vector<PixelIndexTarget>& targets,
115 const ColorIdPermutation& permutation);
Shared state between GraphicsEditor panel components.
The Graphics editor's path for sheet pixel writes.
Editors are the view controllers for the application.
absl::StatusOr< PixelIndexPlan > PlanColorIdPermutation(const GraphicsEditorState &state, const std::vector< PixelIndexTarget > &targets, const ColorIdPermutation &permutation)
absl::StatusOr< PixelIndexPlan > PlanPixelIndexReplacement(const GraphicsEditorState &state, const std::vector< PixelIndexTarget > &targets, const std::map< uint16_t, std::vector< uint8_t > > &after_sheets, std::string description)
absl::Status ApplyColorIdPermutation(GraphicsEditorState &state, UndoManager &history, const std::vector< PixelIndexTarget > &targets, const ColorIdPermutation &permutation)
absl::Status ExecutePixelIndexPlan(GraphicsEditorState &state, const PixelIndexPlan &plan, PixelIndexExecution execution, const std::function< absl::Status(size_t)> &after_sheet_write)
absl::Status ApplyPixelIndexPermutation(GraphicsEditorState &state, UndoManager &history, const std::vector< PixelIndexTarget > &targets, const PixelIndexPermutation &permutation)
absl::Status ApplyPixelIndexPlan(GraphicsEditorState &state, UndoManager &history, const PixelIndexPlan &plan)
absl::StatusOr< PixelIndexPlan > PlanPixelIndexPermutation(const GraphicsEditorState &state, const std::vector< PixelIndexTarget > &targets, const PixelIndexPermutation &permutation)
absl::StatusOr< std::vector< PixelIndexTarget > > MakePixelIndexRectangleSelection(uint16_t sheet_id, int x, int y, int width, int height)
std::array< uint8_t, 8 > PixelIndexPermutation
Zelda 3 specific classes and functions.
std::vector< SheetPixelDiff > sheets
std::vector< size_t > source_targets
std::vector< PixelIndexTarget > targets
uint64_t source_context_revision
std::map< uint16_t, uint64_t > sheet_revisions
std::map< uint16_t, std::vector< uint8_t > > before_sheets
PixelIndexOperation operation
const zelda3::GameData * owner
std::optional< GraphicsEditContext > source