Example #1
0
		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);
		}
Example #2
0
        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);
        }
Example #3
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));
				}
			}
		}
Example #4
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));
                }
            }
        }