MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / GetTex0Layer

Method GetTex0Layer

pcsx2/GS/GSState.cpp:6813–6863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6811}
6812
6813GIFRegTEX0 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

Callers 4

SwPrimRenderMethod · 0.80
LookupHashCacheMethod · 0.80
CreateMethod · 0.80
UpdateSourceMethod · 0.80

Calls 1

ErrorMethod · 0.45

Tested by

no test coverage detected