diff options
| author | bunnei <bunneidev@gmail.com> | 2016-04-14 16:28:15 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2016-04-14 16:28:15 -0400 |
| commit | 607667571df906183ee0ba04b1c20edbd7def8b7 (patch) | |
| tree | 0ea7f1fee63d93709d7b7f2f751897b5fb8afe91 /src/video_core/debug_utils/debug_utils.cpp | |
| parent | 712021705cbee6985a758c268f2be725244a481c (diff) | |
| parent | 9b38494bcd8fc5bc2e8d04997439bfadf205a2e5 (diff) | |
Merge pull request #1665 from lioncash/file
IOFile: Minor API changes
Diffstat (limited to 'src/video_core/debug_utils/debug_utils.cpp')
| -rw-r--r-- | src/video_core/debug_utils/debug_utils.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp index 693f935975..c8752c003e 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp @@ -586,6 +586,21 @@ TextureInfo TextureInfo::FromPicaRegister(const Regs::TextureConfig& config, return info; } +#ifdef HAVE_PNG +// Adapter functions to libpng to write/flush to File::IOFile instances. +static void WriteIOFile(png_structp png_ptr, png_bytep data, png_size_t length) { + auto* fp = static_cast<FileUtil::IOFile*>(png_get_io_ptr(png_ptr)); + if (!fp->WriteBytes(data, length)) + png_error(png_ptr, "Failed to write to output PNG file."); +} + +static void FlushIOFile(png_structp png_ptr) { + auto* fp = static_cast<FileUtil::IOFile*>(png_get_io_ptr(png_ptr)); + if (!fp->Flush()) + png_error(png_ptr, "Failed to flush to output PNG file."); +} +#endif + void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { #ifndef HAVE_PNG return; @@ -629,7 +644,7 @@ void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { goto finalise; } - png_init_io(png_ptr, fp.GetHandle()); + png_set_write_fn(png_ptr, static_cast<void*>(&fp), WriteIOFile, FlushIOFile); // Write header (8 bit color depth) png_set_IHDR(png_ptr, info_ptr, texture_config.width, texture_config.height, |
