Fix PNG capture screen.

- Fix #680.
This commit is contained in:
Edênis Freindorfer Azevedo 2020-06-07 14:08:46 -03:00 committed by Rafael Kitover
parent 3d83590774
commit 0c5ee9941b
1 changed files with 4 additions and 5 deletions

View File

@ -230,7 +230,7 @@ void utilReadScreenPixels(uint8_t *dest, int w, int h)
bool utilWritePNGFile(const char *fileName, int w, int h, uint8_t *pix) bool utilWritePNGFile(const char *fileName, int w, int h, uint8_t *pix)
{ {
uint8_t writeBuffer[512 * CHANNEL_NUM]; uint8_t *writeBuffer = new uint8_t[w * h * CHANNEL_NUM];
uint8_t *b = writeBuffer; uint8_t *b = writeBuffer;
@ -251,7 +251,6 @@ bool utilWritePNGFile(const char *fileName, int w, int h, uint8_t *pix)
} }
p++; // skip black pixel for filters p++; // skip black pixel for filters
p++; // skip black pixel for filters p++; // skip black pixel for filters
b = writeBuffer;
} }
} break; } break;
case 24: { case 24: {
@ -272,7 +271,6 @@ bool utilWritePNGFile(const char *fileName, int w, int h, uint8_t *pix)
*b++ = blue; *b++ = blue;
} }
} }
b = writeBuffer;
} }
} break; } break;
case 32: { case 32: {
@ -286,12 +284,13 @@ bool utilWritePNGFile(const char *fileName, int w, int h, uint8_t *pix)
*b++ = ((v >> systemBlueShift) & 0x001f) << 3; // B *b++ = ((v >> systemBlueShift) & 0x001f) << 3; // B
} }
pixU32++; pixU32++;
b = writeBuffer;
} }
} break; } break;
} }
return (0 != stbi_write_png(fileName, w, h, CHANNEL_NUM, writeBuffer, w * CHANNEL_NUM)); bool ret = (0 != stbi_write_png(fileName, w, h, CHANNEL_NUM, writeBuffer, w * CHANNEL_NUM));
delete[] writeBuffer;
return ret;
} }
void utilPutDword(uint8_t *p, uint32_t value) void utilPutDword(uint8_t *p, uint32_t value)