public BufferDataInfo(ESemantic s) { X = new PassDataInfo(ESlot.None, s, EPass.X); Y = new PassDataInfo(ESlot.None, s, EPass.Y); Z = new PassDataInfo(ESlot.None, s, EPass.Z); W = new PassDataInfo(ESlot.None, s, EPass.W); }
private bool CheckPassAvailable(PassDataInfo pass) { if (pass.Slot == ESlot.None || pass.Semantic == ESemantic.UnKnown) { return(true); } var slot = this[(int)pass.Slot - 1]; if (slot == null) { return(false); } var s = pass.Semantic; MeshData.VBuffer buff; if (slot.Buffers.TryGetValue(s, out buff)) { if (buff.mDimension > (int)pass.Pass) { return(true); } } return(false); }
public PassDataInfo this[int index] { get { switch (index) { case 0: return(X); case 1: return(Y); case 2: return(Z); case 3: return(W); default: return(null); } } set { switch (index) { case 0: X = value; break; case 1: Y = value; break; case 2: Z = value; break; case 3: W = value; break; default: break; } } }