Files
Aerofoil/PortabilityLayer/QDStandardPalette.h

37 lines
919 B
C++

#pragma once
#include "AntiAliasTable.h"
#include "RGBAColor.h"
namespace PortabilityLayer
{
struct AntiAliasTable;
class StandardPalette
{
public:
static const unsigned int kSize = 256;
StandardPalette();
const RGBAColor *GetColors() const;
static uint8_t MapColorAnalyticTruncated(unsigned int r, unsigned int g, unsigned int b);
static uint8_t MapColorAnalytic(uint8_t r, uint8_t g, uint8_t b);
static uint8_t MapColorAnalytic(const RGBAColor &color);
uint8_t MapColorLUT(uint8_t r, uint8_t g, uint8_t b) const;
uint8_t MapColorLUT(const RGBAColor &color) const;
const AntiAliasTable &GetWhiteAATable() const;
const AntiAliasTable &GetBlackAATable() const;
static const StandardPalette *GetInstance();
private:
static StandardPalette ms_instance;
RGBAColor m_colors[kSize];
AntiAliasTable m_whiteAATable;
AntiAliasTable m_blackAATable;
uint8_t m_lut[16 * 16 * 16];
};
}