internal DeferredMaterial(int pId, InstanciatedTexture pDiffuse, InstanciatedTexture pNormal, InstanciatedTexture pSpecular) { this.Id = pId; this.Diffuse = pDiffuse; this.Normal = pNormal; this.Specular = pSpecular; }
public static int Load(InstanciatedTexture pDiffuse, InstanciatedTexture pNormal, InstanciatedTexture pSpecular) { int i = 0; bool found = false; while (!found && (i < Instance.mMaterials.Count)) { if ((Instance.mMaterials[i].Diffuse == pDiffuse) && (Instance.mMaterials[i].Normal == pNormal) && (Instance.mMaterials[i].Specular == pSpecular)) { found = true; } else i++; } if (found) { Instance.mMaterials[i].IncreaseCounter(); return Instance.mMaterials[i].Id; } else { int id; if (Instance.mMaterials.Count == 0) id = 0; else id = Instance.mMaterials[Instance.mMaterials.Count - 1].Id + 1; DeferredMaterial newMaterial = new DeferredMaterial(id, pDiffuse, pNormal, pSpecular); Instance.mMaterials.Add(id, newMaterial); return id; } }