2010-12-25 17:18:13 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace GSDumpGUI
|
|
|
|
|
{
|
|
|
|
|
public class GIFRegST : GIFReg
|
|
|
|
|
{
|
|
|
|
|
public float S;
|
|
|
|
|
public float T;
|
|
|
|
|
public float Q;
|
|
|
|
|
|
2010-12-26 01:00:11 +00:00
|
|
|
|
public bool isSTQ;
|
|
|
|
|
|
2010-12-26 12:22:37 +00:00
|
|
|
|
public GIFRegST(int addr, UInt64 LowData, UInt64 HighData, bool PackedFormat) : base(addr, LowData, HighData, PackedFormat) { }
|
|
|
|
|
|
2010-12-26 01:00:11 +00:00
|
|
|
|
static public GIFReg Unpack(GIFTag tag, int addr, UInt64 LowData, UInt64 HighData, bool PackedFormat)
|
2010-12-25 17:18:13 +00:00
|
|
|
|
{
|
2010-12-26 12:22:37 +00:00
|
|
|
|
GIFRegST st = new GIFRegST(addr, LowData, HighData, PackedFormat);
|
2010-12-26 01:00:11 +00:00
|
|
|
|
st.Descriptor = (GIFRegDescriptor)addr;
|
2010-12-25 17:18:13 +00:00
|
|
|
|
|
2010-12-26 01:00:11 +00:00
|
|
|
|
st.S = BitConverter.ToSingle(BitConverter.GetBytes(LowData), 0);
|
|
|
|
|
st.T = BitConverter.ToSingle(BitConverter.GetBytes(LowData), 4);
|
|
|
|
|
if (PackedFormat)
|
|
|
|
|
{
|
|
|
|
|
st.Q = BitConverter.ToSingle(BitConverter.GetBytes(HighData), 0);
|
|
|
|
|
tag.Q = st.Q;
|
|
|
|
|
st.isSTQ = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
st.isSTQ = false;
|
2010-12-25 17:18:13 +00:00
|
|
|
|
|
2010-12-26 01:00:11 +00:00
|
|
|
|
return st;
|
|
|
|
|
}
|
2010-12-25 17:18:13 +00:00
|
|
|
|
|
2010-12-26 01:00:11 +00:00
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
|
|
|
|
return Descriptor.ToString() + "@S : " + S.ToString("F8") + "@T : " + T.ToString("F8") + (isSTQ ? "@Q : " + Q.ToString("F8") : "");
|
2010-12-25 17:18:13 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|