private void handleFoundTextureBinder(MaterialI material, FieldInfo materialField, IDictionary values, MaterialFieldBinder binder, string contentDirectory, Dictionary<string,string> fileExtOverrides) { var textureFileName = ((Dictionary<string,string>)values)[binder.InputID]; if (fileExtOverrides != null) { string ext = Streams.GetFileExt(textureFileName); if (fileExtOverrides.ContainsKey(ext)) textureFileName = Streams.GetFileNameWithoutExt(textureFileName) + fileExtOverrides[ext]; else textureFileName = Streams.GetFileNameWithExt(textureFileName); } else { textureFileName = Streams.GetFileNameWithExt(textureFileName); } // TODO load texture unless already loaded... //texture = parent.FindChild<Texture2D> //( // "NewReference", // new ConstructorParam(typeof(IDisposableResource), parent), // new ConstructorParam(typeof(string), filename), // new ConstructorParam(typeof(Loader.LoadedCallbackMethod), null) //); //if (texture != null) //{ // ++texture.referenceCount; // return texture; //} //return new Texture2D(parent, filename, loadedCallback); //var texture = Texture2DAPI.New(Parent, contentDirectory + textureFileName, null); //texture.AddReference(); ITexture2D texture = null; if (!Textures.Contains(texture)) Textures.Add(texture); materialField.SetValue(material, texture); }
private void handleFoundTextureBinder(MaterialI material, FieldInfo materialField, IDictionary values, MaterialFieldBinder binder, string contentDirectory, Dictionary <string, string> fileExtOverrides) { var textureFileName = ((Dictionary <string, string>)values)[binder.InputID]; if (fileExtOverrides != null) { string ext = Streams.GetFileExt(textureFileName); if (fileExtOverrides.ContainsKey(ext)) { textureFileName = Streams.GetFileNameWithoutExt(textureFileName) + fileExtOverrides[ext]; } else { textureFileName = Streams.GetFileNameWithExt(textureFileName); } } else { textureFileName = Streams.GetFileNameWithExt(textureFileName); } // TODO load texture unless already loaded... //texture = parent.FindChild<Texture2D> //( // "NewReference", // new ConstructorParam(typeof(IDisposableResource), parent), // new ConstructorParam(typeof(string), filename), // new ConstructorParam(typeof(Loader.LoadedCallbackMethod), null) //); //if (texture != null) //{ // ++texture.referenceCount; // return texture; //} //return new Texture2D(parent, filename, loadedCallback); //var texture = Texture2DAPI.New(Parent, contentDirectory + textureFileName, null); //texture.AddReference(); ITexture2D texture = null; if (!Textures.Contains(texture)) { Textures.Add(texture); } materialField.SetValue(material, texture); }
private void handleFoundValueBinder(MaterialI material, FieldInfo materialField, IDictionary values, MaterialFieldBinder binder, string contentDirectory, Dictionary<string,string> fileExtOverrides) { var value = values[binder.InputID]; var valueType = value.GetType(); var materialType = materialField.FieldType; if (materialType == valueType) { materialField.SetValue(material, values[binder.InputID]); } else if (materialType == typeof(Vector2)) { if (valueType == typeof(Vector3)) { var vector = (Vector3)value; materialField.SetValue(material, new Vector2(vector.X, vector.Y)); } else if (valueType == typeof(Vector4)) { var vector = (Vector4)value; materialField.SetValue(material, new Vector2(vector.X, vector.Y)); } } else if (materialType == typeof(Vector3)) { if (valueType == typeof(Vector2)) { var vector = (Vector2)value; materialField.SetValue(material, new Vector3(vector.X, vector.Y, 0)); } else if (valueType == typeof(Vector4)) { var vector = (Vector4)value; materialField.SetValue(material, new Vector3(vector.X, vector.Y, vector.Z)); } } else if (materialType == typeof(Vector4)) { if (valueType == typeof(Vector2)) { var vector = (Vector2)value; materialField.SetValue(material, new Vector4(vector.X, vector.Y, 0, 0)); } else if (valueType == typeof(Vector3)) { var vector = (Vector3)value; materialField.SetValue(material, new Vector4(vector.X, vector.Y, vector.Z, 0)); } } }
private void handleFoundValueBinder(MaterialI material, FieldInfo materialField, IDictionary values, MaterialFieldBinder binder, string contentDirectory, Dictionary <string, string> fileExtOverrides) { var value = values[binder.InputID]; var valueType = value.GetType(); var materialType = materialField.FieldType; if (materialType == valueType) { materialField.SetValue(material, values[binder.InputID]); } else if (materialType == typeof(Vector2)) { if (valueType == typeof(Vector3)) { var vector = (Vector3)value; materialField.SetValue(material, new Vector2(vector.X, vector.Y)); } else if (valueType == typeof(Vector4)) { var vector = (Vector4)value; materialField.SetValue(material, new Vector2(vector.X, vector.Y)); } } else if (materialType == typeof(Vector3)) { if (valueType == typeof(Vector2)) { var vector = (Vector2)value; materialField.SetValue(material, new Vector3(vector.X, vector.Y, 0)); } else if (valueType == typeof(Vector4)) { var vector = (Vector4)value; materialField.SetValue(material, new Vector3(vector.X, vector.Y, vector.Z)); } } else if (materialType == typeof(Vector4)) { if (valueType == typeof(Vector2)) { var vector = (Vector2)value; materialField.SetValue(material, new Vector4(vector.X, vector.Y, 0, 0)); } else if (valueType == typeof(Vector3)) { var vector = (Vector3)value; materialField.SetValue(material, new Vector4(vector.X, vector.Y, vector.Z, 0)); } } }