mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-05-26 15:59:22 +00:00
whao it seems to work
This commit is contained in:
@@ -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});
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -4,19 +4,17 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <QtWidgets/QWidget>
|
||||
#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<std::array<uint32_t, 1024>, 1024> buffer;
|
||||
|
||||
//! @brief Function called to update this widget.
|
||||
void _onUpdate() override;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user