public void ModifyEffect(XmlNode effectNode) { string sourceFileName = effectNode.InnerText; if (!File.Exists(sourceFileName) && File.Exists(m_ProjectLocation + @"\" + sourceFileName)) { sourceFileName = m_ProjectLocation + @"\" + sourceFileName; } string effectName = effectNode.Attributes["name"].Value; string destOjbect = m_ProjectLocation + @"\Effects\" + Path.GetFileNameWithoutExtension(sourceFileName) + ".fxo"; if (!CompileEffect(sourceFileName, destOjbect)) { return; } uint size = RenderMethods.ModifyEffect(@"Effects\" + Path.GetFileName(destOjbect), effectName); if (size > 0) { StringBuilder materialtString = new StringBuilder((int)size); RenderMethods.GetMaterialXml(@"Effects\" + Path.GetFileName(destOjbect), materialtString, size); XmlDocument materialDoc = new XmlDocument(); materialDoc.LoadXml(materialtString.ToString()); XmlElement newMaterialNode = materialDoc.DocumentElement; ReSetMaterial(newMaterialNode, effectName); } }