From 6931a45e45aaf1e43dbdef4b2e197746186b2bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Mon, 26 Jul 2021 00:51:27 +0200 Subject: [PATCH] canceling dynamic buffer in RAMTileRenderer.cpp for now --- .../Debugger/TileViewer/RAMTileRenderer.cpp | 22 +++++++++---------- .../Debugger/TileViewer/RAMTileRenderer.hpp | 3 ++- sources/Debugger/TileViewer/TileViewer.cpp | 4 +++- sources/Debugger/TileViewer/TileViewer.hpp | 3 ++- .../QtRenderer/QtSfmlTileRenderer.cpp | 11 +--------- .../QtRenderer/QtSfmlTileRenderer.hpp | 1 - 6 files changed, 19 insertions(+), 25 deletions(-) diff --git a/sources/Debugger/TileViewer/RAMTileRenderer.cpp b/sources/Debugger/TileViewer/RAMTileRenderer.cpp index b8a5a0d..c8f9661 100644 --- a/sources/Debugger/TileViewer/RAMTileRenderer.cpp +++ b/sources/Debugger/TileViewer/RAMTileRenderer.cpp @@ -18,14 +18,14 @@ namespace ComSquare::Debugger buffer({{0}}) {} - void prepVector(std::vector> &vector, int nbColumns) +/* void prepVector(std::vector> &vector, int nbColumns) { std::vector pixelLine(static_cast(nbColumns), 0); vector.reserve(8); for (int i = 0; i < 8; i++) { vector.push_back(pixelLine); } - } + }*/ void RAMTileRenderer::render() { @@ -34,13 +34,13 @@ namespace ComSquare::Debugger int nbTilesDrawn = 0; int resetX = bufX; int nbLinesDrawn = 0; - //for (auto &i : this->buffer) - // i.fill(0); + for (auto &i : this->buffer) + i.fill(0); uint24_t limit = std::fmin(this->_ram.getSize(), this->_renderSize) + this->_ramOffset; - std::vector> row; + //std::vector> row; - prepVector(row, this->_nbColumns); + //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; @@ -57,15 +57,15 @@ namespace ComSquare::Debugger resetX = 0; bufX = resetX; bufY += PPU::Tile::NbPixelsHeight; - bufX = 0; - bufY = 0; - this->buffer.insert(this->buffer.end(), row.begin(), row.end()); - prepVector(row, this->_nbColumns); + //bufX = 0; + //bufY = 0; + //this->buffer.insert(this->buffer.end(), row.begin(), row.end()); + //prepVector(row, this->_nbColumns); } for (const auto &raw : this->_tileRenderer.buffer) { for (const auto &pixel : raw) { - row[bufX++][bufY] = pixel; + this->buffer[bufX++][bufY] = pixel; } bufY++; bufX = resetX; diff --git a/sources/Debugger/TileViewer/RAMTileRenderer.hpp b/sources/Debugger/TileViewer/RAMTileRenderer.hpp index 5e1792e..d41bc9f 100644 --- a/sources/Debugger/TileViewer/RAMTileRenderer.hpp +++ b/sources/Debugger/TileViewer/RAMTileRenderer.hpp @@ -5,6 +5,7 @@ #pragma once #include +#include #include "PPU/TileRenderer.hpp" #include "Ram/Ram.hpp" @@ -27,7 +28,7 @@ namespace ComSquare::Debugger PPU::TileRenderer _tileRenderer; public: //! @brief internal buffer - std::vector> buffer; + std::array, 1024> buffer; //! @brief Set the palette to use for render (index of palette) void setPaletteIndex(int paletteIndex); //! @brief Set the bpp to render graphics diff --git a/sources/Debugger/TileViewer/TileViewer.cpp b/sources/Debugger/TileViewer/TileViewer.cpp index a6c68b5..7b22df7 100644 --- a/sources/Debugger/TileViewer/TileViewer.cpp +++ b/sources/Debugger/TileViewer/TileViewer.cpp @@ -24,7 +24,9 @@ namespace ComSquare::Debugger { this->_ui.setupUi(this->_window); //this->_qtSfmlRenderer(this->_ui.widget_sfml, 30); - this->_renderer = std::make_unique(this->_ui.widget_sfml, 30);; + //this->_renderer = std::make_unique(this->_ui.widget_sfml, 30);; + this->_renderer = std::make_unique(this->_ui.widget_sfml, 30); + //this->_renderer = nullptr; // this->_sfWidget = std::make_unique(this->_ui.widget_sfml); QMainWindow::connect(this->_ui.NbColumns, QOverload::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setNbColumns(nb); }); diff --git a/sources/Debugger/TileViewer/TileViewer.hpp b/sources/Debugger/TileViewer/TileViewer.hpp index 0ddc092..4fa7f2f 100644 --- a/sources/Debugger/TileViewer/TileViewer.hpp +++ b/sources/Debugger/TileViewer/TileViewer.hpp @@ -35,7 +35,8 @@ namespace ComSquare::Debugger //! @brief The ram tile renderer RAMTileRenderer _ramTileRenderer; //! @brief Renderer used to display tiles - std::unique_ptr _renderer; + std::unique_ptr _renderer; + //std::unique_ptr _renderer; //! @brief Change the bpp from the index given by the ui (QT combo box) void _bppChangeUIHandler(int index); diff --git a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp index 72fe042..3db3cbe 100644 --- a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp +++ b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp @@ -11,23 +11,14 @@ namespace ComSquare::Renderer QtSFMLTileRenderer::QtSFMLTileRenderer(QWidget *parent, int frameRate) - : QtWidgetSFML(parent, {0, 0}, {16 * PPU::Tile::NbPixelsWidth, 18 * PPU::Tile::NbPixelsHeight}, frameRate) + : QtWidgetSFML(parent, {0, 0}, {160 * PPU::Tile::NbPixelsWidth, 180 * PPU::Tile::NbPixelsHeight}, frameRate) { // todo the size of the sfml renderwindow should fill the parent } void QtSFMLTileRenderer::onUpdate() { - int i = 0; - int j = 0; this->_renderWindow.clear(sf::Color::Black); - for (const auto &row : this->buffer) { - for (const auto &pixel : row) { - this->putPixel(j++, i, pixel); - } - i++; - j = 0; - } this->drawScreen(); } } \ No newline at end of file diff --git a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp index d5076ac..f0201c8 100644 --- a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp +++ b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp @@ -14,7 +14,6 @@ namespace ComSquare::Renderer class QtSFMLTileRenderer : public QtWidgetSFML { public: - std::array, 1024> buffer; //! @brief Function called to update this widget. void onUpdate() override;