| 6811 | } |
| 6812 | |
| 6813 | GIFRegTEX0 GSState::GetTex0Layer(u32 lod) |
| 6814 | { |
| 6815 | // Shortcut |
| 6816 | if (lod == 0) |
| 6817 | return m_context->TEX0; |
| 6818 | |
| 6819 | GIFRegTEX0 TEX0 = m_context->TEX0; |
| 6820 | |
| 6821 | switch (lod) |
| 6822 | { |
| 6823 | case 1: |
| 6824 | TEX0.TBP0 = m_context->MIPTBP1.TBP1; |
| 6825 | TEX0.TBW = m_context->MIPTBP1.TBW1; |
| 6826 | break; |
| 6827 | case 2: |
| 6828 | TEX0.TBP0 = m_context->MIPTBP1.TBP2; |
| 6829 | TEX0.TBW = m_context->MIPTBP1.TBW2; |
| 6830 | break; |
| 6831 | case 3: |
| 6832 | TEX0.TBP0 = m_context->MIPTBP1.TBP3; |
| 6833 | TEX0.TBW = m_context->MIPTBP1.TBW3; |
| 6834 | break; |
| 6835 | case 4: |
| 6836 | TEX0.TBP0 = m_context->MIPTBP2.TBP4; |
| 6837 | TEX0.TBW = m_context->MIPTBP2.TBW4; |
| 6838 | break; |
| 6839 | case 5: |
| 6840 | TEX0.TBP0 = m_context->MIPTBP2.TBP5; |
| 6841 | TEX0.TBW = m_context->MIPTBP2.TBW5; |
| 6842 | break; |
| 6843 | case 6: |
| 6844 | TEX0.TBP0 = m_context->MIPTBP2.TBP6; |
| 6845 | TEX0.TBW = m_context->MIPTBP2.TBW6; |
| 6846 | break; |
| 6847 | default: |
| 6848 | Console.Error("GS: Invalid guest lod setting. Please report: https://github.com/PCSX2/pcsx2/issues"); |
| 6849 | } |
| 6850 | |
| 6851 | // Correct the texture size |
| 6852 | if (TEX0.TH <= lod) |
| 6853 | TEX0.TH = 0; |
| 6854 | else |
| 6855 | TEX0.TH -= lod; |
| 6856 | |
| 6857 | if (TEX0.TW <= lod) |
| 6858 | TEX0.TW = 0; |
| 6859 | else |
| 6860 | TEX0.TW -= lod; |
| 6861 | |
| 6862 | return TEX0; |
| 6863 | } |
| 6864 | |
| 6865 | // GSTransferBuffer |
| 6866 |
no test coverage detected