1// Aseprite
2// Copyright (C) 2001-2017 David Capello
3//
4// This program is distributed under the terms of
5// the End-User License Agreement for Aseprite.
6
7#ifndef FILTERS_FILTER_INDEXED_DATA_H_INCLUDED
8#define FILTERS_FILTER_INDEXED_DATA_H_INCLUDED
9#pragma once
10
11namespace doc {
12 class Palette;
13 class PalettePicks;
14 class RgbMap;
15}
16
17namespace filters {
18
19 // Provides a Palette and a RgbMap to help a Filter which operate
20 // over an indexed image.
21 class FilterIndexedData {
22 public:
23 virtual ~FilterIndexedData() { }
24 virtual const doc::Palette* getPalette() const = 0;
25 virtual const doc::RgbMap* getRgbMap() const = 0;
26
27 // If a filter ask for a new palette, it means that the filter
28 // will modify the palette instead of pixels.
29 virtual doc::Palette* getNewPalette() = 0;
30
31 // Get the selected palettes to be modified by a palette filter
32 // (e.g. HueSaturationFilter).
33 virtual doc::PalettePicks getPalettePicks() = 0;
34 };
35
36} // namespace filters
37
38#endif
39