tile rendering is working (still some issues)

This commit is contained in:
Clément Le Bihan
2021-05-24 01:24:03 +02:00
parent effd70cf1e
commit eee41aeaf7
8 changed files with 155 additions and 122 deletions

View File

@@ -4,6 +4,11 @@
#pragma once
namespace ComSquare::PPU
{
class PPU;
}
#include <QtCore/QSortFilterProxyModel>
#include <QEvent>
#include <QMouseEvent>
@@ -11,38 +16,12 @@
#include "PPU/PPU.hpp"
#include "Debugger/ClosableWindow.hpp"
#include "Renderer/QtRenderer/QtSFML.hpp"
#include "../../ui/ui_tileView.h"
#include "../../../ui/ui_tileView.h"
#include "Ram/Ram.hpp"
namespace ComSquare::Debugger
{
class TileRenderer {
private:
//! @brief ram to render
std::shared_ptr<Ram::Ram> _ram;
//! @brief cgram to access the colors
std::shared_ptr<Ram::Ram> _cgram;
//! @brief The bpp to use while rendering
int _bpp;
//! @brief The palette number to use while rendering
int _palette;
public:
//! @brief internal buffer
std::array<std::array<uint32_t, 1024>, 1024> buffer;
void setPalette(int palette);
void setCgram(std::shared_ptr<Ram::Ram> ram);
void setBpp(int bpp);
void setRam(std::shared_ptr<Ram::Ram> ram);
uint8_t getPixelReferenceFromTileRow(uint16_t tileRowAddress, uint8_t pixelIndex);
std::vector<uint16_t> getPalette(int nbPalette);
//! @brief render the selected ram
void render();
TileRenderer();
TileRenderer(const TileRenderer &) = default;
~TileRenderer() = default;
TileRenderer &operator=(const TileRenderer &) = default;
};
//! @brief window that allow the user to view all data going through the memory bus.
class TileViewer : public QObject {