mirror of
https://github.com/zoriya/ComSquare.git
synced 2025-12-20 14:15:11 +00:00
moving internal functions of background to private area
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user