adding the first working sfml window (flicker warning)

ui update
This commit is contained in:
Clément Le Bihan
2021-06-08 22:40:15 +02:00
parent 36bb0587c3
commit 81a32100f1
6 changed files with 100 additions and 50 deletions
+1 -1
View File
@@ -242,7 +242,7 @@ add_executable(ComSquare
sources/Renderer/QtRenderer/QtRenderSfml.hpp
sources/Debugger/TileViewer/TileViewer.cpp
sources/Debugger/TileViewer/TileViewer.hpp
sources/Debugger/TileViewer/TileRenderer.cpp sources/Debugger/TileViewer/TileRenderer.hpp sources/PPU/Tile.hpp)
sources/Debugger/TileViewer/TileRenderer.cpp sources/Debugger/TileViewer/TileRenderer.hpp sources/PPU/Tile.hpp sources/Renderer/QtRenderer/QtSfmlTileRenderer.cpp sources/Renderer/QtRenderer/QtSfmlTileRenderer.hpp)
include_directories(ComSquare sources)
+1 -1
View File
@@ -34,7 +34,7 @@ namespace ComSquare::Debugger
this->_window->setAttribute(Qt::WA_DeleteOnClose);
this->_ui.setupUi(this->_window);
//this->_sfWidget = std::make_unique<Renderer::QtSFML>(this->_ui.label_5);
this->_sfWidget = std::make_unique<Renderer::QtSFMLTileRenderer>(this->_ui.widget_sfml);
QMainWindow::connect(this->_ui.NbColumns, QOverload<int>::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setNbColumns(nb); });
QMainWindow::connect(this->_ui.ByteSize, QOverload<int>::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setRenderSize(nb); });
QMainWindow::connect(this->_ui.Address, QOverload<int>::of(&QSpinBox::valueChanged), this, [this](int nb) -> void { this->setRamOffset(nb); });
+2 -2
View File
@@ -15,7 +15,7 @@ namespace ComSquare::PPU
#include <array>
#include "PPU/PPU.hpp"
#include "Debugger/ClosableWindow.hpp"
#include "Renderer/QtRenderer/QtSFML.hpp"
#include "Renderer/QtRenderer/QtSfmlTileRenderer.hpp"
#include "../../../ui/ui_tileView.h"
#include "Ram/Ram.hpp"
#include "TileRenderer.hpp"
@@ -35,7 +35,7 @@ namespace ComSquare::Debugger
//! @brief A reference to the ppu
ComSquare::PPU::PPU &_ppu;
//! @brief the window
//std::unique_ptr<Renderer::QtSFML> _sfWidget;
std::unique_ptr<Renderer::QtSFMLTileRenderer> _sfWidget;
//! @brief The tile renderer
TileRenderer _tileRenderer;
//! @brief Change the bpp from the index given by the ui (QT combo box)
@@ -0,0 +1,24 @@
//
// Created by cbihan on 08/06/2021.
//
#include <iostream>
#include "QtSfmlTileRenderer.hpp"
namespace ComSquare::Renderer
{
QtSFMLTileRenderer::QtSFMLTileRenderer(QWidget *parent,
int frameRate)
: QtWidgetSFML(parent, {0, 0}, {500, 1000}, frameRate)
{
// todo the size of the sfml renderwindow should fill the parent
std::cout << "size: " << parent->width() << " " << parent->height() << std::endl;
}
void QtSFMLTileRenderer::_onUpdate()
{
this->_window.clear(sf::Color::Blue);
this->_window.display();
}
}
@@ -0,0 +1,33 @@
//
// Created by cbihan on 08/06/2021.
//
#pragma once
#include <QtWidgets/QWidget>
#include "QtWidgetSFML.hpp"
namespace ComSquare::Renderer
{
class QtSFMLTileRenderer : public QtWidgetSFML
{
private:
//! @brief internal buffer
//sf::Image _image;
//! @brief sprite
//sf::Sprite _sprite;
public:
//! @brief Function called to update this widget.
void _onUpdate() override;
//! @brief ctor
explicit QtSFMLTileRenderer(QWidget* parent, int frameRate = 0);
//! @brief copy ctor
QtSFMLTileRenderer(const QtSFMLTileRenderer &) = delete;
//! @brief default ctor
~QtSFMLTileRenderer() override = default;
//! @brief assignment operator
QtSFMLTileRenderer &operator=(const QtSFMLTileRenderer &) = delete;
};
}
+39 -46
View File
@@ -22,11 +22,7 @@
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>SFML window here :)</string>
</property>
</widget>
<widget class="QWidget" name="widget_sfml" native="true"/>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
@@ -97,42 +93,10 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_2">
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Columns</string>
</property>
<property name="buddy">
<cstring></cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="NbColumns">
<property name="readOnly">
<bool>false</bool>
</property>
<property name="specialValueText">
<string/>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="value">
<number>16</number>
</property>
<property name="displayIntegerBase">
<number>10</number>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="PaletteIndex">
<property name="maximum">
<number>255</number>
<string>Format</string>
</property>
</widget>
</item>
@@ -167,10 +131,35 @@
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<item row="4" column="0">
<widget class="QLabel" name="label_2">
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="text">
<string>Format</string>
<string>Columns</string>
</property>
<property name="buddy">
<cstring></cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="NbColumns">
<property name="readOnly">
<bool>false</bool>
</property>
<property name="specialValueText">
<string/>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="value">
<number>16</number>
</property>
<property name="displayIntegerBase">
<number>10</number>
</property>
</widget>
</item>
@@ -181,11 +170,15 @@
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="PaletteIndex">
<property name="maximum">
<number>255</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout"/>
</item>
</layout>
</item>
</layout>