mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-06-05 19:04:22 +00:00
canceling dynamic buffer in RAMTileRenderer.cpp for now
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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); });
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user