#ifndef __PHOSPHOR_BLEND_HPP__
#define __PHOSPHOR_BLEND_HPP__
#include "../emucore/OSystem.hxx"
#include "ale_screen.hpp"
namespace ale {
class PhosphorBlend {
public:
PhosphorBlend(OSystem*);
void process(ALEScreen& screen);
private:
void makeAveragePalette();
uInt8 getPhosphor(uInt8 v1, uInt8 v2);
uInt32 makeRGB(uInt8 r, uInt8 g, uInt8 b);
uInt8 rgbToNTSC(uInt32 rgb);
private:
OSystem* m_osystem;
uInt8 m_rgb_ntsc[64][64][64];
uInt32 m_avg_palette[256][256];
uInt8 m_phosphor_blend_ratio;
};
}
#endif