예제 #1
0
		private void bindTypes(MaterialI material, IDictionary values, List<MaterialFieldBinder> binders, string contentDirectory, Dictionary<string,string> fileExtOverrides, FoundBinderMethod handleFoundBinder)
		{
			if (binders == null) return;

			var materialType = material.GetType();
			foreach (var binder in binders)
			{
				if (binder.MaterialName == material.Name && values.Contains(binder.InputID))
				{
					#if WINRT
					var materialField = materialType.GetTypeInfo().GetDeclaredField(binder.ShaderMaterialFieldName);
					#else
					var materialField = materialType.GetField(binder.ShaderMaterialFieldName);
					#endif
					if (materialField == null) Debug.ThrowError("Model", "Shader material field name does not exist: " + binder.ShaderMaterialFieldName);

					if (handleFoundBinder != null) handleFoundBinder(material, materialField, values, binder, contentDirectory, fileExtOverrides);
				}
			}
		}
예제 #2
0
        private void bindTypes(MaterialI material, IDictionary values, List <MaterialFieldBinder> binders, string contentDirectory, Dictionary <string, string> fileExtOverrides, FoundBinderMethod handleFoundBinder)
        {
            if (binders == null)
            {
                return;
            }

            var materialType = material.GetType();

            foreach (var binder in binders)
            {
                if (binder.MaterialName == material.Name && values.Contains(binder.InputID))
                {
                                        #if WINRT
                    var materialField = materialType.GetTypeInfo().GetDeclaredField(binder.ShaderMaterialFieldName);
                                        #else
                    var materialField = materialType.GetField(binder.ShaderMaterialFieldName);
                                        #endif
                    if (materialField == null)
                    {
                        Debug.ThrowError("Model", "Shader material field name does not exist: " + binder.ShaderMaterialFieldName);
                    }

                    if (handleFoundBinder != null)
                    {
                        handleFoundBinder(material, materialField, values, binder, contentDirectory, fileExtOverrides);
                    }
                }
            }
        }