BizHawk/waterbox/bsnescore/bsnes/sfc/ppu/screen.hpp

48 lines
954 B
C++

struct Screen {
auto scanline() -> void;
auto run() -> void;
auto power() -> void;
auto below(bool hires) -> uint16;
auto above() -> uint16;
auto blend(uint x, uint y) const -> uint15;
alwaysinline auto paletteColor(uint8 palette) const -> uint15;
alwaysinline auto directColor(uint8 palette, uint3 paletteGroup) const -> uint15;
alwaysinline auto fixedColor() const -> uint15;
auto serialize(serializer&) -> void;
uint16* lineA;
uint16* lineB;
uint15 cgram[256];
struct IO {
uint1 blendMode;
uint1 directColor;
uint1 colorMode;
uint1 colorHalve;
struct Layer {
uint1 colorEnable;
} bg1, bg2, bg3, bg4, obj, back;
uint5 colorBlue;
uint5 colorGreen;
uint5 colorRed;
} io;
struct Math {
struct Screen {
uint15 color;
uint1 colorEnable;
} above, below;
uint1 transparent;
uint1 blendMode;
uint1 colorHalve;
} math;
friend class PPU;
};