Path: blob/master/libsnes/bsnes/snes/alt/ppu-performance/background/background.hpp
2 views
class Background {1struct ID { enum { BG1, BG2, BG3, BG4 }; };2struct Mode { enum { BPP2, BPP4, BPP8, Mode7, Inactive }; };3struct ScreenSize { enum { Size32x32, Size32x64, Size64x32, Size64x64 }; };4struct TileSize { enum { Size8x8, Size16x16 }; };56bool priority0_enable;7bool priority1_enable;89struct Regs {10unsigned mode;11unsigned priority0;12unsigned priority1;1314bool tile_size;15unsigned mosaic;1617unsigned screen_addr;18unsigned screen_size;19unsigned tiledata_addr;2021unsigned hoffset;22unsigned voffset;2324bool main_enable;25bool sub_enable;26} regs;2728uint16 **mosaic_table;2930const unsigned id;31unsigned opt_valid_bit;3233bool hires;34signed width;3536unsigned tile_width;37unsigned tile_height;3839unsigned mask_x;40unsigned mask_y;4142unsigned scx;43unsigned scy;4445unsigned hscroll;46unsigned vscroll;4748unsigned mosaic_vcounter;49unsigned mosaic_voffset;5051LayerWindow window;5253alwaysinline unsigned get_tile(unsigned hoffset, unsigned voffset);54void offset_per_tile(unsigned x, unsigned y, unsigned &hoffset, unsigned &voffset);55void scanline();56void render();57void render_mode7();5859void serialize(serializer&);60Background(PPU &self, unsigned id);61~Background();6263PPU &self;64friend class PPU;65};666768