示例#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);
        }