diff --git a/sources/Debugger/TileViewer/RAMTileRenderer.cpp b/sources/Debugger/TileViewer/RAMTileRenderer.cpp index 757d5b8..35ad8ca 100644 --- a/sources/Debugger/TileViewer/RAMTileRenderer.cpp +++ b/sources/Debugger/TileViewer/RAMTileRenderer.cpp @@ -32,17 +32,12 @@ namespace ComSquare::Debugger int bufY = 0; int nbTilesDrawn = 0; int resetX = bufX; - int nbLinesDrawn = 0; - //for (auto &i : this->buffer) - // i.fill(0); uint24_t limit = std::fmin(this->_ram.getSize(), this->_renderSize) + this->_ramOffset; std::vector> row; prepVector(row, this->_nbColumns); for (uint24_t i = this->_ramOffset; i < limit; i += PPU::Tile::BaseByteSize * this->_bpp, nbTilesDrawn++) { - if (bufX > 1024 || bufY > 1024) - break; this->_tileRenderer.render(i); if (nbTilesDrawn) { @@ -52,10 +47,7 @@ namespace ComSquare::Debugger } if (nbTilesDrawn && nbTilesDrawn % this->_nbColumns == 0) { nbTilesDrawn = 0; - nbLinesDrawn++; resetX = 0; - //bufX = resetX; - //bufY += PPU::Tile::NbPixelsHeight; bufX = 0; bufY = 0; this->buffer.insert(this->buffer.end(), row.begin(), row.end()); @@ -70,6 +62,7 @@ namespace ComSquare::Debugger bufX = resetX; } } + this->buffer.insert(this->buffer.end(), row.begin(), row.end()); } void RAMTileRenderer::setPaletteIndex(int paletteIndex) diff --git a/sources/Debugger/TileViewer/RAMTileRenderer.hpp b/sources/Debugger/TileViewer/RAMTileRenderer.hpp index eb0ad57..3263ceb 100644 --- a/sources/Debugger/TileViewer/RAMTileRenderer.hpp +++ b/sources/Debugger/TileViewer/RAMTileRenderer.hpp @@ -28,7 +28,6 @@ namespace ComSquare::Debugger PPU::TileRenderer _tileRenderer; public: //! @brief internal buffer - //std::array, 1024> buffer; std::vector> buffer; //! @brief Set the palette to use for render (index of palette) void setPaletteIndex(int paletteIndex); diff --git a/sources/Debugger/TileViewer/TileViewer.cpp b/sources/Debugger/TileViewer/TileViewer.cpp index e78909a..88e7f6e 100644 --- a/sources/Debugger/TileViewer/TileViewer.cpp +++ b/sources/Debugger/TileViewer/TileViewer.cpp @@ -114,13 +114,16 @@ namespace ComSquare::Debugger void TileViewer::internalUpdate() { + if (this->_ramTileRenderer.buffer.empty() || this->_ramTileRenderer.buffer.at(0).empty()) + return; this->_ramTileRenderer.render(); if (this->_ramTileRenderer.buffer.size() != this->_currentRendererSize.y - || this->_ramTileRenderer.buffer.at(0).size() != this->_currentRendererSize.x) { - if (this->_ramTileRenderer.buffer.size() == 0 || this->_ramTileRenderer.buffer.at(0).size() == 0) - return; - this->_currentRendererSize = {static_cast(this->_ramTileRenderer.buffer.at(0).size()), static_cast(this->_ramTileRenderer.buffer.size())}; + || this->_ramTileRenderer.buffer.at(0).size() != this->_currentRendererSize.x) { + + this->_currentRendererSize = {static_cast(this->_ramTileRenderer.buffer.at(0).size()), + static_cast(this->_ramTileRenderer.buffer.size())}; this->_renderer->setSize(this->_currentRendererSize.x, this->_currentRendererSize.y); + this->_ui.widget_sfml->setMinimumSize(this->_currentRendererSize.x, this->_currentRendererSize.y); } int i = 0; int j = 0; diff --git a/sources/Debugger/TileViewer/TileViewer.hpp b/sources/Debugger/TileViewer/TileViewer.hpp index 1221e3a..c128976 100644 --- a/sources/Debugger/TileViewer/TileViewer.hpp +++ b/sources/Debugger/TileViewer/TileViewer.hpp @@ -39,7 +39,7 @@ namespace ComSquare::Debugger //std::unique_ptr _renderer; //! @brief Change the bpp from the index given by the ui (QT combo box) void _bppChangeUIHandler(int index); - + //! @brief The size of the renderer to known if resize is necessary Vector2 _currentRendererSize; public: diff --git a/sources/Renderer/SFRenderer.cpp b/sources/Renderer/SFRenderer.cpp index a79f70d..20e00c6 100644 --- a/sources/Renderer/SFRenderer.cpp +++ b/sources/Renderer/SFRenderer.cpp @@ -83,6 +83,8 @@ namespace ComSquare::Renderer void SFRenderer::setSize(unsigned int width, unsigned int height) { this->_renderWindow.setSize({width, height}); + sf::FloatRect visibleArea(0, 0, width, height); + this->_renderWindow.setView(sf::View(visibleArea)); this->_videoMode.width = width; this->_videoMode.height = height; if (!this->_texture.create(width, height)) { diff --git a/ui/tileView.ui b/ui/tileView.ui index a76b3be..eb25b4d 100644 --- a/ui/tileView.ui +++ b/ui/tileView.ui @@ -31,8 +31,8 @@ - 300 - 400 + 0 + 0 @@ -112,7 +112,7 @@ 0x - 0 + 4096 999999999