moving internal functions of background to private area

This commit is contained in:
Clément Le Bihan
2020-05-25 15:50:15 +02:00
parent 4af6bbf340
commit a012a6b110
2 changed files with 6 additions and 16 deletions

View File

@@ -38,16 +38,6 @@ namespace ComSquare::PPU
} }
} }
/*uint16_t Background::getGraphicVramAddress(int x, int y, int bg, int bpp)
{
uint16_t baseAddress = this->_registers._bgnba[bg > 2].raw;
int step = bpp * 8;
baseAddress = (bg % 2) ? baseAddress & 0xFU : (baseAddress & 0xFU) >> 4U;
baseAddress = baseAddress << 12U;
return baseAddress + (x * 16 * step) + (y * step);
}*/
void Background::drawBgTile(uint16_t data, Vector2<int> pos) void Background::drawBgTile(uint16_t data, Vector2<int> pos)
{ {
uint16_t graphicAddress; uint16_t graphicAddress;
@@ -64,7 +54,7 @@ namespace ComSquare::PPU
palette = getPalette(tileData.palette); palette = getPalette(tileData.palette);
reference = getTilePixelReference(graphicAddress, index); reference = getTilePixelReference(graphicAddress, index);
color = getRealColor(palette[reference]); color = getRealColor(palette[reference]);
this->_renderer.putPixel(pos.x, pos.y, color); this->_buffer[pos.x][pos.y] = color;
index++; index++;
pos.x++; pos.x++;
if (index == (8 / this->_bpp) - 1) { if (index == (8 / this->_bpp) - 1) {

View File

@@ -22,12 +22,8 @@ namespace ComSquare::PPU
bool _priority; bool _priority;
uint16_t _vramAddress; uint16_t _vramAddress;
uint16_t _graphicVramAddress; uint16_t _graphicVramAddress;
std::array<std::array<uint32_t, 1024>, 1024> _buffer; std::array<std::array<uint32_t, 1024>, 1024> _buffer;
public:
Background(int bpp, Vector2<int> backgroundSize, Vector2<int> characterSize, bool directColor, bool highRes, bool priority, uint16_t vramAddress, uint16_t graphicVramAddress);
//! @brief Render a background on the screen
void renderBackground(void);
//! @brief Draw a tile on the screen at x y pos //! @brief Draw a tile on the screen at x y pos
void drawBgTile(uint16_t data, Vector2<int> pos); void drawBgTile(uint16_t data, Vector2<int> pos);
//! @brief Get a palette from the number of the palette (0 - 7) //! @brief Get a palette from the number of the palette (0 - 7)
@@ -38,6 +34,10 @@ namespace ComSquare::PPU
uint8_t getTilePixelReference(uint16_t addr, int nb); uint8_t getTilePixelReference(uint16_t addr, int nb);
//! @brief draw a tilemap 32x32 starting at baseAddress //! @brief draw a tilemap 32x32 starting at baseAddress
void drawBasicTileMap(uint16_t baseAddress, Vector2<int> offset); void drawBasicTileMap(uint16_t baseAddress, Vector2<int> offset);
public:
Background(int bpp, Vector2<int> backgroundSize, Vector2<int> characterSize, bool directColor, bool highRes, bool priority, uint16_t vramAddress, uint16_t graphicVramAddress);
//! @brief Render a background on the screen
void renderBackground(void);
}; };
} }