1#ifndef YAZE_APP_EDITOR_GRAPHICS_COLOR_ID_PERMUTATION_H_
2#define YAZE_APP_EDITOR_GRAPHICS_COLOR_ID_PERMUTATION_H_
9#include "absl/status/status.h"
10#include "absl/status/statusor.h"
11#include "absl/types/span.h"
20 std::array<uint8_t, 16>
ids{0, 1, 2, 3, 4, 5, 6, 7,
21 8, 9, 10, 11, 12, 13, 14, 15};
34 const ColorIdPermutation& permutation,
int backing_bpp);
37absl::StatusOr<ColorIdPermutation>
MakeColorIdSwap(
int bpp,
int from,
int to);
70 std::vector<ColorIdRangeEdit>
ranges;
79 const std::vector<ColorIdBacking>& backings,
80 const std::vector<ColorIdTarget>& targets,
86 bool forward, std::vector<uint8_t>& pixels);
Editors are the view controllers for the application.
absl::Status ValidateColorIdPermutation(const ColorIdPermutation &permutation)
absl::StatusOr< ColorIdPermutation > MakeColorIdSwap(int bpp, int from, int to)
absl::StatusOr< ColorIdEditPlan > PlanColorIdEdit(const std::vector< ColorIdBacking > &backings, const std::vector< ColorIdTarget > &targets, const ColorIdPermutation &permutation)
ColorIdPermutation IdentityColorIdPermutation(int bpp)
absl::Status ValidateColorIdPermutationForBacking(const ColorIdPermutation &permutation, int backing_bpp)
uint64_t PhysicalPixelMask(uint64_t displayed_mask, bool hflip, bool vflip)
absl::Status ApplyColorIdRangeEdit(const ColorIdRangeEdit &edit, int bpp, bool forward, std::vector< uint8_t > &pixels)
absl::Span< const uint8_t > pixels
ColorIdPermutation permutation
std::vector< ColorIdRangeEdit > ranges
std::vector< ColorIdTarget > targets
std::array< uint8_t, 16 > ids
std::vector< uint16_t > offsets
std::vector< uint8_t > after
std::vector< uint8_t > before