Master is broken
JPTIZ opened this issue · 1 comments
JPTIZ commented
Okay, after MONTHS without touching this thing properly I realized master
branch is broken, which is unnacceptible. Who in hell made this?
$ git blame src/arch/display/video.cpp
40891023 src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-17 12:56:27 -0300 1) #include <libgba-cpp/arch/display/video.h>
f9070b92 src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-17 13:11:19 -0300 2) #include <libgba-cpp/utils/general.h>
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 3)
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 4) namespace {
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 5)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 6) using gba::display::Page;
1c0993f5 src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-26 12:02:43 -0300 7) using gba::display::Color;
f8101474 src/arch/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-26 19:26:57 -0300 8) using gba::display::RawPalette;
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 9) using gba::display::VRAMData;
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 10)
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 11) static auto& vram_data = *new (reinterpret_cast<void*>(0x0600'0000)) std::array<VRAMData, 0x18000 / 2>{};
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 12)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 13) static auto page = Page::PAGE1;
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 14)
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 15) }
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 16)
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 17) std::array<VRAMData, 0x18000 / 2>& gba::display::vram_data() {
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 18) return ::vram_data;
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 19) }
ba7f6d3a src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-09-23 21:39:36 -0300 20)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 21) Color& gba::display::mode5::vram(int x, int y) {
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 22) return vram(x + screen_width * y);
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 23) }
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 24)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 25) Color& gba::display::mode5::vram(int index) {
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 26) return vram_data()[index + utils::value_of(::page) * screen_width * screen_height].color;
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 27) }
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 28)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 29) Page gba::display::mode5::page() {
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 30) return ::page;
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 31) }
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 32)
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 33) void gba::display::mode5::flip_pages() {
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 34) select_page(::page);
f8101474 src/arch/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-26 19:26:57 -0300 35)
f8101474 src/arch/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-26 19:26:57 -0300 36) constexpr auto PAGE0 = Page::PAGE0;
f8101474 src/arch/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-26 19:26:57 -0300 37) constexpr auto PAGE1 = Page::PAGE1;
f8101474 src/arch/display/video.cpp (João Paulo Taylor Ienczak Zanette 2018-07-26 19:26:57 -0300 38) ::page = ::page == PAGE0 ? PAGE1 : PAGE0;
972fdf7e src/drivers/display/video.cpp (João Paulo Taylor Ienczak Zanette 2017-11-02 02:09:17 -0200 39) }
Oh damn, it was me. Every line.
I'm sorry everyone, I shall fix this. ASAP.