bsnes/higan/sfc/ppu/screen.hpp

48 lines
947 B
C++

struct Screen {
auto scanline() -> void;
alwaysinline 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(uint palette, uint tile) const -> uint15;
alwaysinline auto fixedColor() const -> uint15;
auto serialize(serializer&) -> void;
uint32* lineA;
uint32* lineB;
uint15 cgram[256];
struct IO {
bool blendMode;
bool directColor;
bool colorMode;
bool colorHalve;
struct Layer {
bool colorEnable;
} bg1, bg2, bg3, bg4, obj, back;
uint5 colorBlue;
uint5 colorGreen;
uint5 colorRed;
} io;
struct Math {
struct Screen {
uint15 color;
bool colorEnable;
} above, below;
bool transparent;
bool blendMode;
bool colorHalve;
} math;
friend class PPU;
};