diff options
| author | 2016-04-13 19:29:16 -0400 | |
|---|---|---|
| committer | 2016-04-13 20:17:17 -0400 | |
| commit | a4120ca66cc6c0f3a8056c6ea247c15f63c7feff (patch) | |
| tree | a0db95eee61ce8070add52e3abd55971be6458df /src/video_core/debug_utils | |
| parent | file_util: Check for is_trivially_copyable (diff) | |
| download | yuzu-a4120ca66cc6c0f3a8056c6ea247c15f63c7feff.tar.gz yuzu-a4120ca66cc6c0f3a8056c6ea247c15f63c7feff.tar.xz yuzu-a4120ca66cc6c0f3a8056c6ea247c15f63c7feff.zip | |
file_util: Don't expose IOFile internals through the API
Diffstat (limited to 'src/video_core/debug_utils')
| -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 693f93597..c8752c003 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, | |||
| 586 | return info; | 586 | return info; |
| 587 | } | 587 | } |
| 588 | 588 | ||
| 589 | #ifdef HAVE_PNG | ||
| 590 | // Adapter functions to libpng to write/flush to File::IOFile instances. | ||
| 591 | static void WriteIOFile(png_structp png_ptr, png_bytep data, png_size_t length) { | ||
| 592 | auto* fp = static_cast<FileUtil::IOFile*>(png_get_io_ptr(png_ptr)); | ||
| 593 | if (!fp->WriteBytes(data, length)) | ||
| 594 | png_error(png_ptr, "Failed to write to output PNG file."); | ||
| 595 | } | ||
| 596 | |||
| 597 | static void FlushIOFile(png_structp png_ptr) { | ||
| 598 | auto* fp = static_cast<FileUtil::IOFile*>(png_get_io_ptr(png_ptr)); | ||
| 599 | if (!fp->Flush()) | ||
| 600 | png_error(png_ptr, "Failed to flush to output PNG file."); | ||
| 601 | } | ||
| 602 | #endif | ||
| 603 | |||
| 589 | void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { | 604 | void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { |
| 590 | #ifndef HAVE_PNG | 605 | #ifndef HAVE_PNG |
| 591 | return; | 606 | return; |
| @@ -629,7 +644,7 @@ void DumpTexture(const Pica::Regs::TextureConfig& texture_config, u8* data) { | |||
| 629 | goto finalise; | 644 | goto finalise; |
| 630 | } | 645 | } |
| 631 | 646 | ||
| 632 | png_init_io(png_ptr, fp.GetHandle()); | 647 | png_set_write_fn(png_ptr, static_cast<void*>(&fp), WriteIOFile, FlushIOFile); |
| 633 | 648 | ||
| 634 | // Write header (8 bit color depth) | 649 | // Write header (8 bit color depth) |
| 635 | png_set_IHDR(png_ptr, info_ptr, texture_config.width, texture_config.height, | 650 | png_set_IHDR(png_ptr, info_ptr, texture_config.width, texture_config.height, |