bsnes/sfc/alt/ppu-performance/screen/screen.hpp

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;
};