| 1654 | } |
| 1655 | |
| 1656 | void GSRendererSW::SharedData::UpdateSource() |
| 1657 | { |
| 1658 | for (size_t i = 0; m_tex[i].t; i++) |
| 1659 | { |
| 1660 | if (m_tex[i].t->Update(m_tex[i].r)) |
| 1661 | { |
| 1662 | global.tex[i] = m_tex[i].t->m_buff; |
| 1663 | } |
| 1664 | else |
| 1665 | { |
| 1666 | printf("GS: out-of-memory, texturing temporarily disabled\n"); |
| 1667 | |
| 1668 | global.sel.tfx = TFX_NONE; |
| 1669 | } |
| 1670 | } |
| 1671 | |
| 1672 | if (GSConfig.SaveTexture && GSConfig.ShouldDump(s_n, g_perfmon.GetFrame())) |
| 1673 | { |
| 1674 | const u64 frame = g_perfmon.GetFrame(); |
| 1675 | |
| 1676 | std::string s; |
| 1677 | |
| 1678 | for (u32 i = 0; m_tex[i].t; i++) |
| 1679 | { |
| 1680 | const GIFRegTEX0& TEX0 = g_gs_renderer->GetTex0Layer(i); |
| 1681 | |
| 1682 | s = GetDrawDumpPath("%05lld_f%05lld_itex%d_%05x_%s.bmp", g_gs_renderer->s_n, frame, i, TEX0.TBP0, GSUtil::GetPSMName(TEX0.PSM)); |
| 1683 | |
| 1684 | m_tex[i].t->Save(s); |
| 1685 | } |
| 1686 | |
| 1687 | if (global.clut) |
| 1688 | { |
| 1689 | s = GetDrawDumpPath("%05lld_f%05lld_itexp_%05x_%s.bmp", g_gs_renderer->s_n, frame, (int)g_gs_renderer->m_context->TEX0.CBP, GSUtil::GetPSMName(g_gs_renderer->m_context->TEX0.CPSM)); |
| 1690 | GSPng::Save((IsDevBuild || GSConfig.SaveAlpha) ? GSPng::RGB_A_PNG : GSPng::RGB_PNG, s, reinterpret_cast<const u8*>(global.clut), 256, 1, sizeof(u32) * 256, GSConfig.PNGCompressionLevel, false); |
| 1691 | } |
| 1692 | } |
| 1693 | } |
no test coverage detected