public VertexAttributeFormat(GXAttribute attr, GXCompType type, GXCompCnt cnt, byte frac) { _attr = attr; _cnt = cnt; _type = type; _frac = frac; }
public override void Open(HSDReader Reader) { Name = (GXAttribName)Reader.ReadUInt32(); AttributeType = (GXAttribType)Reader.ReadUInt32(); CompCount = (GXCompCnt)Reader.ReadInt32(); CompType = (GXCompType)Reader.ReadUInt32(); Scale = Reader.ReadByte(); Reader.ReadByte();//Padding Stride = Reader.ReadUInt16(); Offset = Reader.ReadUInt32(); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="cc"></param> /// <returns></returns> private static int CompCountToInt(GXAttribName name, GXCompCnt cc) { switch (name) { case GXAttribName.GX_VA_POS: switch (cc) { case GXCompCnt.PosXY: return(2); case GXCompCnt.PosXYZ: return(3); } break; case GXAttribName.GX_VA_NRM: switch (cc) { case GXCompCnt.NrmXYZ: case GXCompCnt.NrmNBT: return(3); case GXCompCnt.NrmNBT3: // ?? return(3); } break; case GXAttribName.GX_VA_NBT: switch (cc) { case GXCompCnt.NrmNBT: return(9); case GXCompCnt.NrmNBT3: return(9); } break; case GXAttribName.GX_VA_TEX0: case GXAttribName.GX_VA_TEX1: case GXAttribName.GX_VA_TEX2: case GXAttribName.GX_VA_TEX3: case GXAttribName.GX_VA_TEX4: case GXAttribName.GX_VA_TEX5: case GXAttribName.GX_VA_TEX6: case GXAttribName.GX_VA_TEX7: switch (cc) { case GXCompCnt.TexST: return(2); case GXCompCnt.TexS: return(1); } break; case GXAttribName.GX_VA_CLR0: case GXAttribName.GX_VA_CLR1: if (cc == GXCompCnt.ClrRGBA) { return(4); } if (cc == GXCompCnt.ClrRGB) { return(3); } break; } return(0); }
public byte _frac; //scale/divisor #region Constructors public VertexAttributeFormat(GXAttribute attr, GXCompType type, GXCompCnt cnt, byte frac) { _attr = attr; _cnt = cnt; _type = type; _frac = frac; }