canceling dynamic buffer in RAMTileRenderer.cpp for now

This commit is contained in:
Clément Le Bihan
2021-07-26 00:51:27 +02:00
parent 29636dc8e9
commit 6931a45e45
6 changed files with 19 additions and 25 deletions
+11 -11
View File
@@ -18,14 +18,14 @@ namespace ComSquare::Debugger
buffer({{0}}) buffer({{0}})
{} {}
void prepVector(std::vector<std::vector<uint32_t>> &vector, int nbColumns) /* void prepVector(std::vector<std::vector<uint32_t>> &vector, int nbColumns)
{ {
std::vector<uint32_t> pixelLine(static_cast<unsigned int>(nbColumns), 0); std::vector<uint32_t> pixelLine(static_cast<unsigned int>(nbColumns), 0);
vector.reserve(8); vector.reserve(8);
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
vector.push_back(pixelLine); vector.push_back(pixelLine);
} }
} }*/
void RAMTileRenderer::render() void RAMTileRenderer::render()
{ {
@@ -34,13 +34,13 @@ namespace ComSquare::Debugger
int nbTilesDrawn = 0; int nbTilesDrawn = 0;
int resetX = bufX; int resetX = bufX;
int nbLinesDrawn = 0; int nbLinesDrawn = 0;
//for (auto &i : this->buffer) for (auto &i : this->buffer)
// i.fill(0); i.fill(0);
uint24_t limit = std::fmin(this->_ram.getSize(), this->_renderSize) + this->_ramOffset; uint24_t limit = std::fmin(this->_ram.getSize(), this->_renderSize) + this->_ramOffset;
std::vector<std::vector<uint32_t>> row; //std::vector<std::vector<uint32_t>> row;
prepVector(row, this->_nbColumns); //prepVector(row, this->_nbColumns);
for (uint24_t i = this->_ramOffset; i < limit; i += PPU::Tile::BaseByteSize * this->_bpp, nbTilesDrawn++) { for (uint24_t i = this->_ramOffset; i < limit; i += PPU::Tile::BaseByteSize * this->_bpp, nbTilesDrawn++) {
if (bufX > 1024 || bufY > 1024) if (bufX > 1024 || bufY > 1024)
break; break;
@@ -57,15 +57,15 @@ namespace ComSquare::Debugger
resetX = 0; resetX = 0;
bufX = resetX; bufX = resetX;
bufY += PPU::Tile::NbPixelsHeight; bufY += PPU::Tile::NbPixelsHeight;
bufX = 0; //bufX = 0;
bufY = 0; //bufY = 0;
this->buffer.insert(this->buffer.end(), row.begin(), row.end()); //this->buffer.insert(this->buffer.end(), row.begin(), row.end());
prepVector(row, this->_nbColumns); //prepVector(row, this->_nbColumns);
} }
for (const auto &raw : this->_tileRenderer.buffer) { for (const auto &raw : this->_tileRenderer.buffer) {
for (const auto &pixel : raw) { for (const auto &pixel : raw) {
row[bufX++][bufY] = pixel; this->buffer[bufX++][bufY] = pixel;
} }
bufY++; bufY++;
bufX = resetX; bufX = resetX;
@@ -5,6 +5,7 @@
#pragma once #pragma once
#include <vector> #include <vector>
#include <array>
#include "PPU/TileRenderer.hpp" #include "PPU/TileRenderer.hpp"
#include "Ram/Ram.hpp" #include "Ram/Ram.hpp"
@@ -27,7 +28,7 @@ namespace ComSquare::Debugger
PPU::TileRenderer _tileRenderer; PPU::TileRenderer _tileRenderer;
public: public:
//! @brief internal buffer //! @brief internal buffer
std::vector<std::vector<uint32_t>> buffer; std::array<std::array<uint32_t, 1024>, 1024> buffer;
//! @brief Set the palette to use for render (index of palette) //! @brief Set the palette to use for render (index of palette)
void setPaletteIndex(int paletteIndex); void setPaletteIndex(int paletteIndex);
//! @brief Set the bpp to render graphics //! @brief Set the bpp to render graphics
+3 -1
View File
@@ -24,7 +24,9 @@ namespace ComSquare::Debugger
{ {
this->_ui.setupUi(this->_window); this->_ui.setupUi(this->_window);
//this->_qtSfmlRenderer(this->_ui.widget_sfml, 30); //this->_qtSfmlRenderer(this->_ui.widget_sfml, 30);
this->_renderer = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml, 30);; //this->_renderer = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml, 30);;
this->_renderer = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml, 30);
//this->_renderer = nullptr;
// this->_sfWidget = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml); // this->_sfWidget = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml);
QMainWindow::connect(this->_ui.NbColumns, QOverload<int>::of(&QSpinBox::valueChanged), this, QMainWindow::connect(this->_ui.NbColumns, QOverload<int>::of(&QSpinBox::valueChanged), this,
[this](int nb) -> void { this->setNbColumns(nb); }); [this](int nb) -> void { this->setNbColumns(nb); });
+2 -1
View File
@@ -35,7 +35,8 @@ namespace ComSquare::Debugger
//! @brief The ram tile renderer //! @brief The ram tile renderer
RAMTileRenderer _ramTileRenderer; RAMTileRenderer _ramTileRenderer;
//! @brief Renderer used to display tiles //! @brief Renderer used to display tiles
std::unique_ptr<Renderer::IRenderer> _renderer; std::unique_ptr<Renderer::QtSFMLTileRenderer> _renderer;
//std::unique_ptr<Renderer::IRenderer> _renderer;
//! @brief Change the bpp from the index given by the ui (QT combo box) //! @brief Change the bpp from the index given by the ui (QT combo box)
void _bppChangeUIHandler(int index); void _bppChangeUIHandler(int index);
@@ -11,23 +11,14 @@ namespace ComSquare::Renderer
QtSFMLTileRenderer::QtSFMLTileRenderer(QWidget *parent, QtSFMLTileRenderer::QtSFMLTileRenderer(QWidget *parent,
int frameRate) 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 // todo the size of the sfml renderwindow should fill the parent
} }
void QtSFMLTileRenderer::onUpdate() void QtSFMLTileRenderer::onUpdate()
{ {
int i = 0;
int j = 0;
this->_renderWindow.clear(sf::Color::Black); 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(); this->drawScreen();
} }
} }
@@ -14,7 +14,6 @@ namespace ComSquare::Renderer
class QtSFMLTileRenderer : public QtWidgetSFML class QtSFMLTileRenderer : public QtWidgetSFML
{ {
public: public:
std::array<std::array<uint32_t, 1024>, 1024> buffer;
//! @brief Function called to update this widget. //! @brief Function called to update this widget.
void onUpdate() override; void onUpdate() override;