public DeviceManager() { Device = new Rendering.DirectX11.Dx11RenderingDevice(); // Recreate legacy environment { ___LegacyDevice = GraphicsDevice.New(((Rendering.DirectX11.Dx11RenderingDevice)Device).Device); LevelData.ImportedGeometry.Device = ___LegacyDevice; // Load legacy effects string dir = Path.GetDirectoryName(System.Reflection.Assembly.GetCallingAssembly().Location); IEnumerable <string> effectFiles = Directory.EnumerateFiles(dir + "\\Rendering\\Legacy", "*.fx"); foreach (string fileName in effectFiles) { string effectName = Path.GetFileNameWithoutExtension(fileName); EffectCompilerResult effect = EffectCompiler.CompileFromFile(fileName); if (effect.HasErrors) { string errors = ""; foreach (var err in effect.Logger.Messages) { errors += err + Environment.NewLine; } throw new Exception("Could not compile effect '" + fileName + "'" + Environment.NewLine + errors); } ___LegacyEffects.Add(effectName, new Effect(___LegacyDevice, effect.EffectData)); } // Load legacy font SpriteFontData fontData = SpriteFontData.Load(ResourcesC.ResourcesC.font); fontData.DefaultCharacter = '\n'; // Don't crash on uncommon Unicode values ___LegacyFont = SpriteFont.New(___LegacyDevice, fontData); } }
private static Effect LoadEffect(string name) { EffectCompilerResult result = EffectCompiler.CompileFromFile(_path + "\\Editor\\" + name + ".fx"); if (result.HasErrors) { string errors = ""; foreach (SharpDX.Toolkit.Diagnostics.LogMessage err in result.Logger.Messages) { errors += err + Environment.NewLine; } LogManager.GetCurrentClassLogger().Log(LogLevel.Error, "Could not compile effect '" + name + ".fx'"); MessageBox.Show("Could not compile effect '" + name + ".fx'" + Environment.NewLine + errors, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } Effect effect = new Effect(GraphicsDevice, result.EffectData); return(effect); }