From a046eb50384e5f55f7d6ca7e69417e8b013a8c5a Mon Sep 17 00:00:00 2001 From: RSDuck Date: Sat, 27 Feb 2021 22:25:27 +0100 Subject: separate GPU2D registers and renderer --- src/GPU2D_Soft.h | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'src/GPU2D_Soft.h') diff --git a/src/GPU2D_Soft.h b/src/GPU2D_Soft.h index 754f08a..b209810 100644 --- a/src/GPU2D_Soft.h +++ b/src/GPU2D_Soft.h @@ -20,32 +20,32 @@ #include "GPU2D.h" -class GPU2D_Soft : public GPU2D +namespace GPU2D { -public: - GPU2D_Soft(u32 num); - ~GPU2D_Soft() override {} - - void DrawScanline(u32 line) override; - void DrawSprites(u32 line) override; - void VBlankEnd() override; -protected: - void MosaicXSizeChanged() override; +class SoftRenderer : public Renderer2D +{ +public: + SoftRenderer(); + ~SoftRenderer() override {} + void DrawScanline(u32 line, Unit* unit) override; + void DrawSprites(u32 line, Unit* unit) override; + void VBlankEnd(Unit* unitA, Unit* unitB) override; private: - alignas(8) u32 BGOBJLine[256*3]; u32* _3DLine; - alignas(8) u32 OBJLine[256]; - alignas(8) u8 OBJIndex[256]; + alignas(8) u8 WindowMask[256]; - u32 NumSprites; + alignas(8) u32 OBJLine[2][256]; + alignas(8) u8 OBJIndex[2][256]; + alignas(8) u8 OBJWindow[2][256]; + + u32 NumSprites[2]; - u8 MosaicTable[16][256]; u8* CurBGXMosaicTable; - u8* CurOBJXMosaicTable; + u8 MosaicTable[16][256]; u32 ColorBlend4(u32 val1, u32 val2, u32 eva, u32 evb); u32 ColorBlend5(u32 val1, u32 val2); @@ -76,4 +76,6 @@ private: template void DrawSprite_Normal(u32 num, u32 width, u32 height, s32 xpos, s32 ypos); void DoCapture(u32 line, u32 width); -}; \ No newline at end of file +}; + +} \ No newline at end of file -- cgit v1.2.3