// // Created by cbihan on 24/05/2021. // #pragma once #include #include "Ram/Ram.hpp" namespace ComSquare::Debugger { class TileRenderer { private: //! @brief ram to render std::shared_ptr _ram; //! @brief cgram to access the colors std::shared_ptr _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, 1024> buffer; void setPalette(int palette); void setCgram(std::shared_ptr ram); void setBpp(int bpp); void setRam(std::shared_ptr ram); uint8_t getPixelReferenceFromTileRow(uint16_t tileRowAddress, uint8_t pixelIndex); std::vector getPalette(int nbPalette); //! @brief render the selected ram void render(); TileRenderer(); TileRenderer(const TileRenderer &) = default; ~TileRenderer() = default; TileRenderer &operator=(const TileRenderer &) = default; }; }