mirror of https://github.com/bsnes-emu/bsnes.git
45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
class Screen {
|
|
struct Regs {
|
|
bool addsub_mode;
|
|
bool direct_color;
|
|
|
|
bool color_mode;
|
|
bool color_halve;
|
|
bool color_enable[7];
|
|
|
|
unsigned color_b;
|
|
unsigned color_g;
|
|
unsigned color_r;
|
|
unsigned color;
|
|
} regs;
|
|
|
|
struct Output {
|
|
struct Pixel {
|
|
unsigned color;
|
|
unsigned priority;
|
|
unsigned source;
|
|
} main[256], sub[256];
|
|
|
|
alwaysinline void plot_main(unsigned x, unsigned color, unsigned priority, unsigned source);
|
|
alwaysinline void plot_sub(unsigned x, unsigned color, unsigned priority, unsigned source);
|
|
} output;
|
|
|
|
ColorWindow window;
|
|
|
|
alwaysinline unsigned get_palette(unsigned color);
|
|
unsigned get_direct_color(unsigned palette, unsigned tile);
|
|
alwaysinline uint16 addsub(unsigned x, unsigned y, bool halve);
|
|
void scanline();
|
|
void render_black();
|
|
alwaysinline uint16 get_pixel_main(unsigned x);
|
|
alwaysinline uint16 get_pixel_sub(unsigned x);
|
|
void render();
|
|
|
|
void serialize(serializer&);
|
|
Screen(PPU& self);
|
|
~Screen();
|
|
|
|
PPU& self;
|
|
friend class PPU;
|
|
};
|