diff --git a/sources/Debugger/TileViewer/TileViewer.cpp b/sources/Debugger/TileViewer/TileViewer.cpp index 5ebb089..918da78 100644 --- a/sources/Debugger/TileViewer/TileViewer.cpp +++ b/sources/Debugger/TileViewer/TileViewer.cpp @@ -126,6 +126,7 @@ namespace ComSquare::Debugger void TileViewer::internalUpdate() { this->_tileRenderer.render(); + this->_sfWidget->buffer = this->_tileRenderer.buffer; this->_ppu.add_buffer(this->_tileRenderer.buffer, {200, 200}); } diff --git a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp index fbb175e..55d5348 100644 --- a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp +++ b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp @@ -10,7 +10,7 @@ namespace ComSquare::Renderer QtSFMLTileRenderer::QtSFMLTileRenderer(QWidget *parent, int frameRate) - : QtWidgetSFML(parent, {0, 0}, {500, 1000}, frameRate) + : QtWidgetSFML(parent, {0, 0}, {1025, 1025}, frameRate) { // todo the size of the sfml renderwindow should fill the parent std::cout << "size: " << parent->width() << " " << parent->height() << std::endl; @@ -18,7 +18,12 @@ namespace ComSquare::Renderer void QtSFMLTileRenderer::_onUpdate() { - this->_window.clear(sf::Color::Blue); - this->_window.display(); + this->_window.clear(sf::Color::Black); + for (unsigned long i = 0; i < this->buffer.size(); i++) { + for (unsigned long j = 0; j < this->buffer[i].size(); j++) { + this->putPixel(j, i, this->buffer[i][j]); + } + } + this->drawScreen(); } } \ No newline at end of file diff --git a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp index fea7945..a8c4b55 100644 --- a/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp +++ b/sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp @@ -4,19 +4,17 @@ #pragma once +#include #include #include "QtWidgetSFML.hpp" +#include "Debugger/TileViewer/TileRenderer.hpp" namespace ComSquare::Renderer { class QtSFMLTileRenderer : public QtWidgetSFML { - private: - //! @brief internal buffer - //sf::Image _image; - //! @brief sprite - //sf::Sprite _sprite; public: + std::array, 1024> buffer; //! @brief Function called to update this widget. void _onUpdate() override; diff --git a/sources/Renderer/SFRenderer.cpp b/sources/Renderer/SFRenderer.cpp index 82e876f..8bb23fe 100644 --- a/sources/Renderer/SFRenderer.cpp +++ b/sources/Renderer/SFRenderer.cpp @@ -68,11 +68,7 @@ namespace ComSquare::Renderer if (y >= this->_videoMode.height) throw InvalidPixelPosition("Height", y, this->_videoMode.height); - sf::Color pixels; - pixels.r = rgba >> 24U; - pixels.g = rgba >> 16U; - pixels.b = rgba >> 8U; - pixels.a = rgba >> 0U; + sf::Color pixels(rgba); this->_pixelBuffer[this->_videoMode.width * y + x] = pixels; }