19 lines
817 B
C++
19 lines
817 B
C++
|
|
// PNGdec support functions
|
|
|
|
//=========================================v==========================================
|
|
// pngDraw: Callback function to draw pixels to the display
|
|
//====================================================================================
|
|
// This function will be called during decoding of the png file to render each image
|
|
// line to the TFT. PNGdec generates the image line and a 1bpp mask.
|
|
void pngDraw(PNGDRAW *pDraw) {
|
|
uint16_t lineBuffer[MAX_IMAGE_WDITH]; // Line buffer for rendering
|
|
uint8_t maskBuffer[1 + MAX_IMAGE_WDITH / 8]; // Mask buffer
|
|
|
|
png.getLineAsRGB565(pDraw, lineBuffer, PNG_RGB565_BIG_ENDIAN, 0xffffffff);
|
|
|
|
if (png.getAlphaMask(pDraw, maskBuffer, 255)) {
|
|
tft.pushMaskedImage(xpos, ypos + pDraw->y, pDraw->iWidth, 1, lineBuffer, maskBuffer);
|
|
}
|
|
}
|